Olen nähnyt monella php:lla tehdyllä sivulla lukee: sivu luotiin 0.9 sekunnissa tai jotain vastaavaa. Mikä php funktio sopii tähän "luomisajan mittaamiseen" parhaiten?
Otat microtimellä ajan ylös sivun alussa ja lopussa. sitte loppuaika - alkuaika = latausaika.
Luomisaika lasketaan kai yleensä niin, että skriptin alussa ja lopussa katsotaan järjestelmän aika. Sitten aloitusaika vähennetään lopetusajasta. Funktio microtime palauttaa kaksiosaisen ajan, jossa alussa on luvun desimaaliosa ja sen jälkeen tulee aika sekunteina. Esim. näin: "0.35292800 1129919124".
<?php // aloitusaika $alku = explode(" ", microtime()); // sivun luominen for ($i = 0; $i < 100000; $i++) { $s = 0; for ($a = 0; $a < strlen($i); $a++) { $s += pow(substr($i, $a, 1), $a + 1); } if ($s == $i) $tulokset[] = $i; } // lopetusaika $loppu = explode(" ", microtime()); // luontiajan tulostus echo $loppu[1] - $alku[1] + $loppu[0] - $alku[0]; ?>
muokkaus: Myöhästyin kovasti, kun innostuin tekemään esimerkin.
Kiitos kummallekkin, sain toimimaan.
Antti Laaksonen kirjoitti:
Luomisaika lasketaan kai yleensä niin, että skriptin alussa ja lopussa katsotaan järjestelmän aika. Sitten aloitusaika vähennetään lopetusajasta. Funktio microtime palauttaa kaksiosaisen ajan, jossa alussa on luvun desimaaliosa ja sen jälkeen tulee aika sekunteina. Esim. näin: "0.35292800 1129919124".
Eikö php:ssä ole funktiota, joka palauttaa unix timestampin ?
_Pete_ kirjoitti:
Eikö php:ssä ole funktiota, joka palauttaa unix timestampin ?
On toki, time(). Sivujen pyöräytyksessä vaan ei tuo sekunnin tarkkuus riitä lähimainkaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.