Quicknavi |
|
Benchmark
Artikel bewerten:
Bitte bewerten Sie den Artikel per Klick auf einen der angezeigten Sterne:
Zurück zum Artikel!
Gerade bei Webapplikationen ist Performance extrem wichtig. Kein Besucher wartet freiwillig länger
als 10s auf eine Webseite. Um bereits bei der Entwicklung das Thema Performance nicht aus den Augen
zu verlieren stellt das Framework mit dem benchmarkTimer eine Benchmark-Komponente
zur Verfügung, mit der alle Ausführungszeiten gemessen und anschließend dargestellt
werden können. Die GUI-Schicht (Page- und Frontcontroller) unterstützen das Beurteilen der
Ausführungszeiten mit vielen Messpunkten. Beispielsweise werden die Ausführungszeiten von
Document-Controllern ohne Zutun des Entwicklers aufgenommen und im Report dargestellt.
1. Anwendung des Benchmarkers
Die Anwendung des benchmarkTimers gestaltet sich sehr einfach. Es ist lediglich folgender
Code vor und nach dem zu messenden Events einzufügen:
$T = &Singleton::getInstance('benchmarkTimer'); $T->start('MyEvent');
// // Zu messender PHP-Code //
$T->stop('MyEvent');
Zu beachten ist dabei lediglich, dass der benchmarkTimer immer singleton
instanziiert werden muss, da sonst Informationen über Teile der Messung verloren gehen können.
Es muss zudem auf den Gültigkeitsbereich von Variablen geachtet werden. Sind Messungen über
die Grenzen von Funktionen und Klassen hinweg notwendig muss sichergestellt sein, dass die Variable,
die die Referenz auf die Instanz des benchmarkTimers kein Null-Pointer ist. Hier ist es ratsam
folgenden Code zu verwenden:
$T = &Singleton::getInstance('benchmarkTimer'); $T->start('MyEvent');
// // Zu messender PHP-Code //
$T = &Singleton::getInstance('benchmarkTimer'); $T->stop('MyEvent');
Dieser Fall findet jedoch nur in Ausnahmen Anwendung.
2. Generieren eines Reports
Da das Framework im Postback-Modus arbeitet und es im Allgemeinen nur eine zentrale
Datei (zumeist index.php) gibt, ist das generieren von Reports durch ein
$T = &Singleton::getInstance('benchmarkTimer'); echo $T->createReport();
am Ende der index.php zu bewerkstelligen. Möchte der Entwickler selbst entscheiden, wann
der Report angezeigt wird um auch im Live-Betrieb ein Gefühl für die Performance der
Applikation behalten zu können kann das durch das Einfügen des Codes
if(isset($_REQUEST['benchmarkreport'])){ if($_REQUEST['benchmarkreport'] == 'true'){ $T = &Singleton::getInstance('benchmarkTimer'); echo $T->createReport(); // end if } // end if }
am Ende der index.php bewerkstelligt werden. Ein Report der aktuell angezeigten Seite hat
folgende Gestalt:
Um einen aktuellen Report anzeigen zu lassen, bitte hier klicken.
Kommentare
Bitte geben Sie Ihren Kommentar hier ein. Füllen Sie alle mit * gekennzeichneten Felder vollständig und korrekt aus. Um zum Artikel zurückzukehren klicken sie bitte hier. Zur Formatierung des Textes können folgende BBCode-ähnliche die Zeichen verwendet werden:- [f]..[/f]: fett
- [k]..[/k]: kursiv
- [u]..[/u]: unterstrichen
Hinweis: Formatierungszeichen in Name und E-Mail-Adresse werden nicht akzeptiert.
|