Vise loadtime af en side

Tags:    php

<< < 12 > >>
Hvordan laver man en PHP-funktion, som viser, hvor lang tid det tog at indlæse f.eks. forsiden?



11 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Ok...

Som sagt, så viser den kode jeg gav hvor lang tid PHP er om at genere den (som da også er den mest brugbare?) Og altså ikke tiden der går fra at brugeren indtaster URLen i browseren og til den dukker op. Hvordan dette gøres må du ikke spørge mig om, hvis det overhovedet kan lade sig gøre.

At scriptet så ikke helt virker som jeg troede er så en anden sag. Men grunden til at det bliver vist så mærkeligt er at tallet har for mange decimaler til at blive vist korrekt. Jeg er ikke helt sikker på hvordan det tal der skal forståes men jeg tror nok at det er 1.299999..... ganget med E opløftet i -5. Dette giver selvfølgelig stadigvæk ikke et særlig læsbart resultat.

Men jeg tror dog at du med fordel blot kan bruge round (se www.php.net/round) til at afrunde tallet med.

F.eks.

Fold kodeboks ind/udKode 


Hvor koden fra før ellers er brugt.

Prøv at se om det ikke hjælper.



Det skal lige siges at ovenstående kode ikke afaik viser hvor lang tid det tager at indlæse siden, men derimod hvor lang tid det tager at generere den.



men hvor bruge PHP når man kan bruge JavaScript:

Fold kodeboks ind/udKode 




Du skal have fat i funktionen microtime (se www.php.net/microtime)

Denne funktion returnerer et unix timestamp med mikrosekunder medregnet. Hvis du er bruger af PHP5 kan du gøre således

i toppen af din side:

Fold kodeboks ind/udKode 


Og så i bunden af din side (så langt som det nu er muligt)

Fold kodeboks ind/udKode 


Bruger ud ikke PHP5 så skal du lave følgende funktion

Fold kodeboks ind/udKode 


Og så bruge denne i stedet for microtime(true), f.eks.

Fold kodeboks ind/udKode 


Håber at det hjalp, og husk at læse lidt om microtime på php.net så du ved hvad koden gør.



Jeg prøvede det med PHP5, og det virkede fint nok, men der står: "Det tog 1.2999999999985E-05 sekunder at .."

Hvilket altså vil sige, at det tog UNDER 1 sek at indlæse siden.. Kan man ikke gøre sådan, så den skriver f.eks. 0,2 sekunder?



Javel ja.. :D



Jeg mener Javascript er en være gang lort, vil til hver en tid hellere bruge php/css istedet for at bruge javascript.



Det kan ikke lade sig gøre at bruge php til at angive loadtime for en side, da det er serverside og derfor ikke ved hvornår klienten har modtaget siden.

Du skal altså bruge javascript for at finde loadtime, mens php giver den tid, som det tog at generere siden.

Du kan selvfølgelig lægge de to sammen og få en endnu mere præcis udgave af tiden der går fra browseren forsøger at hente siden til denne er modtaget. Dog vil denne stadig ikke være helt præcis.



Mads har helt ret, dog vil generingstiden som regel være den du er mest interesseret i, da du så kan se hvor effektiv din PHP kode er. Men hjalp min sidste kommentar dig?



Yes yes, den hjalp da :)



<< < 12 > >>
t