Make sure timings are counted under the proper parents

This commit is contained in:
Dylan K. Taylor 2024-12-15 21:34:16 +00:00
parent 42f90e94ff
commit 80899ea72c
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
4 changed files with 6 additions and 4 deletions

View File

@ -54,10 +54,11 @@ final class GarbageCollectorManager{
public function __construct( public function __construct(
\Logger $logger, \Logger $logger,
?TimingsHandler $parentTimings,
){ ){
gc_disable(); gc_disable();
$this->logger = new \PrefixedLogger($logger, "Cyclic Garbage Collector"); $this->logger = new \PrefixedLogger($logger, "Cyclic Garbage Collector");
$this->timings = new TimingsHandler("Cyclic Garbage Collector"); $this->timings = new TimingsHandler("Cyclic Garbage Collector", $parentTimings);
} }
private function adjustGcThreshold(int $cyclesCollected, int $rootsAfterGC) : void{ private function adjustGcThreshold(int $cyclesCollected, int $rootsAfterGC) : void{

View File

@ -71,7 +71,7 @@ class MemoryManager{
private Server $server private Server $server
){ ){
$this->logger = new \PrefixedLogger($server->getLogger(), "Memory Manager"); $this->logger = new \PrefixedLogger($server->getLogger(), "Memory Manager");
$this->cycleGcManager = new GarbageCollectorManager($this->logger); $this->cycleGcManager = new GarbageCollectorManager($this->logger, Timings::$memoryManager);
$this->init($server->getConfigGroup()); $this->init($server->getConfigGroup());
} }

View File

@ -29,6 +29,7 @@ use pocketmine\snooze\SleeperHandlerEntry;
use pocketmine\snooze\SleeperNotifier; use pocketmine\snooze\SleeperNotifier;
use pocketmine\thread\log\ThreadSafeLogger; use pocketmine\thread\log\ThreadSafeLogger;
use pocketmine\thread\Worker; use pocketmine\thread\Worker;
use pocketmine\timings\Timings;
use pocketmine\utils\AssumptionFailedError; use pocketmine\utils\AssumptionFailedError;
use function ini_set; use function ini_set;
@ -72,7 +73,7 @@ class AsyncWorker extends Worker{
} }
self::$notifier = $this->sleeperEntry->createNotifier(); self::$notifier = $this->sleeperEntry->createNotifier();
self::$cycleGcManager = new GarbageCollectorManager($this->logger); self::$cycleGcManager = new GarbageCollectorManager($this->logger, Timings::$asyncTaskWorkers);
} }
public function getLogger() : ThreadSafeLogger{ public function getLogger() : ThreadSafeLogger{

View File

@ -131,7 +131,7 @@ abstract class Timings{
/** @var TimingsHandler[] */ /** @var TimingsHandler[] */
private static array $asyncTaskError = []; private static array $asyncTaskError = [];
private static TimingsHandler $asyncTaskWorkers; public static TimingsHandler $asyncTaskWorkers;
/** @var TimingsHandler[] */ /** @var TimingsHandler[] */
private static array $asyncTaskRun = []; private static array $asyncTaskRun = [];