public function saveLatency() { $lastLatency = $this->distributedCache->get('core/latency'); $max = 20; $change = false; foreach (array('frontend', 'backend', 'cache', 'session') as $key) { if (!isset($this->latency[$key]) || !$this->latency[$key]) { continue; } $this->latency[$key] = array_sum($this->latency[$key]) / count($this->latency[$key]); $lastLatency[$key] = (array) @$lastLatency[$key] ?: array(); array_unshift($lastLatency[$key], @$this->latency[$key]); if ($max < count($lastLatency[$key])) { array_splice($lastLatency[$key], $max); } $change = true; } if ($change) { $this->latency = array(); $this->distributedCache->set('core/latency', $lastLatency); } }