package co.aikar.timings; import net.minecraft.server.World; /** * Set of timers per world, to track world specific timings. */ public class WorldTimingsHandler { public final Timing mobSpawn; public final Timing doChunkUnload; public final Timing doPortalForcer; public final Timing scheduledBlocks; public final Timing scheduledBlocksCleanup; public final Timing scheduledBlocksTicking; public final Timing chunkTicks; public final Timing lightChunk; public final Timing chunkTicksBlocks; public final Timing doVillages; public final Timing doChunkMap; public final Timing doChunkMapUpdate; public final Timing doChunkMapToUpdate; public final Timing doChunkMapSortMissing; public final Timing doChunkMapSortSendToPlayers; public final Timing doChunkMapPlayersNeedingChunks; public final Timing doChunkMapPendingSendToPlayers; public final Timing doChunkMapUnloadChunks; public final Timing doChunkGC; public final Timing doSounds; public final Timing entityRemoval; public final Timing entityTick; public final Timing tileEntityTick; public final Timing tileEntityPending; public final Timing tracker1; public final Timing tracker2; public final Timing doTick; public final Timing tickEntities; public final Timing syncChunkLoadTimer; public final Timing syncChunkLoadDataTimer; public final Timing syncChunkLoadStructuresTimer; public final Timing syncChunkLoadPostTimer; public final Timing syncChunkLoadNBTTimer; public final Timing syncChunkLoadPopulateNeighbors; public final Timing chunkGeneration; public final Timing chunkIOStage1; public final Timing chunkIOStage2; public final Timing worldSave; public final Timing worldSaveChunks; public final Timing worldSaveLevel; public final Timing chunkSaveNop; public final Timing chunkSaveData; public final Timing lightingQueueTimer; public WorldTimingsHandler(World server) { String name = server.worldData.getName() +" - "; mobSpawn = Timings.ofSafe(name + "mobSpawn"); doChunkUnload = Timings.ofSafe(name + "doChunkUnload"); scheduledBlocks = Timings.ofSafe(name + "Scheduled Blocks"); scheduledBlocksCleanup = Timings.ofSafe(name + "Scheduled Blocks - Cleanup"); scheduledBlocksTicking = Timings.ofSafe(name + "Scheduled Blocks - Ticking"); chunkTicks = Timings.ofSafe(name + "Chunk Ticks"); lightChunk = Timings.ofSafe(name + "Light Chunk"); chunkTicksBlocks = Timings.ofSafe(name + "Chunk Ticks - Blocks"); doVillages = Timings.ofSafe(name + "doVillages"); doChunkMap = Timings.ofSafe(name + "doChunkMap"); doChunkMapUpdate = Timings.ofSafe(name + "doChunkMap - Update"); doChunkMapToUpdate = Timings.ofSafe(name + "doChunkMap - To Update"); doChunkMapSortMissing = Timings.ofSafe(name + "doChunkMap - Sort Missing"); doChunkMapSortSendToPlayers = Timings.ofSafe(name + "doChunkMap - Sort Send To Players"); doChunkMapPlayersNeedingChunks = Timings.ofSafe(name + "doChunkMap - Players Needing Chunks"); doChunkMapPendingSendToPlayers = Timings.ofSafe(name + "doChunkMap - Pending Send To Players"); doChunkMapUnloadChunks = Timings.ofSafe(name + "doChunkMap - Unload Chunks"); doSounds = Timings.ofSafe(name + "doSounds"); doChunkGC = Timings.ofSafe(name + "doChunkGC"); doPortalForcer = Timings.ofSafe(name + "doPortalForcer"); entityTick = Timings.ofSafe(name + "entityTick"); entityRemoval = Timings.ofSafe(name + "entityRemoval"); tileEntityTick = Timings.ofSafe(name + "tileEntityTick"); tileEntityPending = Timings.ofSafe(name + "tileEntityPending"); syncChunkLoadTimer = Timings.ofSafe(name + "syncChunkLoad"); syncChunkLoadDataTimer = Timings.ofSafe(name + "syncChunkLoad - Data"); syncChunkLoadStructuresTimer = Timings.ofSafe(name + "chunkLoad - recreateStructures"); syncChunkLoadPostTimer = Timings.ofSafe(name + "chunkLoad - Post"); syncChunkLoadNBTTimer = Timings.ofSafe(name + "chunkLoad - NBT"); syncChunkLoadPopulateNeighbors = Timings.ofSafe(name + "chunkLoad - Populate Neighbors"); chunkGeneration = Timings.ofSafe(name + "chunkGeneration"); chunkIOStage1 = Timings.ofSafe(name + "ChunkIO Stage 1 - DiskIO"); chunkIOStage2 = Timings.ofSafe(name + "ChunkIO Stage 2 - Post Load"); worldSave = Timings.ofSafe(name + "World Save"); worldSaveLevel = Timings.ofSafe(name + "World Save - Level"); worldSaveChunks = Timings.ofSafe(name + "World Save - Chunks"); chunkSaveNop = Timings.ofSafe(name + "Chunk Save - NOP"); chunkSaveData = Timings.ofSafe(name + "Chunk Save - Data"); tracker1 = Timings.ofSafe(name + "tracker stage 1"); tracker2 = Timings.ofSafe(name + "tracker stage 2"); doTick = Timings.ofSafe(name + "doTick"); tickEntities = Timings.ofSafe(name + "tickEntities"); lightingQueueTimer = Timings.ofSafe(name + "Lighting Queue"); } }