Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Ladezeit berechnen und ausgeben [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Ladezeit berechnen und ausgeben


 
der_meier_hans
20-06-2008, 11:41 
 
Hallo!

Ich möchte gerne die Ladezeit meiner Seiten im Footer.tpl ausgeben. Da ich mit Smarty arbeite scheint mir das etwas problematisch zu werden.

Also, in miner Header.tpl rufe ich folgende Smarty Funktion auf



function smarty_modifier_load_head()
{

$startzeit = explode(" ", microtime());
$startzeit = $startzeit[0]+$startzeit[1];
return $startzeit;


}
$tpl->register_function('load', 'smarty_modifier_load_head');


und im Footer diese:

function smarty_modifier_load_footer()
{


$endzeit=explode(" ", microtime());

$endzeit=$endzeit[0]+$endzeit[1];
$startzeit = smarty_modifier_load_head();


echo date("d.m.Y"); echo", "; echo date("H:i"); echo" Uhr, ".round($endzeit - $startzeit,4)." Sekunden";

$endzeit = "";


}
$tpl->register_function('load_ende', 'smarty_modifier_load_footer');

Die Ladezeit beträgt immer 0. Obwohl ich den ganzen body Bereich
prüfe.

Vielleicht kann ich das direkt mit Smarty machen?

 
onemorenerd
20-06-2008, 11:51 
 
Funktionen werden nicht bei der Deklaration sondern erst beim Aufruf ausgeführt. Diese Zeilen
$endzeit=explode(" ", microtime());
$endzeit=$endzeit[0]+$endzeit[1];
$startzeit = smarty_modifier_load_head();
entsprechen daher folgendem Ablauf:
$endzeit=explode(" ", microtime());
$endzeit=$endzeit[0]+$endzeit[1];
$startzeit = explode(" ", microtime());
$startzeit = $startzeit[0]+$startzeit[1];
Wie man sieht, berechnest du die Startzeit sogar erst nach der Endzeit. Da kann so ja nichts werden!

Du musst die Startzeit zu Beginn des Scripts ermitteln, in einer Variablen speichern und am Ende von der aktuellen Zeit abziehen.

 
H2O
20-06-2008, 13:59 
 
$startzeit = explode(" ", microtime());
$startzeit = $startzeit[0]+$startzeit[1];
// entspricht
$startzeit = microtime(true);


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:06 Uhr.