Autor Zpráva
llook
Profil
Mám nějaký SQL dotaz a chci změřit, jak dlouho se provádí:
$time1 = microtime(true);

mysql_query($query);
echo microtime(true) - $time1;

Jenže čas od času to vypíše zápornou hodnotu. Na různých počítačích, s různými verzemi PHP.
Nesetkal jste se s tím někdo? Lze měřením funkcí microtime věřit?
gaminn
Profil *
Microtime vrací string, musíš ten řetězec ještě rozdělit, abys získal počet sekund a ten zbytek, který tě zajímá.
gaminn
Profil *
Pardon, ve verzi 5.0 došlo k úpravě, takže to takhle teď taky funguje... tak nic
thingwath
Profil
Podíval bych se do zdrojáků, jak je to implementované. Takhle je to dost divný. Myslím, že je lepší spolehnout se na údaje databáze, ale nevím jak je z ní dostat ;-)
WanTo
Profil
thingwath
Pokud vím, tak čas provádění dotazu vypisuje PHPMyAdmin, takže to nějak jít musí.
gaminn
Profil *
Pokud používám phpMyAdmin, tak ten mi vždy na všech serverech ukazoval správné hodnoty (tj. nevzpomínám si, že by tam byly hodnoty záporné) - takže se stačí jen mrknout, jak ten čas získávají (řekl bych ale, že to bude stejně jako tady - tedy přes funkci microtime()).
WanTo
Profil
Jdu se na to podívat, možná i něco najdu.
WanTo
Profil
Toto je kód z PHP adminu, který má na starosti vypočítání doby provádění dotazu:


list($usec, $sec) = explode(' ',microtime());
$querytime_before = ((float)$usec + (float)$sec);

// tady se provádí dotaz

list($usec, $sec) = explode(' ',microtime());
$querytime_after = ((float)$usec + (float)$sec);

// v querytime je uložená doba trvání
$GLOBALS['querytime'] = $querytime_after - $querytime_before;



Grep je mocný nástroj :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0