Added Permission/Permissible calculation timings

This commit is contained in:
Shoghi Cervantes 2014-09-12 13:08:59 +02:00
parent 7923c40b33
commit 6c7e16d9d4
3 changed files with 14 additions and 0 deletions

View File

@ -48,6 +48,10 @@ abstract class Timings{
public static $serverCommandTimer; public static $serverCommandTimer;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $worldSaveTimer; public static $worldSaveTimer;
/** @var TimingsHandler */
public static $permissibleCalculationTimer;
/** @var TimingsHandler */
public static $permissionDefaultTimer;
/** @var TimingsHandler */ /** @var TimingsHandler */
public static $entityMoveTimer; public static $entityMoveTimer;
@ -98,6 +102,8 @@ abstract class Timings{
self::$timeUpdateTimer = new TimingsHandler("Time Update"); self::$timeUpdateTimer = new TimingsHandler("Time Update");
self::$serverCommandTimer = new TimingsHandler("Server Command"); self::$serverCommandTimer = new TimingsHandler("Server Command");
self::$worldSaveTimer = new TimingsHandler("World Save"); self::$worldSaveTimer = new TimingsHandler("World Save");
self::$permissibleCalculationTimer = new TimingsHandler("Permissible Calculation");
self::$permissionDefaultTimer = new TimingsHandler("Default Permission Calculation");
self::$entityMoveTimer = new TimingsHandler("** entityMove"); self::$entityMoveTimer = new TimingsHandler("** entityMove");
self::$tickEntityTimer = new TimingsHandler("** tickEntity"); self::$tickEntityTimer = new TimingsHandler("** tickEntity");

View File

@ -21,6 +21,7 @@
namespace pocketmine\permission; namespace pocketmine\permission;
use pocketmine\event\Timings;
use pocketmine\plugin\Plugin; use pocketmine\plugin\Plugin;
use pocketmine\Server; use pocketmine\Server;
@ -162,6 +163,8 @@ class PermissibleBase implements Permissible{
} }
public function recalculatePermissions(){ public function recalculatePermissions(){
Timings::$permissibleCalculationTimer->startTiming();
$this->clearPermissions(); $this->clearPermissions();
$defaults = Server::getInstance()->getPluginManager()->getDefaultPermissions($this->isOp()); $defaults = Server::getInstance()->getPluginManager()->getDefaultPermissions($this->isOp());
Server::getInstance()->getPluginManager()->subscribeToDefaultPerms($this->isOp(), $this->parent); Server::getInstance()->getPluginManager()->subscribeToDefaultPerms($this->isOp(), $this->parent);
@ -176,6 +179,8 @@ class PermissibleBase implements Permissible{
foreach($this->attachments as $attachment){ foreach($this->attachments as $attachment){
$this->calculateChildPermissions($attachment->getPermissions(), false, $attachment); $this->calculateChildPermissions($attachment->getPermissions(), false, $attachment);
} }
Timings::$permissibleCalculationTimer->stopTiming();
} }
public function clearPermissions(){ public function clearPermissions(){

View File

@ -28,6 +28,7 @@ use pocketmine\event\Event;
use pocketmine\event\EventPriority; use pocketmine\event\EventPriority;
use pocketmine\event\HandlerList; use pocketmine\event\HandlerList;
use pocketmine\event\Listener; use pocketmine\event\Listener;
use pocketmine\event\Timings;
use pocketmine\event\TimingsHandler; use pocketmine\event\TimingsHandler;
use pocketmine\permission\Permissible; use pocketmine\permission\Permissible;
use pocketmine\permission\Permission; use pocketmine\permission\Permission;
@ -396,6 +397,7 @@ class PluginManager{
* @param Permission $permission * @param Permission $permission
*/ */
private function calculatePermissionDefault(Permission $permission){ private function calculatePermissionDefault(Permission $permission){
Timings::$permissionDefaultTimer->startTiming();
if($permission->getDefault() === Permission::DEFAULT_OP or $permission->getDefault() === Permission::DEFAULT_TRUE){ if($permission->getDefault() === Permission::DEFAULT_OP or $permission->getDefault() === Permission::DEFAULT_TRUE){
$this->defaultPermsOp[$permission->getName()] = $permission; $this->defaultPermsOp[$permission->getName()] = $permission;
$this->dirtyPermissibles(true); $this->dirtyPermissibles(true);
@ -405,6 +407,7 @@ class PluginManager{
$this->defaultPerms[$permission->getName()] = $permission; $this->defaultPerms[$permission->getName()] = $permission;
$this->dirtyPermissibles(false); $this->dirtyPermissibles(false);
} }
Timings::$permissionDefaultTimer->startTiming();
} }
/** /**