New extended packet timings

This commit is contained in:
Shoghi Cervantes
2015-06-06 16:58:49 +02:00
parent 5682026eae
commit 9e4d88a852
2 changed files with 72 additions and 25 deletions

View File

@ -23,6 +23,7 @@ namespace pocketmine\event;
use pocketmine\entity\Entity;
use pocketmine\network\protocol\DataPacket;
use pocketmine\plugin\PluginManager;
use pocketmine\scheduler\PluginTask;
use pocketmine\scheduler\TaskHandler;
@ -41,6 +42,8 @@ abstract class Timings{
/** @var TimingsHandler */
public static $playerNetworkTimer;
/** @var TimingsHandler */
public static $playerNetworkReceiveTimer;
/** @var TimingsHandler */
public static $playerChunkOrderTimer;
/** @var TimingsHandler */
public static $playerChunkSendTimer;
@ -104,6 +107,10 @@ abstract class Timings{
/** @var TimingsHandler[] */
public static $tileEntityTypeTimingMap = [];
/** @var TimingsHandler[] */
public static $packetReceiveTimingMap = [];
/** @var TimingsHandler[] */
public static $packetSendTimingMap = [];
/** @var TimingsHandler[] */
public static $pluginTaskTimingMap = [];
public static function init(){
@ -115,7 +122,8 @@ abstract class Timings{
self::$memoryManagerTimer = new TimingsHandler("Memory Manager");
self::$garbageCollectorTimer = new TimingsHandler("Garbage Collector", self::$memoryManagerTimer);
self::$playerListTimer = new TimingsHandler("Player List");
self::$playerNetworkTimer = new TimingsHandler("Player Network");
self::$playerNetworkTimer = new TimingsHandler("Player Network Send");
self::$playerNetworkReceiveTimer = new TimingsHandler("Player Network Receive");
self::$playerChunkOrderTimer = new TimingsHandler("Player Order Chunks");
self::$playerChunkSendTimer = new TimingsHandler("Player Send Chunks");
self::$connectionTimer = new TimingsHandler("Connection Handler");
@ -143,9 +151,6 @@ abstract class Timings{
self::$timerEntityAIMove = new TimingsHandler("** livingEntityAIMove");
self::$timerEntityTickRest = new TimingsHandler("** livingEntityTickRest");
PluginManager::$pluginParentTimer = new TimingsHandler("** Plugins");
self::$schedulerSyncTimer = new TimingsHandler("** Scheduler - Sync Tasks", PluginManager::$pluginParentTimer);
self::$schedulerAsyncTimer = new TimingsHandler("** Scheduler - Async Tasks");
@ -214,4 +219,33 @@ abstract class Timings{
return self::$tileEntityTypeTimingMap[$tileType];
}
/**
* @param DataPacket $pk
*
* @return TimingsHandler
*/
public static function getReceiveDataPacketTimings(DataPacket $pk){
if(!isset(self::$packetReceiveTimingMap[$pk::NETWORK_ID])){
$pkName = (new \ReflectionClass($pk))->getShortName();
self::$packetReceiveTimingMap[$pk::NETWORK_ID] = new TimingsHandler("** receivePacket - " . $pkName . " [0x" . dechex($pk::NETWORK_ID) . "]", self::$playerNetworkReceiveTimer);
}
return self::$packetReceiveTimingMap[$pk::NETWORK_ID];
}
/**
* @param DataPacket $pk
*
* @return TimingsHandler
*/
public static function getSendDataPacketTimings(DataPacket $pk){
if(!isset(self::$packetSendTimingMap[$pk::NETWORK_ID])){
$pkName = (new \ReflectionClass($pk))->getShortName();
self::$packetSendTimingMap[$pk::NETWORK_ID] = new TimingsHandler("** sendPacket - " . $pkName . " [0x" . dechex($pk::NETWORK_ID) . "]", self::$playerNetworkTimer);
}
return self::$packetSendTimingMap[$pk::NETWORK_ID];
}
}