Avatar billede kongfjong Nybegynder
14. februar 2006 - 17:10 Der er 12 kommentarer og
1 løsning

Loadtid på siden

Hej, meget hurtigt spg: Findes der ikke en funktion der kan fortælle mig hvor hurtigt en side loades?
Avatar billede yezbarh Nybegynder
14. februar 2006 - 17:14 #1
<?

function getmicrotime(){
  list($usec, $sec) = explode(" ",microtime());
  return ((float)$usec + (float)$sec);
}

$tid_start = getmicrotime(); // Her finder vi start tiden.

$tid = $tid_slut - $tid_start;    // Her tag vi slut tiden og trækker start tiden fra.
$tid = number_format($tid , 4 , "," , ".");

echo "Siden var $tid sekund om at loade.";

$tid_slut = getmicrotime();  // Her finder vi slut tiden.
?>
Avatar billede coderdk Praktikant
14. februar 2006 - 17:17 #2
Det kan kun foregå på klienten. Du kan dog måle hvor lang tid det tager serveren at servere siden ;)

Du kan bruge denne klasse:

    class benchmark
    {
        var $startbenchmarktime = 0;
        function benchmark()
        {
            list($usec, $sec) = explode(' ',microtime());
            $this->startbenchmarktime = ((float)$usec + (float)$sec);
        }
       
        function get()
        {
            list($usec, $sec) = explode(' ',microtime());
            $time = ((float)$usec + (float)$sec);
            return (($time - $this->startbenchmarktime) * 1000);
        }
    }

Så starter du med, øverst på siden at kalde:

$bm = new benchmark;

og sidst på siden kan du så f.eks. skrive:

echo "Siden genereret på " . round( $bm->get(), 2 ) . " millisekunder";
Avatar billede coderdk Praktikant
14. februar 2006 - 17:18 #3
Ja, så ikke lige yezbarh's svar :)
Avatar billede kongfjong Nybegynder
14. februar 2006 - 17:23 #4
Har jeg fortået det rigtigt, hvis det funktionen getmicrotime gør er, at asigne to varibaler, $usec og $sec, der får tildelt værdien for det nuværende timestamp i mikrosekunder? Men hvorfor returnerer du så den sammenlagte væærdi af de to?
Avatar billede coderdk Praktikant
14. februar 2006 - 17:25 #5
$sec er antallet af sekunder og $usec er antallet af mikrosekunder (under 1 sekund). De skal naturligvis lægges sammen, for at få det nøjagtige tal ;)
Avatar billede kongfjong Nybegynder
14. februar 2006 - 17:29 #6
Forstår ikke helt den del så:)

list($usec, $sec) = explode(" ",microtime()); den linje er jeg ikke helt med på udover at list() assigner de to varibler:)
Avatar billede coderdk Praktikant
14. februar 2006 - 17:45 #7
microtime() returnerer "tal tal", explode laver de to tal til et array, list assigner de to tal til to variable...
Avatar billede kongfjong Nybegynder
14. februar 2006 - 18:02 #8
Ah okay:) tak for hjælpen, det er vel yezbahr der skal have pointene:)
Avatar billede yezbarh Nybegynder
14. februar 2006 - 18:02 #9
Man kan vel altid deles *s*
Avatar billede yezbarh Nybegynder
14. februar 2006 - 18:03 #10
Men giv du bare coderdk points. Min var en søgning på eksperten i php kategorien "loade tid"

Og han beskrev det, så - nej tak.
Avatar billede kongfjong Nybegynder
14. februar 2006 - 18:12 #11
Hehe okay;)
Avatar billede coderdk Praktikant
14. februar 2006 - 18:58 #12
det var yezbarh der gav svar ;) hvis ikke han vil have dem, så tag dem selv :)
Avatar billede kongfjong Nybegynder
14. februar 2006 - 19:54 #13
Hehe okay;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester