Autor Zpráva
Seki
Profil
Potřebuju na svém webu změřit, jak dlouho načítá, proto jsem si napsal jednoduchou funkci a výsledek chci obdržet v milisekundách. Bohužel si vůbec nejsem jistý tím, co jsem napsal a byl bych rád, kdyby se na to někdo podíval....

<?php
  //stopování
  function doba ($sta, $end)
  {
    $start = explode (".", $sta);
    $konec = explode (".", $end);
    
    $sekundy = ($konec[0] - $start[0])*1000;
    $mikro = ($konec[1] - $start[1])/1000;
    
    $return = $sekundy + $mikro;
    return $return;    
  }
  
//test funkce
$start = microTime (TRUE);
for ($i=0; $i<=1000000; $i++){ }
$konec = microTime (TRUE);

echo doba ($start, $konec);
?>


Díky za pomoc
Majkl578
Profil
Nechápu smysl toho kódu (konkrétně té funkce). Proč nepoužiješ jen toto:
echo round(($end - $start) * 1000, 2);
Alebo
Profil *
<?php
function getMicroTime() {
    list($usec, $sec) = explode(" ",microtime());
    return ((float)$usec + (float)$sec);
}

$Start = getMicroTime();

function timerFetch($Start){
    $End = GetMicroTime();
    print 'Completion time: '.($End - $Start).' second(s)'; 
}
?>
Majkl578
Profil
[#3] Alebo:
K čemu? Co jsem uvedl stačí. To, co provádíš funkcí getMicroTime, se dělalo v době PHP 4 a náhradou je právě microtime(TRUE). Neraď tu laskavě nesmysly.
Radek9
Profil
Alebo:
Myslím si, že už jen málokdo dnes dělá s nižší verzí PHP než 5.0. Takže se podle mě můžeme spolehnout na to, že nám microTime při předání true vrátí float.
ShiraNai7
Profil
Seki, Alebo:

$start = microtime(true);

// nejaky kod..

echo 'Cas: '.round((microtime(true)-$start)*1000, 2).'ms';
Majkl578
Profil
ShiraNai7:
Uvedený kód je stejný jako ten můj v [#2]. Má to nějaký skrytý záměr?
Seki
Profil
díky všem...sám nevim, co jsem to vymyslel za podivný script :D
ShiraNai7
Profil
Majkl578:
Uvedený kód je stejný jako ten můj v [#2]. Má to nějaký skrytý záměr?

Nikde ve tvém skriptu nevidím definici počáteční proměnné ani volání microtime(true). Uvedený kód není v žádném případě stejný. Mám přeházet pořadí operandů, aby tě to tolik neiritovalo?
Radek9
Profil
ShiraNai7:
Nikde ve tvém skriptu nevidím definici počáteční proměnné ani volání microtime(true).
Tipuji, že Majkl578 vycházel z kódu v [#1], tzn., že je jasné, co v proměnných $start a $end bude.
ShiraNai7
Profil
Radek9, Majkl578:
Moje chyba. Nescrolloval jsem dolů v poli s kódem a volání microtime tak neviděl. Pár šipek by bylo možná více intuitivní než hromada zelených teček.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: