1
0

Console command "chunkstats" now lists each world and also totals

git-svn-id: http://mc-server.googlecode.com/svn/trunk@739 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com
2012-08-15 12:08:11 +00:00
parent b687be9e44
commit 16dda8e037
3 changed files with 57 additions and 26 deletions

View File

@@ -21,7 +21,6 @@
#include "cFurnaceRecipe.h"
#include "cTracer.h"
#include "cWebAdmin.h"
#include "cChunk.h"
#include "MersenneTwister.h"
@@ -528,31 +527,7 @@ void cServer::ServerCommand( const char * a_Cmd )
}
if (split[0].compare("chunkstats") == 0)
{
// TODO: For each world
int NumValid = 0;
int NumDirty = 0;
int NumInLighting = 0;
cWorld * World = cRoot::Get()->GetDefaultWorld();
int NumInGenerator = World->GetGeneratorQueueLength();
int NumInSaveQueue = World->GetStorageSaveQueueLength();
int NumInLoadQueue = World->GetStorageLoadQueueLength();
World->GetChunkStats(NumValid, NumDirty, NumInLighting);
LOG("Num loaded chunks: %d", NumValid);
LOG("Num dirty chunks: %d", NumDirty);
LOG("Num chunks in lighting queue: %d", NumInLighting);
LOG("Num chunks in generator queue: %d", NumInGenerator);
LOG("Num chunks in storage load queue: %d", NumInLoadQueue);
LOG("Num chunks in storage save queue: %d", NumInSaveQueue);
int Mem = NumValid * sizeof(cChunk);
LOG("Memory used by chunks: %d KiB (%d MiB)", (Mem + 1023) / 1024, (Mem + 1024 * 1024 - 1) / (1024 * 1024));
LOG("Per-chunk memory size breakdown:");
LOG(" block types: %6d bytes (%3d KiB)", sizeof(cChunkDef::BlockTypes), (sizeof(cChunkDef::BlockTypes) + 1023) / 1024);
LOG(" block metadata: %6d bytes (%3d KiB)", sizeof(cChunkDef::BlockNibbles), (sizeof(cChunkDef::BlockNibbles) + 1023) / 1024);
LOG(" block lighting: %6d bytes (%3d KiB)", 2 * sizeof(cChunkDef::BlockNibbles), (2 * sizeof(cChunkDef::BlockNibbles) + 1023) / 1024);
LOG(" heightmap: %6d bytes (%3d KiB)", sizeof(cChunkDef::HeightMap), (sizeof(cChunkDef::HeightMap) + 1023) / 1024);
LOG(" biomemap: %6d bytes (%3d KiB)", sizeof(cChunkDef::BiomeMap), (sizeof(cChunkDef::BiomeMap) + 1023) / 1024);
int Rest = sizeof(cChunk) - sizeof(cChunkDef::BlockTypes) - 3 * sizeof(cChunkDef::BlockNibbles) - sizeof(cChunkDef::HeightMap) - sizeof(cChunkDef::BiomeMap);
LOG(" other: %6d bytes (%3d KiB)", Rest, (Rest + 1023) / 1024);
cRoot::Get()->LogChunkStats();
return;
}