Bir araya getirdiğim işlevi paylaşacağımı düşündüm. Umarım size zaman kazandırabilir.
Başlangıçta metin tabanlı bir komut dosyasının zamanlamasını izlemek için kullanıldığından çıktı metin biçimindedir. Ancak isterseniz HTML olarak kolayca değiştirebilirsiniz.
Komut dosyasının başlangıcından bu yana ve her adımda ne kadar zaman harcadığınızı sizin için tüm hesaplamaları yapacaktır. Tüm çıktıları 3 ondalık hassasiyetle biçimlendirir. (Milisaniyeye kadar.)
Komut dosyanızın üstüne kopyaladıktan sonra, tek yapmanız gereken recordTime işlev çağrılarını zamanlamak istediğiniz her parçadan sonra koymaktır.
Bunu komut dosyanızın üstüne kopyalayın:
$tRecordStart = microtime(true);
header("Content-Type: text/plain");
recordTime("Start");
function recordTime ($sName) {
global $tRecordStart;
static $tStartQ;
$tS = microtime(true);
$tElapsedSecs = $tS - $tRecordStart;
$tElapsedSecsQ = $tS - $tStartQ;
$sElapsedSecs = str_pad(number_format($tElapsedSecs, 3), 10, " ", STR_PAD_LEFT);
$sElapsedSecsQ = number_format($tElapsedSecsQ, 3);
echo "//".$sElapsedSecs." - ".$sName;
if (!empty($tStartQ)) echo " In ".$sElapsedSecsQ."s";
echo "\n";
$tStartQ = $tS;
}
Geçen zamanı izlemek için yapmanız gerekenler:
recordTime("What We Just Did")
Örneğin:
recordTime("Something Else")
//Do really long operation.
recordTime("Really Long Operation")
//Do a short operation.
recordTime("A Short Operation")
//In a while loop.
for ($i = 0; $i < 300; $i ++) {
recordTime("Loop Cycle ".$i)
}
Bunun gibi çıktılar verir:
// 0.000 - Start
// 0.001 - Something Else In 0.001s
// 10.779 - Really Long Operation In 10.778s
// 11.986 - A Short Operation In 1.207s
// 11.987 - Loop Cycle 0 In 0.001s
// 11.987 - Loop Cycle 1 In 0.000s
...
// 12.007 - Loop Cycle 299 In 0.000s
Umarım bu birine yardımcı olur!