aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/map.cpp b/src/map.cpp
index 1e7abc57f..4db5a3d1a 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -1391,6 +1391,9 @@ void Map::timerUpdate(float dtime, float unload_timeout,
{
bool save_before_unloading = (mapType() == MAPTYPE_SERVER);
+ // Profile modified reasons
+ Profiler modprofiler;
+
core::list<v2s16> sector_deletion_queue;
u32 deleted_blocks_count = 0;
u32 saved_blocks_count = 0;
@@ -1423,9 +1426,7 @@ void Map::timerUpdate(float dtime, float unload_timeout,
if(block->getModified() != MOD_STATE_CLEAN
&& save_before_unloading)
{
- verbosestream<<"Saving block before unloading, "
- <<"modified by: "
- <<block->getModifiedReason()<<std::endl;
+ modprofiler.add(block->getModifiedReason(), 1);
saveBlock(block);
saved_blocks_count++;
}
@@ -1462,6 +1463,9 @@ void Map::timerUpdate(float dtime, float unload_timeout,
if(save_before_unloading)
infostream<<", of which "<<saved_blocks_count<<" were written";
infostream<<"."<<std::endl;
+ PrintInfo(infostream); // ServerMap/ClientMap:
+ infostream<<"Blocks modified by: "<<std::endl;
+ modprofiler.print(infostream);
}
}
@@ -2823,6 +2827,9 @@ void ServerMap::save(bool only_changed)
saveMapMeta();
}
+ // Profile modified reasons
+ Profiler modprofiler;
+
u32 sector_meta_count = 0;
u32 block_count = 0;
u32 block_count_all = 0; // Number of blocks in memory
@@ -2853,9 +2860,7 @@ void ServerMap::save(bool only_changed)
if(block->getModified() >= MOD_STATE_WRITE_NEEDED
|| only_changed == false)
{
- verbosestream<<"Saving block because of MOD_STATE_WRITE_NEEDED, "
- <<"modified by: "
- <<block->getModifiedReason()<<std::endl;
+ modprofiler.add(block->getModifiedReason(), 1);
saveBlock(block);
block_count++;
@@ -2881,6 +2886,9 @@ void ServerMap::save(bool only_changed)
<<block_count<<" block files"
<<", "<<block_count_all<<" blocks in memory."
<<std::endl;
+ PrintInfo(infostream); // ServerMap/ClientMap:
+ infostream<<"Blocks modified by: "<<std::endl;
+ modprofiler.print(infostream);
}
}