Adventure,PHP,Framework,PageController,FrontController,Pattern,Objektorientierung,OO,Software,Design,Wiederverwendbarkeit,UML,Tutorial,Benchmark,ausgezeichnete Performance

Suche:    
Downloads  |  SVN!  |  Roadmap  |  Forum!  |  Bugtracking  |  Gästebuch  |  Backlinks!  |  Referenzen!  |  Sitemap  |  Impressum  
 
Deutsch | English Adventure PHP Framework  Bookmark @ Technorati Bookmark @ del.icio.us Bookmark @ Mr. Wong Bookmark @ Simpy Bookmark @ Google Bookmark @ Digg.com Adventure PHP Framework Seite 004-Benchmark drucken!

Benchmark

Artikel bewerten:
Dieser Artikel wurde noch nicht bewertet. Bewerten Sie diesen Artikel als erstes!
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:

Benchmark Report Prozess Baum
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.

Name:*
E-Mail:*

Kommentar:


Bestätigungscode:*




Powered by WebRing.