TimingsHandler::printTimings() now returns a list of strings instead of requiring a resource

This commit is contained in:
Dylan K. Taylor 2020-12-09 22:32:32 +00:00
parent 58db3531c7
commit 5282ae3298
2 changed files with 16 additions and 14 deletions

View File

@ -36,6 +36,7 @@ use function fclose;
use function file_exists; use function file_exists;
use function fopen; use function fopen;
use function fseek; use function fseek;
use function fwrite;
use function http_build_query; use function http_build_query;
use function is_array; use function is_array;
use function json_decode; use function json_decode;
@ -47,6 +48,7 @@ use const CURLOPT_FOLLOWLOCATION;
use const CURLOPT_HTTPHEADER; use const CURLOPT_HTTPHEADER;
use const CURLOPT_POST; use const CURLOPT_POST;
use const CURLOPT_POSTFIELDS; use const CURLOPT_POSTFIELDS;
use const PHP_EOL;
class TimingsCommand extends VanillaCommand{ class TimingsCommand extends VanillaCommand{
@ -110,7 +112,10 @@ class TimingsCommand extends VanillaCommand{
$fileTimings = fopen($timings, "a+b"); $fileTimings = fopen($timings, "a+b");
} }
TimingsHandler::printTimings($fileTimings); $lines = TimingsHandler::printTimings();
foreach($lines as $line){
fwrite($fileTimings, $line . PHP_EOL);
}
if($paste){ if($paste){
fseek($fileTimings, 0); fseek($fileTimings, 0);

View File

@ -26,9 +26,7 @@ namespace pocketmine\timings;
use pocketmine\entity\Living; use pocketmine\entity\Living;
use pocketmine\Server; use pocketmine\Server;
use function count; use function count;
use function fwrite;
use function hrtime; use function hrtime;
use const PHP_EOL;
class TimingsHandler{ class TimingsHandler{
/** @var bool */ /** @var bool */
@ -36,11 +34,9 @@ class TimingsHandler{
/** @var int */ /** @var int */
private static $timingStart = 0; private static $timingStart = 0;
/** /** @return string[] */
* @param resource $fp public static function printTimings() : array{
*/ $result = ["Minecraft"];
public static function printTimings($fp) : void{
fwrite($fp, "Minecraft" . PHP_EOL);
foreach(TimingsRecord::getAll() as $timings){ foreach(TimingsRecord::getAll() as $timings){
$time = $timings->getTotalTime(); $time = $timings->getTotalTime();
@ -52,11 +48,11 @@ class TimingsHandler{
$avg = $time / $count; $avg = $time / $count;
fwrite($fp, " " . $timings->getName() . " Time: $time Count: " . $count . " Avg: $avg Violations: " . $timings->getViolations() . PHP_EOL); $result[] = " " . $timings->getName() . " Time: $time Count: " . $count . " Avg: $avg Violations: " . $timings->getViolations();
} }
fwrite($fp, "# Version " . Server::getInstance()->getVersion() . PHP_EOL); $result[] = "# Version " . Server::getInstance()->getVersion();
fwrite($fp, "# " . Server::getInstance()->getName() . " " . Server::getInstance()->getPocketMineVersion() . PHP_EOL); $result[] = "# " . Server::getInstance()->getName() . " " . Server::getInstance()->getPocketMineVersion();
$entities = 0; $entities = 0;
$livingEntities = 0; $livingEntities = 0;
@ -69,11 +65,12 @@ class TimingsHandler{
} }
} }
fwrite($fp, "# Entities " . $entities . PHP_EOL); $result[] = "# Entities " . $entities;
fwrite($fp, "# LivingEntities " . $livingEntities . PHP_EOL); $result[] = "# LivingEntities " . $livingEntities;
$sampleTime = hrtime(true) - self::$timingStart; $sampleTime = hrtime(true) - self::$timingStart;
fwrite($fp, "Sample time $sampleTime (" . ($sampleTime / 1000000000) . "s)" . PHP_EOL); $result[] = "Sample time $sampleTime (" . ($sampleTime / 1000000000) . "s)";
return $result;
} }
public static function isEnabled() : bool{ public static function isEnabled() : bool{