22declare(strict_types=1);
26use
function array_fill;
27use
function array_sum;
32 private array $history;
33 private int $nextHistoryIndex = 0;
34 private int $bytesSinceLastRotation = 0;
35 private int $totalBytes = 0;
39 $this->history = array_fill(0, $historySize, 0);
42 public function add(
int $bytes) : void{
43 $this->totalBytes += $bytes;
44 $this->bytesSinceLastRotation += $bytes;
47 public function getTotalBytes() : int{ return $this->totalBytes; }
55 $this->history[$this->nextHistoryIndex] = $this->bytesSinceLastRotation;
56 $this->bytesSinceLastRotation = 0;
57 $this->nextHistoryIndex = ($this->nextHistoryIndex + 1) % count($this->history);
64 return array_sum($this->history) / count($this->history);
67 public function resetHistory() : void{
68 $this->history = array_fill(0, count($this->history), 0);
__construct(int $historySize)