Ostatnio pisząc silnik swojego CMS’a potrzebowałem zmierzyć czas ładowania poszczególnych części strony.
Z racji tego, że cały skrypt nie jest długi a jest dość przydatny postanowiłem się nim podzielić.
<?php
class TimeLoad
{
private $start, $time_array, $status;
function __construct($status)
{
$this->start = microtime(true);
$this->status = $status;
}
function __destruct()
{
if($this->status == true)
{
foreach ($this->time_array as $name => $time)
{
echo $name.' @ '.$time.'<br />';
}
}
}
function get($name, $round = 3)
{
$this->time_array[$name] = round(microtime(true) - $this->start,$round);
}
}
Sposób użycia:
<?php
$tl = new TimeLoad(true); // ture jeśli ma pokazać informacje o czasie ładowania, false jeśli ma nie pokazywać tej informacji.
// 1 część strony.
$tl->get('Czas ładowania po 1 części'); // zapisujemy czas ładowania po 1 części strony z zaokrągleniem do 3 miejsc po przecinku.
// 2 część strony.
$tl->get('Czas ładowania po 2 części', 2); // zapisujemy czas ładowania po 2 części strony z zaokrągleniem do 2 miejsc po przecinku.
// 3 część strony.
$tl->get('Końcowy czas', 5); // zapisujemy końcowy czas ładowania strony z zaokrągleniem do 5 miejsc po przecinku.
Oczywiście do podanych czasów należy też wziąć poprawkę na samo ich obliczanie co też chwilę zajmuje
Miłej optymalizacji!













