2008-11-13 8 views
12

Was ist die beste Methode zum Benchmarking der Leistung meiner verschiedenen Vorlagen bei Verwendung von Template::Toolkit?Wie kann ich die Template-Leistung in Template :: Toolkit profilieren?

Ich möchte etwas, das aufschlüsseln wird, wie viel CPU-/Systemzeit für die Verarbeitung jeder Block- oder Vorlagendatei aufgewendet wird, ausgenommen die Zeit, die für die Bearbeitung anderer Vorlagen aufgewendet wurde. Devel::DProf zum Beispiel ist dafür nutzlos, da es mir einfach sagt, wie viel Zeit in den verschiedenen internen Methoden des Template-Moduls verbracht wird.

Antwort

15

Es stellt sich heraus, dass Googeln für Vorlage :: Toolkit Profiling ergibt das beste Ergebnis, ein Artikel aus November 2005 by Randal Schwartz. Ich kann einen der Artikel hier wegen des Urheberrechts nicht kopieren und einfügen, aber es genügt zu sagen, dass man einfach his source erhalten und es als Modul nach Vorlage verwenden, etwa so:

use Template; 
use My::Template::Context; 

Und Sie werden Ausganges dies wie zu STDERR, wenn Ihr Skript ausgeführt wird:

 
-- info.html at Thu Nov 13 09:33:26 2008: 
cnt clk user sys cuser csys template 
    1 0 0.06 0.00 0.00 0.00 actions.html 
    1 0 0.00 0.00 0.00 0.00 banner.html 
    1 0 0.00 0.00 0.00 0.00 common_javascript.html 
    1 0 0.01 0.00 0.00 0.00 datetime.html 
    1 0 0.01 0.00 0.00 0.00 diag.html 
    3 0 0.02 0.00 0.00 0.00 field_table 
    1 0 0.00 0.00 0.00 0.00 header.html 
    1 0 0.01 0.00 0.00 0.00 info.html 
    1 0 0.01 0.01 0.00 0.00 my_checklists.html 
    1 0 0.00 0.00 0.00 0.00 my_javascript.html 
    1 0 0.00 0.00 0.00 0.00 qualifier.html 
52 0 0.30 0.00 0.00 0.00 referral_options 
    1 0 0.01 0.00 0.00 0.00 relationship_block 
    1 0 0.00 0.00 0.00 0.00 set_bgcolor.html 
    1 0 0.00 0.00 0.00 0.00 shared_javascript.html 
    2 0 0.00 0.00 0.00 0.00 table_block 
    1 0 0.03 0.00 0.00 0.00 ticket.html 
    1 0 0.08 0.00 0.00 0.00 ticket_actions.html 
-- end 

Beachten Sie, dass Blöcke sowie separate Dateien aufgelistet sind.

Dies ist, IMHO, viel nützlicher als das CPAN-Modul Template::Timer.