2010-12-09 15 views
2

Ich möchte Techniken kennen (Codierung, Bibliotheken, Konfigurationen) für die Dauer der Ausführung von CGI-Perl-Code in verschiedenen Stadien Messen:Wie kann ich perl CGI Performance Messungen, Benchmarks, Zeitmessungen in verschiedenen Phasen der Ausführung durchführen?

  1. Starten des Perl-Interpreter
  2. Anfang Ausführen des Perl-Code
  3. Laden in lokalen Perl .pm Module für Routinen
  4. abgeschlossen den Code ausgeführt wird

ich besonders interessiert bin in 3 und 4, das tue ich nicht Ich glaube, es gibt viel, was ich über 1) oder 2) tun kann, da ich nicht versuchen möchte, den Perl-Interpreter zu optimieren. Das einzige, was ich hier tun kann, ist, die Hardware auf eine schnellere Maschine zu aktualisieren und/oder mod_perl anstelle von classic zu verwenden CGI.

Mit 3) Laden der lokalen Perl-Module Ich möchte messen, wie lange es dauert, aber ich bin mir nicht sicher, wie das zu programmieren ist, da ich nicht weiß (oder nicht sicher bin), wie Code zuvor ausgeführt werden soll Laden Sie diese Module. Wenn ich das wüsste, würde ich die Zeit vor dem Laden aufzeichnen, dann die Zeit nach dem Laden aufzeichnen und den Unterschied berechnen.

4) sollte am einfachsten zu erreichen sein, da ich die Zeit (in einer Variablen) zu Beginn der Ausführung und dann am Ende aufzeichnen würde.

Ich habe eine Suche auf stackoverflow.com und gefunden getan:

Google Suchergebnissen enthalten:

Antwort

4

Sie können 1 reduzieren) mit FastCGI. Es wird auch die Stufen 2) und 3) reduzieren.

Zum Messen 3) können Sie BEGIN-Blöcke verwenden. Beispiel:

use Benchmark ':hireswallclock'; 
my ($t0,$t1); 
BEGIN {$t0 = Benchmark->new;} 
use DBIx::Class; 
BEGIN {$t1 = Benchmark->new;} 
print "the loading took:",timestr(timediff($t1, $t0)),"\n"; 

Entwickeln :: NYTProf wird Ihnen mit 4) helfen. Außerdem gibt es spezifische Module wie Template :: Timer, CGI :: Application :: Plugin :: DevPopup :: Timing, DBIx :: Class :: Storage :: Statistiken.

+0

+1 und akzeptierte Antwort - fast alles, was ich brauche. Danke @Alexandr Ciornii – therobyouknow

2

Zusätzlich zu FastCGI gibt es auch mod_perl und noch wichtiger PSGI. Mit PSGI können Sie Ihre App vom konkreten Webserver-Backend entkoppeln.

+0

+1 für Alternativen zu prüfen – therobyouknow

Verwandte Themen