mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-27 13:49:55 +00:00
Measure highest TPS load and lowest TPS between measurements
This commit is contained in:
parent
4a1e122605
commit
04f3cc4905
@ -1430,7 +1430,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
|
|||||||
$this->randomClientId = $packet->clientId;
|
$this->randomClientId = $packet->clientId;
|
||||||
$this->loginData = ["clientId" => $packet->clientId, "loginData" => null];
|
$this->loginData = ["clientId" => $packet->clientId, "loginData" => null];
|
||||||
|
|
||||||
$this->uuid = Utils::dataToUUID($this->getClientId(), $this->iusername, $this->getAddress());
|
$this->uuid = Utils::dataToUUID($this->randomClientId, $this->iusername, $this->getAddress());
|
||||||
|
|
||||||
if(count($this->server->getOnlinePlayers()) > $this->server->getMaxPlayers() and $this->kick("disconnectionScreen.serverFull", false)){
|
if(count($this->server->getOnlinePlayers()) > $this->server->getMaxPlayers() and $this->kick("disconnectionScreen.serverFull", false)){
|
||||||
return;
|
return;
|
||||||
|
@ -155,6 +155,8 @@ class Server{
|
|||||||
private $nextTick = 0;
|
private $nextTick = 0;
|
||||||
private $tickAverage = [20, 20, 20, 20, 20];
|
private $tickAverage = [20, 20, 20, 20, 20];
|
||||||
private $useAverage = [20, 20, 20, 20, 20];
|
private $useAverage = [20, 20, 20, 20, 20];
|
||||||
|
private $maxTick = 20;
|
||||||
|
private $maxUse = 0;
|
||||||
|
|
||||||
/** @var \AttachableThreadedLogger */
|
/** @var \AttachableThreadedLogger */
|
||||||
private $logger;
|
private $logger;
|
||||||
@ -591,6 +593,15 @@ class Server{
|
|||||||
* @return float
|
* @return float
|
||||||
*/
|
*/
|
||||||
public function getTicksPerSecond(){
|
public function getTicksPerSecond(){
|
||||||
|
return round($this->maxTick, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the last server TPS average measure
|
||||||
|
*
|
||||||
|
* @return float
|
||||||
|
*/
|
||||||
|
public function getTicksPerSecondAverage(){
|
||||||
return round(array_sum($this->tickAverage) / count($this->tickAverage), 2);
|
return round(array_sum($this->tickAverage) / count($this->tickAverage), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -600,6 +611,15 @@ class Server{
|
|||||||
* @return float
|
* @return float
|
||||||
*/
|
*/
|
||||||
public function getTickUsage(){
|
public function getTickUsage(){
|
||||||
|
return round($this->maxUse * 100, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the TPS usage/load average in %
|
||||||
|
*
|
||||||
|
* @return float
|
||||||
|
*/
|
||||||
|
public function getTickUsageAverage(){
|
||||||
return round((array_sum($this->useAverage) / count($this->useAverage)) * 100, 2);
|
return round((array_sum($this->useAverage) / count($this->useAverage)) * 100, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2367,6 +2387,9 @@ class Server{
|
|||||||
|
|
||||||
if(($this->tickCounter & 0b1111) === 0){
|
if(($this->tickCounter & 0b1111) === 0){
|
||||||
$this->titleTick();
|
$this->titleTick();
|
||||||
|
$this->maxTick = 20;
|
||||||
|
$this->maxUse = 0;
|
||||||
|
|
||||||
if($this->queryHandler !== null and ($this->tickCounter & 0b111111111) === 0){
|
if($this->queryHandler !== null and ($this->tickCounter & 0b111111111) === 0){
|
||||||
try{
|
try{
|
||||||
$this->queryHandler->regenerateInfo();
|
$this->queryHandler->regenerateInfo();
|
||||||
@ -2391,10 +2414,21 @@ class Server{
|
|||||||
TimingsHandler::tick();
|
TimingsHandler::tick();
|
||||||
|
|
||||||
$now = microtime(true);
|
$now = microtime(true);
|
||||||
|
$tick = min(20, 1 / max(0.001, $now - $tickTime));
|
||||||
|
$use = min(1, ($now - $tickTime) / 0.05);
|
||||||
|
|
||||||
|
if($this->maxTick > $tick){
|
||||||
|
$this->maxTick = $tick;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($this->maxUse < $use){
|
||||||
|
$this->maxUse = $use;
|
||||||
|
}
|
||||||
|
|
||||||
array_shift($this->tickAverage);
|
array_shift($this->tickAverage);
|
||||||
$this->tickAverage[] = min(20, 1 / max(0.001, $now - $tickTime));
|
$this->tickAverage[] = $tick;
|
||||||
array_shift($this->useAverage);
|
array_shift($this->useAverage);
|
||||||
$this->useAverage[] = min(1, ($now - $tickTime) / 0.05);
|
$this->useAverage[] = $use;
|
||||||
|
|
||||||
if(($this->nextTick - $tickTime) < -1){
|
if(($this->nextTick - $tickTime) < -1){
|
||||||
$this->nextTick = $tickTime;
|
$this->nextTick = $tickTime;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user