Hej alle
Jeg sidder med en nøddeknækker på hvilken svaret givetvis er temmeligt simpelt, men jeg kan ikke lige komme på det!
Jeg bruger meget microtime til at finde ud af, hvor lang tid det tager at afvikle diverse.
Eks. i start af kode:
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();
Og til slut:
// Debug
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "Page loaded in $time seconds\\n";
Nu er jeg så stødt ind i et lidt sjovt "problem" - på min localhost, er page loaded altid ca. 0.04 seconds, hvilket er helt fint... However, når jeg nu har lagt det online på en ny server (Xeon maskine med masser af power) viser den 0.12 -> 0.30 seconds.
Så kommer mit (newbie) spørgsmål.
Jeg bruger altid en streng ($strPrint) til alt indhold på siden der skal skrives ud til skærmen, som jeg først skriver ud som det sidste i min kode - hvis jeg microtime'r lige før jeg "echo $strPrint;", så viser den også på serveren 0.04 seconds som afviklingstid. Men hvis jeg gør det efter jeg har skrevet den store streng ud, hopper tiden altså op på 0.12 -> 0.30 seconds, hvilket den ikke gør på min localhost. Da microtime jo gerne skulle være server-tid, forstår jeg slet ikke, at en echo skulle have så meget at sige - men hvis jeg echo'er f.eks. 40kb data, kommer den altså helt op og ringe på de 0.30 seconds... (desuden ser det ud til, at antallet af mikro sekunder ryger op, jo større streng jeg skriver ud til skærmen)
Phew det var en længere smøre! Håber der er en derude som er klogere end mig, som kan give mig en logisk forklaring på dette
På forhånd mange tak!
Indlæg senest redigeret d. 11.04.2007 19:47 af Bruger #11653