2008-11-13 29 views
12

¿Cuál es el mejor método para comparar el rendimiento de mis varias plantillas al usar Template::Toolkit?¿Cómo puedo perfilar el rendimiento de la plantilla en Template :: Toolkit?

Quiero algo que descomponga cuánto tiempo de CPU/sistema se pasa procesando cada bloque o archivo de plantilla, excluyendo el tiempo empleado en procesar otras plantillas. Devel::DProf, por ejemplo, es inútil para esto, ya que simplemente me dice cuánto tiempo se usa en los diversos métodos internos del módulo de Plantilla.

Respuesta

15

Resulta que Google para template :: toolkit profiling produce el mejor resultado, un artículo de November 2005 by Randal Schwartz. No puedo copiar y pegar cualquier del artículo aquí debido a los derechos de autor, pero basta con decir que uno se sienta his source y utilizarlo como un módulo después de la plantilla, así:

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

y obtendrá la salida así para STDERR cuando se ejecuta su secuencia de comandos:

 
-- 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 

Tenga en cuenta que los bloques, así como los archivos separados se enumeran.

Esto es, en mi humilde opinión, mucho más útil que el módulo de CPAN Template::Timer.

Cuestiones relacionadas