Don't print all block saves to verbosestream; rather print counts of distinct modifiers
authorPerttu Ahola <celeron55@gmail.com>
Mon, 21 Nov 2011 11:35:32 +0000 (13:35 +0200)
committerPerttu Ahola <celeron55@gmail.com>
Tue, 29 Nov 2011 17:13:49 +0000 (19:13 +0200)
src/map.cpp

index 1e7abc57fc7f9d23bb1e5c4aadb896792f0c7318..4db5a3d1a68879dae5f8fe831f5d4e0f51b15fa6 100644 (file)
@@ -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);
        }
 }