diff --git a/src/pocketmine/MemoryManager.php b/src/pocketmine/MemoryManager.php index 6d2206063..4f3d2226b 100644 --- a/src/pocketmine/MemoryManager.php +++ b/src/pocketmine/MemoryManager.php @@ -226,7 +226,7 @@ class MemoryManager{ if(($this->memoryLimit > 0 or $this->globalMemoryLimit > 0) and ++$this->checkTicker >= $this->checkRate){ $this->checkTicker = 0; - $memory = Process::getMemoryUsage(true); + $memory = Process::getAdvancedMemoryUsage(); $trigger = false; if($this->memoryLimit > 0 and $memory[0] > $this->memoryLimit){ $trigger = 0; diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index 4fd6c2476..ebb7663e3 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -2325,7 +2325,7 @@ class Server{ Timings::$titleTickTimer->startTiming(); $d = Process::getRealMemoryUsage(); - $u = Process::getMemoryUsage(true); + $u = Process::getAdvancedMemoryUsage(); $usage = sprintf("%g/%g/%g/%g MB @ %d threads", round(($u[0] / 1024) / 1024, 2), round(($d[0] / 1024) / 1024, 2), round(($u[1] / 1024) / 1024, 2), round(($u[2] / 1024) / 1024, 2), Process::getThreadCount()); echo "\x1b]0;" . $this->getName() . " " . diff --git a/src/pocketmine/command/defaults/StatusCommand.php b/src/pocketmine/command/defaults/StatusCommand.php index 9fb0253bb..60d49c2dc 100644 --- a/src/pocketmine/command/defaults/StatusCommand.php +++ b/src/pocketmine/command/defaults/StatusCommand.php @@ -49,7 +49,7 @@ class StatusCommand extends VanillaCommand{ } $rUsage = Process::getRealMemoryUsage(); - $mUsage = Process::getMemoryUsage(true); + $mUsage = Process::getAdvancedMemoryUsage(); $server = $sender->getServer(); $sender->sendMessage(TextFormat::GREEN . "---- " . TextFormat::WHITE . "Server status" . TextFormat::GREEN . " ----"); diff --git a/src/pocketmine/event/server/LowMemoryEvent.php b/src/pocketmine/event/server/LowMemoryEvent.php index 46f0c8022..7c7a090a6 100644 --- a/src/pocketmine/event/server/LowMemoryEvent.php +++ b/src/pocketmine/event/server/LowMemoryEvent.php @@ -75,6 +75,7 @@ class LowMemoryEvent extends ServerEvent{ * Amount of memory already freed */ public function getMemoryFreed() : int{ - return $this->getMemory() - ($this->isGlobal() ? Process::getMemoryUsage(true)[1] : Process::getMemoryUsage(true)[0]); + $usage = Process::getAdvancedMemoryUsage(); + return $this->getMemory() - ($this->isGlobal() ? $usage[1] : $usage[0]); } } diff --git a/src/pocketmine/scheduler/SendUsageTask.php b/src/pocketmine/scheduler/SendUsageTask.php index a92c0eb7f..4e8bee608 100644 --- a/src/pocketmine/scheduler/SendUsageTask.php +++ b/src/pocketmine/scheduler/SendUsageTask.php @@ -136,7 +136,7 @@ class SendUsageTask extends AsyncTask{ "historyList" => array_values($playerList) ]; - $info = Process::getMemoryUsage(true); + $info = Process::getAdvancedMemoryUsage(); $data["system"] = [ "mainMemory" => $info[0], "totalMemory" => $info[1], diff --git a/src/pocketmine/utils/Process.php b/src/pocketmine/utils/Process.php index 47520344a..ca3f13ac6 100644 --- a/src/pocketmine/utils/Process.php +++ b/src/pocketmine/utils/Process.php @@ -47,9 +47,10 @@ final class Process{ } /** - * @return int[]|int + * @return int[] + * @phpstan-return array{int,int,int} */ - public static function getMemoryUsage(bool $advanced = false){ + public static function getAdvancedMemoryUsage(){ $reserved = memory_get_usage(); $VmSize = null; $VmRSS = null; @@ -70,10 +71,6 @@ final class Process{ $VmRSS = memory_get_usage(); } - if(!$advanced){ - return $VmRSS; - } - if($VmSize === null){ $VmSize = memory_get_usage(true); } @@ -81,6 +78,10 @@ final class Process{ return [$reserved, $VmRSS, $VmSize]; } + public static function getMemoryUsage() : int{ + return self::getAdvancedMemoryUsage()[1]; + } + /** * @return int[] */ diff --git a/src/pocketmine/utils/Utils.php b/src/pocketmine/utils/Utils.php index 643f9ee27..7cbc03610 100644 --- a/src/pocketmine/utils/Utils.php +++ b/src/pocketmine/utils/Utils.php @@ -283,11 +283,12 @@ class Utils{ /** * @deprecated * @see Process::getMemoryUsage() + * @see Process::getAdvancedMemoryUsage() * * @return int[]|int */ public static function getMemoryUsage(bool $advanced = false){ - return Process::getMemoryUsage($advanced); + return $advanced ? Process::getAdvancedMemoryUsage() : Process::getMemoryUsage(); } /**