$name, "start" => gettimeofday(true), "mintapms" => max(0, (int)$mintapms), "minincrtapms" => max(0, (int)$minincrtap), ]; } function timer_get_elapsed_ms($t) { return (gettimeofday(true) - $t['start']) * 1000; } function timer_get_incremental_ms($t) { return (gettimeofday(true) - @$t['ptap'] ?: $t['start']) * 1000; } function timer_tag(&$t, $message = "step", $ret = NULL) { $ms = timer_get_elapsed_ms($t); $log = $t['mintapms'] == 0 && $t['minincrtapms'] == 0; $log = $log || $t['mintapms'] && $ms >= $t['mintapms']; $log = $log || $t['minincrtapms'] && timer_get_incremental_ms($t) >= $t['minincrtapms']; if ($log) error_log(sprintf("%s: %s: %0.1fms%s", $t['prefix'], $message, $ms, isset($t['ptap']) ? sprintf(" (+%0.1fms)", $ms - $t['ptap']) : "")); $t['ptap'] = $ms; return $ret; } ?>