Timings: rename core timers to remove 'timer' from the names

this makes them shorter and more consistent.
This commit is contained in:
Dylan K. Taylor 2020-12-23 17:52:25 +00:00
parent 1d7b65e0c2
commit bcc3e87730
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
14 changed files with 160 additions and 160 deletions

View File

@ -228,7 +228,7 @@ class MemoryManager{
* Called every tick to update the memory manager state. * Called every tick to update the memory manager state.
*/ */
public function check() : void{ public function check() : void{
Timings::$memoryManagerTimer->startTiming(); Timings::$memoryManager->startTiming();
if(($this->memoryLimit > 0 or $this->globalMemoryLimit > 0) and ++$this->checkTicker >= $this->checkRate){ if(($this->memoryLimit > 0 or $this->globalMemoryLimit > 0) and ++$this->checkTicker >= $this->checkRate){
$this->checkTicker = 0; $this->checkTicker = 0;
@ -261,11 +261,11 @@ class MemoryManager{
$this->triggerGarbageCollector(); $this->triggerGarbageCollector();
} }
Timings::$memoryManagerTimer->stopTiming(); Timings::$memoryManager->stopTiming();
} }
public function triggerGarbageCollector() : int{ public function triggerGarbageCollector() : int{
Timings::$garbageCollectorTimer->startTiming(); Timings::$garbageCollector->startTiming();
if($this->garbageCollectionAsync){ if($this->garbageCollectionAsync){
$pool = $this->server->getAsyncPool(); $pool = $this->server->getAsyncPool();
@ -280,7 +280,7 @@ class MemoryManager{
$cycles = gc_collect_cycles(); $cycles = gc_collect_cycles();
gc_mem_caches(); gc_mem_caches();
Timings::$garbageCollectorTimer->stopTiming(); Timings::$garbageCollector->stopTiming();
return $cycles; return $cycles;
} }

View File

@ -1079,11 +1079,11 @@ class Server{
$consoleNotifier = new SleeperNotifier(); $consoleNotifier = new SleeperNotifier();
$this->console = new CommandReader($consoleNotifier); $this->console = new CommandReader($consoleNotifier);
$this->tickSleeper->addNotifier($consoleNotifier, function() use ($consoleSender) : void{ $this->tickSleeper->addNotifier($consoleNotifier, function() use ($consoleSender) : void{
Timings::$serverCommandTimer->startTiming(); Timings::$serverCommand->startTiming();
while(($line = $this->console->getLine()) !== null){ while(($line = $this->console->getLine()) !== null){
$this->dispatchCommand($consoleSender, $line); $this->dispatchCommand($consoleSender, $line);
} }
Timings::$serverCommandTimer->stopTiming(); Timings::$serverCommand->stopTiming();
}); });
$this->console->start(PTHREADS_INHERIT_NONE); $this->console->start(PTHREADS_INHERIT_NONE);
@ -1255,7 +1255,7 @@ class Server{
*/ */
public function prepareBatch(PacketBatch $stream, Compressor $compressor, ?bool $sync = null) : CompressBatchPromise{ public function prepareBatch(PacketBatch $stream, Compressor $compressor, ?bool $sync = null) : CompressBatchPromise{
try{ try{
Timings::$playerNetworkSendCompressTimer->startTiming(); Timings::$playerNetworkSendCompress->startTiming();
$buffer = $stream->getBuffer(); $buffer = $stream->getBuffer();
@ -1273,7 +1273,7 @@ class Server{
return $promise; return $promise;
}finally{ }finally{
Timings::$playerNetworkSendCompressTimer->stopTiming(); Timings::$playerNetworkSendCompress->stopTiming();
} }
} }
@ -1595,7 +1595,7 @@ class Server{
} }
private function titleTick() : void{ private function titleTick() : void{
Timings::$titleTickTimer->startTiming(); Timings::$titleTick->startTiming();
$d = Process::getRealMemoryUsage(); $d = Process::getRealMemoryUsage();
$u = Process::getAdvancedMemoryUsage(); $u = Process::getAdvancedMemoryUsage();
@ -1615,7 +1615,7 @@ class Server{
" kB/s | TPS " . $this->getTicksPerSecondAverage() . " kB/s | TPS " . $this->getTicksPerSecondAverage() .
" | Load " . $this->getTickUsageAverage() . "%\x07"; " | Load " . $this->getTickUsageAverage() . "%\x07";
Timings::$titleTickTimer->stopTiming(); Timings::$titleTick->stopTiming();
} }
/** /**
@ -1627,23 +1627,23 @@ class Server{
return; return;
} }
Timings::$serverTickTimer->startTiming(); Timings::$serverTick->startTiming();
++$this->tickCounter; ++$this->tickCounter;
Timings::$schedulerTimer->startTiming(); Timings::$scheduler->startTiming();
$this->pluginManager->tickSchedulers($this->tickCounter); $this->pluginManager->tickSchedulers($this->tickCounter);
Timings::$schedulerTimer->stopTiming(); Timings::$scheduler->stopTiming();
Timings::$schedulerAsyncTimer->startTiming(); Timings::$schedulerAsync->startTiming();
$this->asyncPool->collectTasks(); $this->asyncPool->collectTasks();
Timings::$schedulerAsyncTimer->stopTiming(); Timings::$schedulerAsync->stopTiming();
$this->worldManager->tick($this->tickCounter); $this->worldManager->tick($this->tickCounter);
Timings::$connectionTimer->startTiming(); Timings::$connection->startTiming();
$this->network->tick(); $this->network->tick();
Timings::$connectionTimer->stopTiming(); Timings::$connection->stopTiming();
if(($this->tickCounter % 20) === 0){ if(($this->tickCounter % 20) === 0){
if($this->doTitleTick){ if($this->doTitleTick){
@ -1677,7 +1677,7 @@ class Server{
$this->getMemoryManager()->check(); $this->getMemoryManager()->check();
Timings::$serverTickTimer->stopTiming(); Timings::$serverTick->stopTiming();
$now = microtime(true); $now = microtime(true);
$this->currentTPS = min(20, 1 / max(0.001, $now - $tickTime)); $this->currentTPS = min(20, 1 / max(0.001, $now - $tickTime));

View File

@ -959,9 +959,9 @@ abstract class Entity{
$this->updateMovement(); $this->updateMovement();
Timings::$timerEntityBaseTick->startTiming(); Timings::$entityBaseTick->startTiming();
$hasUpdate = $this->entityBaseTick($tickDiff); $hasUpdate = $this->entityBaseTick($tickDiff);
Timings::$timerEntityBaseTick->stopTiming(); Timings::$entityBaseTick->stopTiming();
$this->timings->stopTiming(); $this->timings->stopTiming();
@ -1073,7 +1073,7 @@ abstract class Entity{
protected function move(float $dx, float $dy, float $dz) : void{ protected function move(float $dx, float $dy, float $dz) : void{
$this->blocksAround = null; $this->blocksAround = null;
Timings::$entityMoveTimer->startTiming(); Timings::$entityMove->startTiming();
$movX = $dx; $movX = $dx;
$movY = $dy; $movY = $dy;
@ -1219,7 +1219,7 @@ abstract class Entity{
//TODO: vehicle collision events (first we need to spawn them!) //TODO: vehicle collision events (first we need to spawn them!)
Timings::$entityMoveTimer->stopTiming(); Timings::$entityMove->stopTiming();
} }
protected function checkGroundState(float $movX, float $movY, float $movZ, float $dx, float $dy, float $dz) : void{ protected function checkGroundState(float $movX, float $movY, float $movZ, float $dx, float $dy, float $dz) : void{

View File

@ -552,7 +552,7 @@ abstract class Living extends Entity{
} }
protected function entityBaseTick(int $tickDiff = 1) : bool{ protected function entityBaseTick(int $tickDiff = 1) : bool{
Timings::$timerLivingEntityBaseTick->startTiming(); Timings::$livingEntityBaseTick->startTiming();
$hasUpdate = parent::entityBaseTick($tickDiff); $hasUpdate = parent::entityBaseTick($tickDiff);
@ -576,7 +576,7 @@ abstract class Living extends Entity{
$this->attackTime -= $tickDiff; $this->attackTime -= $tickDiff;
} }
Timings::$timerLivingEntityBaseTick->stopTiming(); Timings::$livingEntityBaseTick->stopTiming();
return $hasUpdate; return $hasUpdate;
} }

View File

@ -173,7 +173,7 @@ abstract class Projectile extends Entity{
public function move(float $dx, float $dy, float $dz) : void{ public function move(float $dx, float $dy, float $dz) : void{
$this->blocksAround = null; $this->blocksAround = null;
Timings::$entityMoveTimer->startTiming(); Timings::$entityMove->startTiming();
$start = $this->location->asVector3(); $start = $this->location->asVector3();
$end = $start->addVector($this->motion); $end = $start->addVector($this->motion);
@ -264,7 +264,7 @@ abstract class Projectile extends Entity{
$this->getWorld()->onEntityMoved($this); $this->getWorld()->onEntityMoved($this);
$this->checkBlockCollision(); $this->checkBlockCollision();
Timings::$entityMoveTimer->stopTiming(); Timings::$entityMove->stopTiming();
} }
/** /**

View File

@ -316,25 +316,25 @@ class NetworkSession{
} }
if($this->cipher !== null){ if($this->cipher !== null){
Timings::$playerNetworkReceiveDecryptTimer->startTiming(); Timings::$playerNetworkReceiveDecrypt->startTiming();
try{ try{
$payload = $this->cipher->decrypt($payload); $payload = $this->cipher->decrypt($payload);
}catch(DecryptionException $e){ }catch(DecryptionException $e){
$this->logger->debug("Encrypted packet: " . base64_encode($payload)); $this->logger->debug("Encrypted packet: " . base64_encode($payload));
throw BadPacketException::wrap($e, "Packet decryption error"); throw BadPacketException::wrap($e, "Packet decryption error");
}finally{ }finally{
Timings::$playerNetworkReceiveDecryptTimer->stopTiming(); Timings::$playerNetworkReceiveDecrypt->stopTiming();
} }
} }
Timings::$playerNetworkReceiveDecompressTimer->startTiming(); Timings::$playerNetworkReceiveDecompress->startTiming();
try{ try{
$stream = new PacketBatch($this->compressor->decompress($payload)); $stream = new PacketBatch($this->compressor->decompress($payload));
}catch(DecompressionException $e){ }catch(DecompressionException $e){
$this->logger->debug("Failed to decompress packet: " . base64_encode($payload)); $this->logger->debug("Failed to decompress packet: " . base64_encode($payload));
throw BadPacketException::wrap($e, "Compressed packet batch decode error"); throw BadPacketException::wrap($e, "Compressed packet batch decode error");
}finally{ }finally{
Timings::$playerNetworkReceiveDecompressTimer->stopTiming(); Timings::$playerNetworkReceiveDecompress->stopTiming();
} }
try{ try{
@ -484,9 +484,9 @@ class NetworkSession{
private function sendEncoded(string $payload, bool $immediate = false) : void{ private function sendEncoded(string $payload, bool $immediate = false) : void{
if($this->cipher !== null){ if($this->cipher !== null){
Timings::$playerNetworkSendEncryptTimer->startTiming(); Timings::$playerNetworkSendEncrypt->startTiming();
$payload = $this->cipher->encrypt($payload); $payload = $this->cipher->encrypt($payload);
Timings::$playerNetworkSendEncryptTimer->stopTiming(); Timings::$playerNetworkSendEncrypt->stopTiming();
} }
$this->sender->send($payload, $immediate); $this->sender->send($payload, $immediate);
} }
@ -859,12 +859,12 @@ class NetworkSession{
$this->logger->debug("Tried to send no-longer-active chunk $chunkX $chunkZ in world " . $world->getFolderName()); $this->logger->debug("Tried to send no-longer-active chunk $chunkX $chunkZ in world " . $world->getFolderName());
return; return;
} }
$currentWorld->timings->syncChunkSendTimer->startTiming(); $currentWorld->timings->syncChunkSend->startTiming();
try{ try{
$this->queueCompressed($promise); $this->queueCompressed($promise);
$onCompletion($chunkX, $chunkZ); $onCompletion($chunkX, $chunkZ);
}finally{ }finally{
$currentWorld->timings->syncChunkSendTimer->stopTiming(); $currentWorld->timings->syncChunkSend->stopTiming();
} }
} }
); );

View File

@ -107,7 +107,7 @@ class ChunkCache implements ChunkListener{
++$this->misses; ++$this->misses;
$this->world->timings->syncChunkSendPrepareTimer->startTiming(); $this->world->timings->syncChunkSendPrepare->startTiming();
try{ try{
$this->caches[$chunkHash] = new CompressBatchPromise(); $this->caches[$chunkHash] = new CompressBatchPromise();
@ -128,7 +128,7 @@ class ChunkCache implements ChunkListener{
return $this->caches[$chunkHash]; return $this->caches[$chunkHash];
}finally{ }finally{
$this->world->timings->syncChunkSendPrepareTimer->stopTiming(); $this->world->timings->syncChunkSendPrepare->stopTiming();
} }
} }

View File

@ -67,7 +67,7 @@ final class CraftingDataCache{
* Rebuilds the cached CraftingDataPacket. * Rebuilds the cached CraftingDataPacket.
*/ */
private function buildCraftingDataCache(CraftingManager $manager) : CraftingDataPacket{ private function buildCraftingDataCache(CraftingManager $manager) : CraftingDataPacket{
Timings::$craftingDataCacheRebuildTimer->startTiming(); Timings::$craftingDataCacheRebuild->startTiming();
$pk = new CraftingDataPacket(); $pk = new CraftingDataPacket();
$pk->cleanRecipes = true; $pk->cleanRecipes = true;
@ -127,7 +127,7 @@ final class CraftingDataCache{
); );
} }
Timings::$craftingDataCacheRebuildTimer->stopTiming(); Timings::$craftingDataCacheRebuild->stopTiming();
return $pk; return $pk;
} }
} }

View File

@ -130,7 +130,7 @@ class PermissibleBase implements Permissible{
} }
public function recalculatePermissions() : array{ public function recalculatePermissions() : array{
Timings::$permissibleCalculationTimer->startTiming(); Timings::$permissibleCalculation->startTiming();
$permManager = PermissionManager::getInstance(); $permManager = PermissionManager::getInstance();
$permManager->unsubscribeFromAllPermissions($this); $permManager->unsubscribeFromAllPermissions($this);
@ -152,7 +152,7 @@ class PermissibleBase implements Permissible{
} }
$diff = []; $diff = [];
Timings::$permissibleCalculationDiffTimer->time(function() use ($oldPermissions, &$diff) : void{ Timings::$permissibleCalculationDiff->time(function() use ($oldPermissions, &$diff) : void{
foreach($this->permissions as $permissionAttachmentInfo){ foreach($this->permissions as $permissionAttachmentInfo){
$name = $permissionAttachmentInfo->getPermission(); $name = $permissionAttachmentInfo->getPermission();
if(!isset($oldPermissions[$name])){ if(!isset($oldPermissions[$name])){
@ -168,7 +168,7 @@ class PermissibleBase implements Permissible{
} }
}); });
Timings::$permissibleCalculationCallbackTimer->time(function() use ($diff) : void{ Timings::$permissibleCalculationCallback->time(function() use ($diff) : void{
if(count($diff) > 0){ if(count($diff) > 0){
foreach($this->permissionRecalculationCallbacks as $closure){ foreach($this->permissionRecalculationCallbacks as $closure){
$closure($diff); $closure($diff);
@ -176,7 +176,7 @@ class PermissibleBase implements Permissible{
} }
}); });
Timings::$permissibleCalculationTimer->stopTiming(); Timings::$permissibleCalculation->stopTiming();
return $diff; return $diff;
} }

View File

@ -708,7 +708,7 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
return; return;
} }
Timings::$playerChunkSendTimer->startTiming(); Timings::$playerChunkSend->startTiming();
$count = 0; $count = 0;
foreach($this->loadQueue as $index => $distance){ foreach($this->loadQueue as $index => $distance){
@ -753,7 +753,7 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
}); });
} }
Timings::$playerChunkSendTimer->stopTiming(); Timings::$playerChunkSend->stopTiming();
} }
private function recheckBroadcastPermissions() : void{ private function recheckBroadcastPermissions() : void{
@ -814,7 +814,7 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
return; return;
} }
Timings::$playerChunkOrderTimer->startTiming(); Timings::$playerChunkOrder->startTiming();
$newOrder = []; $newOrder = [];
$unloadChunks = $this->usedChunks; $unloadChunks = $this->usedChunks;
@ -841,7 +841,7 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
$this->networkSession->syncViewAreaCenterPoint($this->location, $this->viewDistance); $this->networkSession->syncViewAreaCenterPoint($this->location, $this->viewDistance);
} }
Timings::$playerChunkOrderTimer->stopTiming(); Timings::$playerChunkOrder->stopTiming();
} }
/** /**
@ -1299,14 +1299,14 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
$this->inAirTicks += $tickDiff; $this->inAirTicks += $tickDiff;
} }
Timings::$timerEntityBaseTick->startTiming(); Timings::$entityBaseTick->startTiming();
$this->entityBaseTick($tickDiff); $this->entityBaseTick($tickDiff);
Timings::$timerEntityBaseTick->stopTiming(); Timings::$entityBaseTick->stopTiming();
if(!$this->isSpectator() and $this->isAlive()){ if(!$this->isSpectator() and $this->isAlive()){
Timings::$playerCheckNearEntitiesTimer->startTiming(); Timings::$playerCheckNearEntities->startTiming();
$this->checkNearEntities(); $this->checkNearEntities();
Timings::$playerCheckNearEntitiesTimer->stopTiming(); Timings::$playerCheckNearEntities->stopTiming();
} }
if($this->blockBreakHandler !== null and !$this->blockBreakHandler->update()){ if($this->blockBreakHandler !== null and !$this->blockBreakHandler->update()){
@ -1362,9 +1362,9 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
} }
if(strpos($ev->getMessage(), "/") === 0){ if(strpos($ev->getMessage(), "/") === 0){
Timings::$playerCommandTimer->startTiming(); Timings::$playerCommand->startTiming();
$this->server->dispatchCommand($ev->getPlayer(), substr($ev->getMessage(), 1)); $this->server->dispatchCommand($ev->getPlayer(), substr($ev->getMessage(), 1));
Timings::$playerCommandTimer->stopTiming(); Timings::$playerCommand->stopTiming();
}else{ }else{
$ev = new PlayerChatEvent($this, $ev->getMessage(), $this->server->getBroadcastChannelSubscribers(Server::BROADCAST_CHANNEL_USERS)); $ev = new PlayerChatEvent($this, $ev->getMessage(), $this->server->getBroadcastChannelSubscribers(Server::BROADCAST_CHANNEL_USERS));
$ev->call(); $ev->call();

View File

@ -38,76 +38,76 @@ abstract class Timings{
private static $initialized = false; private static $initialized = false;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $fullTickTimer; public static $fullTick;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $serverTickTimer; public static $serverTick;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $memoryManagerTimer; public static $memoryManager;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $garbageCollectorTimer; public static $garbageCollector;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $titleTickTimer; public static $titleTick;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $playerNetworkSendTimer; public static $playerNetworkSend;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $playerNetworkSendCompressTimer; public static $playerNetworkSendCompress;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $playerNetworkSendEncryptTimer; public static $playerNetworkSendEncrypt;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $playerNetworkReceiveTimer; public static $playerNetworkReceive;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $playerNetworkReceiveDecompressTimer; public static $playerNetworkReceiveDecompress;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $playerNetworkReceiveDecryptTimer; public static $playerNetworkReceiveDecrypt;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $playerChunkOrderTimer; public static $playerChunkOrder;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $playerChunkSendTimer; public static $playerChunkSend;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $connectionTimer; public static $connection;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $schedulerTimer; public static $scheduler;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $serverCommandTimer; public static $serverCommand;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $worldLoadTimer; public static $worldLoad;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $worldSaveTimer; public static $worldSave;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $populationTimer; public static $population;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $generationCallbackTimer; public static $generationCallback;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $permissibleCalculationTimer; public static $permissibleCalculation;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $permissibleCalculationDiffTimer; public static $permissibleCalculationDiff;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $permissibleCalculationCallbackTimer; public static $permissibleCalculationCallback;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $entityMoveTimer; public static $entityMove;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $playerCheckNearEntitiesTimer; public static $playerCheckNearEntities;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $tickEntityTimer; public static $tickEntity;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $tickTileEntityTimer; public static $tickTileEntity;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $timerEntityBaseTick; public static $entityBaseTick;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $timerLivingEntityBaseTick; public static $livingEntityBaseTick;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $schedulerSyncTimer; public static $schedulerSync;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $schedulerAsyncTimer; public static $schedulerAsync;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $playerCommandTimer; public static $playerCommand;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $craftingDataCacheRebuildTimer; public static $craftingDataCacheRebuild;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $syncPlayerDataLoad; public static $syncPlayerDataLoad;
@ -134,51 +134,51 @@ abstract class Timings{
} }
self::$initialized = true; self::$initialized = true;
self::$fullTickTimer = new TimingsHandler("Full Server Tick"); self::$fullTick = new TimingsHandler("Full Server Tick");
self::$serverTickTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Full Server Tick", self::$fullTickTimer); self::$serverTick = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Full Server Tick", self::$fullTick);
self::$memoryManagerTimer = new TimingsHandler("Memory Manager"); self::$memoryManager = new TimingsHandler("Memory Manager");
self::$garbageCollectorTimer = new TimingsHandler("Garbage Collector", self::$memoryManagerTimer); self::$garbageCollector = new TimingsHandler("Garbage Collector", self::$memoryManager);
self::$titleTickTimer = new TimingsHandler("Console Title Tick"); self::$titleTick = new TimingsHandler("Console Title Tick");
self::$playerNetworkSendTimer = new TimingsHandler("Player Network Send"); self::$playerNetworkSend = new TimingsHandler("Player Network Send");
self::$playerNetworkSendCompressTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Player Network Send - Compression", self::$playerNetworkSendTimer); self::$playerNetworkSendCompress = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Player Network Send - Compression", self::$playerNetworkSend);
self::$playerNetworkSendEncryptTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Player Network Send - Encryption", self::$playerNetworkSendTimer); self::$playerNetworkSendEncrypt = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Player Network Send - Encryption", self::$playerNetworkSend);
self::$playerNetworkReceiveTimer = new TimingsHandler("Player Network Receive"); self::$playerNetworkReceive = new TimingsHandler("Player Network Receive");
self::$playerNetworkReceiveDecompressTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Player Network Receive - Decompression", self::$playerNetworkReceiveTimer); self::$playerNetworkReceiveDecompress = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Player Network Receive - Decompression", self::$playerNetworkReceive);
self::$playerNetworkReceiveDecryptTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Player Network Receive - Decryption", self::$playerNetworkReceiveTimer); self::$playerNetworkReceiveDecrypt = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Player Network Receive - Decryption", self::$playerNetworkReceive);
self::$broadcastPackets = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Broadcast Packets", self::$playerNetworkSendTimer); self::$broadcastPackets = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Broadcast Packets", self::$playerNetworkSend);
self::$playerChunkOrderTimer = new TimingsHandler("Player Order Chunks"); self::$playerChunkOrder = new TimingsHandler("Player Order Chunks");
self::$playerChunkSendTimer = new TimingsHandler("Player Send Chunks"); self::$playerChunkSend = new TimingsHandler("Player Send Chunks");
self::$connectionTimer = new TimingsHandler("Connection Handler"); self::$connection = new TimingsHandler("Connection Handler");
self::$schedulerTimer = new TimingsHandler("Scheduler"); self::$scheduler = new TimingsHandler("Scheduler");
self::$serverCommandTimer = new TimingsHandler("Server Command"); self::$serverCommand = new TimingsHandler("Server Command");
self::$worldLoadTimer = new TimingsHandler("World Load"); self::$worldLoad = new TimingsHandler("World Load");
self::$worldSaveTimer = new TimingsHandler("World Save"); self::$worldSave = new TimingsHandler("World Save");
self::$populationTimer = new TimingsHandler("World Population"); self::$population = new TimingsHandler("World Population");
self::$generationCallbackTimer = new TimingsHandler("World Generation Callback"); self::$generationCallback = new TimingsHandler("World Generation Callback");
self::$permissibleCalculationTimer = new TimingsHandler("Permissible Calculation"); self::$permissibleCalculation = new TimingsHandler("Permissible Calculation");
self::$permissibleCalculationDiffTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Permissible Calculation - Diff", self::$permissibleCalculationTimer); self::$permissibleCalculationDiff = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Permissible Calculation - Diff", self::$permissibleCalculation);
self::$permissibleCalculationCallbackTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Permissible Calculation - Callbacks", self::$permissibleCalculationTimer); self::$permissibleCalculationCallback = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Permissible Calculation - Callbacks", self::$permissibleCalculation);
self::$syncPlayerDataLoad = new TimingsHandler("Player Data Load"); self::$syncPlayerDataLoad = new TimingsHandler("Player Data Load");
self::$syncPlayerDataSave = new TimingsHandler("Player Data Save"); self::$syncPlayerDataSave = new TimingsHandler("Player Data Save");
self::$entityMoveTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "entityMove"); self::$entityMove = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "entityMove");
self::$playerCheckNearEntitiesTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "checkNearEntities"); self::$playerCheckNearEntities = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "checkNearEntities");
self::$tickEntityTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "tickEntity"); self::$tickEntity = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "tickEntity");
self::$tickTileEntityTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "tickTileEntity"); self::$tickTileEntity = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "tickTileEntity");
self::$timerEntityBaseTick = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "entityBaseTick"); self::$entityBaseTick = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "entityBaseTick");
self::$timerLivingEntityBaseTick = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "livingEntityBaseTick"); self::$livingEntityBaseTick = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "livingEntityBaseTick");
self::$schedulerSyncTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Scheduler - Sync Tasks"); self::$schedulerSync = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Scheduler - Sync Tasks");
self::$schedulerAsyncTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Scheduler - Async Tasks"); self::$schedulerAsync = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "Scheduler - Async Tasks");
self::$playerCommandTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "playerCommand"); self::$playerCommand = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "playerCommand");
self::$craftingDataCacheRebuildTimer = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "craftingDataCacheRebuild"); self::$craftingDataCacheRebuild = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "craftingDataCacheRebuild");
} }
@ -192,7 +192,7 @@ abstract class Timings{
} }
if(!isset(self::$pluginTaskTimingMap[$name])){ if(!isset(self::$pluginTaskTimingMap[$name])){
self::$pluginTaskTimingMap[$name] = new TimingsHandler($name, self::$schedulerSyncTimer); self::$pluginTaskTimingMap[$name] = new TimingsHandler($name, self::$schedulerSync);
} }
return self::$pluginTaskTimingMap[$name]; return self::$pluginTaskTimingMap[$name];
@ -202,9 +202,9 @@ abstract class Timings{
$entityType = (new \ReflectionClass($entity))->getShortName(); $entityType = (new \ReflectionClass($entity))->getShortName();
if(!isset(self::$entityTypeTimingMap[$entityType])){ if(!isset(self::$entityTypeTimingMap[$entityType])){
if($entity instanceof Player){ if($entity instanceof Player){
self::$entityTypeTimingMap[$entityType] = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "tickEntity - EntityPlayer", self::$tickEntityTimer); self::$entityTypeTimingMap[$entityType] = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "tickEntity - EntityPlayer", self::$tickEntity);
}else{ }else{
self::$entityTypeTimingMap[$entityType] = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "tickEntity - " . $entityType, self::$tickEntityTimer); self::$entityTypeTimingMap[$entityType] = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "tickEntity - " . $entityType, self::$tickEntity);
} }
} }
@ -214,7 +214,7 @@ abstract class Timings{
public static function getTileEntityTimings(Tile $tile) : TimingsHandler{ public static function getTileEntityTimings(Tile $tile) : TimingsHandler{
$tileType = (new \ReflectionClass($tile))->getShortName(); $tileType = (new \ReflectionClass($tile))->getShortName();
if(!isset(self::$tileEntityTypeTimingMap[$tileType])){ if(!isset(self::$tileEntityTypeTimingMap[$tileType])){
self::$tileEntityTypeTimingMap[$tileType] = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "tickTileEntity - " . $tileType, self::$tickTileEntityTimer); self::$tileEntityTypeTimingMap[$tileType] = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "tickTileEntity - " . $tileType, self::$tickTileEntity);
} }
return self::$tileEntityTypeTimingMap[$tileType]; return self::$tileEntityTypeTimingMap[$tileType];
@ -224,7 +224,7 @@ abstract class Timings{
$pid = $pk->pid(); $pid = $pk->pid();
if(!isset(self::$packetReceiveTimingMap[$pid])){ if(!isset(self::$packetReceiveTimingMap[$pid])){
$pkName = (new \ReflectionClass($pk))->getShortName(); $pkName = (new \ReflectionClass($pk))->getShortName();
self::$packetReceiveTimingMap[$pid] = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "receivePacket - " . $pkName . " [0x" . dechex($pid) . "]", self::$playerNetworkReceiveTimer); self::$packetReceiveTimingMap[$pid] = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "receivePacket - " . $pkName . " [0x" . dechex($pid) . "]", self::$playerNetworkReceive);
} }
return self::$packetReceiveTimingMap[$pid]; return self::$packetReceiveTimingMap[$pid];
@ -234,7 +234,7 @@ abstract class Timings{
$pid = $pk->pid(); $pid = $pk->pid();
if(!isset(self::$packetSendTimingMap[$pid])){ if(!isset(self::$packetSendTimingMap[$pid])){
$pkName = (new \ReflectionClass($pk))->getShortName(); $pkName = (new \ReflectionClass($pk))->getShortName();
self::$packetSendTimingMap[$pid] = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "sendPacket - " . $pkName . " [0x" . dechex($pid) . "]", self::$playerNetworkSendTimer); self::$packetSendTimingMap[$pid] = new TimingsHandler(self::INCLUDED_BY_OTHER_TIMINGS_PREFIX . "sendPacket - " . $pkName . " [0x" . dechex($pid) . "]", self::$playerNetworkSend);
} }
return self::$packetSendTimingMap[$pid]; return self::$packetSendTimingMap[$pid];

View File

@ -787,7 +787,7 @@ class World implements ChunkManager{
$this->timings->entityTick->startTiming(); $this->timings->entityTick->startTiming();
//Update entities that need update //Update entities that need update
Timings::$tickEntityTimer->startTiming(); Timings::$tickEntity->startTiming();
foreach($this->updateEntities as $id => $entity){ foreach($this->updateEntities as $id => $entity){
if($entity->isClosed() or !$entity->onUpdate($currentTick)){ if($entity->isClosed() or !$entity->onUpdate($currentTick)){
unset($this->updateEntities[$id]); unset($this->updateEntities[$id]);
@ -796,7 +796,7 @@ class World implements ChunkManager{
$entity->close(); $entity->close();
} }
} }
Timings::$tickEntityTimer->stopTiming(); Timings::$tickEntity->stopTiming();
$this->timings->entityTick->stopTiming(); $this->timings->entityTick->stopTiming();
$this->timings->doTickTiles->startTiming(); $this->timings->doTickTiles->startTiming();
@ -1039,7 +1039,7 @@ class World implements ChunkManager{
} }
public function saveChunks() : void{ public function saveChunks() : void{
$this->timings->syncChunkSaveTimer->startTiming(); $this->timings->syncChunkSave->startTiming();
try{ try{
foreach($this->chunks as $chunkHash => $chunk){ foreach($this->chunks as $chunkHash => $chunk){
if($chunk->isDirty()){ if($chunk->isDirty()){
@ -1049,7 +1049,7 @@ class World implements ChunkManager{
} }
} }
}finally{ }finally{
$this->timings->syncChunkSaveTimer->stopTiming(); $this->timings->syncChunkSave->stopTiming();
} }
} }
@ -1997,7 +1997,7 @@ class World implements ChunkManager{
} }
public function generateChunkCallback(int $x, int $z, ?Chunk $chunk) : void{ public function generateChunkCallback(int $x, int $z, ?Chunk $chunk) : void{
Timings::$generationCallbackTimer->startTiming(); Timings::$generationCallback->startTiming();
if(isset($this->chunkPopulationQueue[$index = World::chunkHash($x, $z)])){ if(isset($this->chunkPopulationQueue[$index = World::chunkHash($x, $z)])){
for($xx = -1; $xx <= 1; ++$xx){ for($xx = -1; $xx <= 1; ++$xx){
for($zz = -1; $zz <= 1; ++$zz){ for($zz = -1; $zz <= 1; ++$zz){
@ -2025,7 +2025,7 @@ class World implements ChunkManager{
}elseif($chunk !== null){ }elseif($chunk !== null){
$this->setChunk($x, $z, $chunk, false); $this->setChunk($x, $z, $chunk, false);
} }
Timings::$generationCallbackTimer->stopTiming(); Timings::$generationCallback->stopTiming();
} }
/** /**
@ -2303,11 +2303,11 @@ class World implements ChunkManager{
return $this->chunks[$chunkHash]; return $this->chunks[$chunkHash];
} }
$this->timings->syncChunkLoadTimer->startTiming(); $this->timings->syncChunkLoad->startTiming();
$this->cancelUnloadChunkRequest($x, $z); $this->cancelUnloadChunkRequest($x, $z);
$this->timings->syncChunkLoadDataTimer->startTiming(); $this->timings->syncChunkLoadData->startTiming();
$chunk = null; $chunk = null;
@ -2317,10 +2317,10 @@ class World implements ChunkManager{
$this->logger->critical("Failed to load chunk x=$x z=$z: " . $e->getMessage()); $this->logger->critical("Failed to load chunk x=$x z=$z: " . $e->getMessage());
} }
$this->timings->syncChunkLoadDataTimer->stopTiming(); $this->timings->syncChunkLoadData->stopTiming();
if($chunk === null){ if($chunk === null){
$this->timings->syncChunkLoadTimer->stopTiming(); $this->timings->syncChunkLoad->stopTiming();
return null; return null;
} }
@ -2339,14 +2339,14 @@ class World implements ChunkManager{
$listener->onChunkLoaded($x, $z, $chunk); $listener->onChunkLoaded($x, $z, $chunk);
} }
$this->timings->syncChunkLoadTimer->stopTiming(); $this->timings->syncChunkLoad->stopTiming();
return $chunk; return $chunk;
} }
private function initChunk(int $chunkX, int $chunkZ, Chunk $chunk) : void{ private function initChunk(int $chunkX, int $chunkZ, Chunk $chunk) : void{
if($chunk->NBTentities !== null){ if($chunk->NBTentities !== null){
$this->timings->syncChunkLoadEntitiesTimer->startTiming(); $this->timings->syncChunkLoadEntities->startTiming();
$entityFactory = EntityFactory::getInstance(); $entityFactory = EntityFactory::getInstance();
foreach($chunk->NBTentities as $nbt){ foreach($chunk->NBTentities as $nbt){
try{ try{
@ -2370,10 +2370,10 @@ class World implements ChunkManager{
$chunk->setDirtyFlag(Chunk::DIRTY_FLAG_ENTITIES, true); $chunk->setDirtyFlag(Chunk::DIRTY_FLAG_ENTITIES, true);
$chunk->NBTentities = null; $chunk->NBTentities = null;
$this->timings->syncChunkLoadEntitiesTimer->stopTiming(); $this->timings->syncChunkLoadEntities->stopTiming();
} }
if($chunk->NBTtiles !== null){ if($chunk->NBTtiles !== null){
$this->timings->syncChunkLoadTileEntitiesTimer->startTiming(); $this->timings->syncChunkLoadTileEntities->startTiming();
$tileFactory = TileFactory::getInstance(); $tileFactory = TileFactory::getInstance();
foreach($chunk->NBTtiles as $nbt){ foreach($chunk->NBTtiles as $nbt){
if(($tile = $tileFactory->createFromData($this, $nbt)) !== null){ if(($tile = $tileFactory->createFromData($this, $nbt)) !== null){
@ -2386,7 +2386,7 @@ class World implements ChunkManager{
$chunk->setDirtyFlag(Chunk::DIRTY_FLAG_TILES, true); $chunk->setDirtyFlag(Chunk::DIRTY_FLAG_TILES, true);
$chunk->NBTtiles = null; $chunk->NBTtiles = null;
$this->timings->syncChunkLoadTileEntitiesTimer->stopTiming(); $this->timings->syncChunkLoadTileEntities->stopTiming();
} }
} }
@ -2433,11 +2433,11 @@ class World implements ChunkManager{
} }
if($trySave and $this->getAutoSave() and $chunk->isDirty()){ if($trySave and $this->getAutoSave() and $chunk->isDirty()){
$this->timings->syncChunkSaveTimer->startTiming(); $this->timings->syncChunkSave->startTiming();
try{ try{
$this->provider->saveChunk($x, $z, $chunk); $this->provider->saveChunk($x, $z, $chunk);
}finally{ }finally{
$this->timings->syncChunkSaveTimer->stopTiming(); $this->timings->syncChunkSave->stopTiming();
} }
} }
@ -2632,7 +2632,7 @@ class World implements ChunkManager{
$chunk = $this->loadChunk($x, $z); $chunk = $this->loadChunk($x, $z);
if($chunk === null || !$chunk->isPopulated()){ if($chunk === null || !$chunk->isPopulated()){
Timings::$populationTimer->startTiming(); Timings::$population->startTiming();
$this->chunkPopulationQueue[$index] = true; $this->chunkPopulationQueue[$index] = true;
for($xx = -1; $xx <= 1; ++$xx){ for($xx = -1; $xx <= 1; ++$xx){
@ -2648,7 +2648,7 @@ class World implements ChunkManager{
} }
$this->workerPool->submitTaskToWorker($task, $workerId); $this->workerPool->submitTaskToWorker($task, $workerId);
Timings::$populationTimer->stopTiming(); Timings::$population->stopTiming();
return false; return false;
} }

View File

@ -374,7 +374,7 @@ class WorldManager{
} }
private function doAutoSave() : void{ private function doAutoSave() : void{
Timings::$worldSaveTimer->startTiming(); Timings::$worldSave->startTiming();
foreach($this->worlds as $world){ foreach($this->worlds as $world){
foreach($world->getPlayers() as $player){ foreach($world->getPlayers() as $player){
if($player->spawned){ if($player->spawned){
@ -383,6 +383,6 @@ class WorldManager{
} }
$world->save(false); $world->save(false);
} }
Timings::$worldSaveTimer->stopTiming(); Timings::$worldSave->stopTiming();
} }
} }

View File

@ -49,20 +49,20 @@ class WorldTimings{
public $doTick; public $doTick;
/** @var TimingsHandler */ /** @var TimingsHandler */
public $syncChunkSendTimer; public $syncChunkSend;
/** @var TimingsHandler */ /** @var TimingsHandler */
public $syncChunkSendPrepareTimer; public $syncChunkSendPrepare;
/** @var TimingsHandler */ /** @var TimingsHandler */
public $syncChunkLoadTimer; public $syncChunkLoad;
/** @var TimingsHandler */ /** @var TimingsHandler */
public $syncChunkLoadDataTimer; public $syncChunkLoadData;
/** @var TimingsHandler */ /** @var TimingsHandler */
public $syncChunkLoadEntitiesTimer; public $syncChunkLoadEntities;
/** @var TimingsHandler */ /** @var TimingsHandler */
public $syncChunkLoadTileEntitiesTimer; public $syncChunkLoadTileEntities;
/** @var TimingsHandler */ /** @var TimingsHandler */
public $syncChunkSaveTimer; public $syncChunkSave;
public function __construct(World $world){ public function __construct(World $world){
$name = $world->getFolderName() . " - "; $name = $world->getFolderName() . " - ";
@ -78,14 +78,14 @@ class WorldTimings{
$this->entityTick = new TimingsHandler(Timings::INCLUDED_BY_OTHER_TIMINGS_PREFIX . $name . "Tick Entities"); $this->entityTick = new TimingsHandler(Timings::INCLUDED_BY_OTHER_TIMINGS_PREFIX . $name . "Tick Entities");
Timings::init(); //make sure the timers we want are available Timings::init(); //make sure the timers we want are available
$this->syncChunkSendTimer = new TimingsHandler("** " . $name . "Player Send Chunks", Timings::$playerChunkSendTimer); $this->syncChunkSend = new TimingsHandler("** " . $name . "Player Send Chunks", Timings::$playerChunkSend);
$this->syncChunkSendPrepareTimer = new TimingsHandler("** " . $name . "Player Send Chunk Prepare", Timings::$playerChunkSendTimer); $this->syncChunkSendPrepare = new TimingsHandler("** " . $name . "Player Send Chunk Prepare", Timings::$playerChunkSend);
$this->syncChunkLoadTimer = new TimingsHandler("** " . $name . "Chunk Load", Timings::$worldLoadTimer); $this->syncChunkLoad = new TimingsHandler("** " . $name . "Chunk Load", Timings::$worldLoad);
$this->syncChunkLoadDataTimer = new TimingsHandler("** " . $name . "Chunk Load - Data"); $this->syncChunkLoadData = new TimingsHandler("** " . $name . "Chunk Load - Data");
$this->syncChunkLoadEntitiesTimer = new TimingsHandler("** " . $name . "Chunk Load - Entities"); $this->syncChunkLoadEntities = new TimingsHandler("** " . $name . "Chunk Load - Entities");
$this->syncChunkLoadTileEntitiesTimer = new TimingsHandler("** " . $name . "Chunk Load - TileEntities"); $this->syncChunkLoadTileEntities = new TimingsHandler("** " . $name . "Chunk Load - TileEntities");
$this->syncChunkSaveTimer = new TimingsHandler("** " . $name . "Chunk Save", Timings::$worldSaveTimer); $this->syncChunkSave = new TimingsHandler("** " . $name . "Chunk Save", Timings::$worldSave);
$this->doTick = new TimingsHandler($name . "World Tick"); $this->doTick = new TimingsHandler($name . "World Tick");
} }