diff --git a/src/pocketmine/event/LevelTimings.php b/src/pocketmine/event/LevelTimings.php index 5f20c68a6..ef78dcbd2 100644 --- a/src/pocketmine/event/LevelTimings.php +++ b/src/pocketmine/event/LevelTimings.php @@ -56,6 +56,11 @@ class LevelTimings{ /** @var TimingsHandler */ public $tickEntities; + /** @var TimingsHandler */ + public $syncChunkSendTimer; + /** @var TimingsHandler */ + public $syncChunkSendPrepareTimer; + /** @var TimingsHandler */ public $syncChunkLoadTimer; /** @var TimingsHandler */ @@ -87,6 +92,9 @@ class LevelTimings{ $this->tileEntityTick = new TimingsHandler("** " . $name . "tileEntityTick"); $this->tileEntityPending = new TimingsHandler("** " . $name . "tileEntityPending"); + $this->syncChunkSendTimer = new TimingsHandler("** " . $name . "syncChunkSend"); + $this->syncChunkSendPrepareTimer = new TimingsHandler("** " . $name . "syncChunkSendPrepare"); + $this->syncChunkLoadTimer = new TimingsHandler("** " . $name . "syncChunkLoad"); $this->syncChunkLoadDataTimer = new TimingsHandler("** " . $name . "syncChunkLoad - Data"); $this->syncChunkLoadStructuresTimer = new TimingsHandler("** " . $name . "syncChunkLoad - Structures"); diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 234118cf2..ac85f4652 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -1694,6 +1694,8 @@ class Level implements ChunkManager, Metadatable{ protected function processChunkRequest(){ if(count($this->chunkSendQueue) > 0){ + $this->timings->syncChunkSendTimer->startTiming(); + $x = null; $z = null; foreach($this->chunkSendQueue as $index => $players){ @@ -1711,12 +1713,16 @@ class Level implements ChunkManager, Metadatable{ unset($this->chunkSendQueue[$index]); }else{ $this->chunkSendTasks[$index] = true; + $this->timings->syncChunkSendPrepareTimer->startTiming(); $task = $this->provider->requestChunkTask($x, $z); if($task instanceof AsyncTask){ $this->server->getScheduler()->scheduleAsyncTask($task); } + $this->timings->syncChunkSendPrepareTimer->stopTiming(); } } + + $this->timings->syncChunkSendTimer->stopTiming(); } }