2008-11-13 7 views
12

Какой лучший метод для сравнения производительности моих различных шаблонов при использовании Template::Toolkit?Как я могу профилировать производительность шаблона в Template :: Toolkit?

Я хочу что-то, что сломает, сколько процессорного/системного времени потрачено на обработку каждого файла блока или шаблона, за исключением времени, потраченного на обработку других шаблонов внутри. Devel::DProf, например, бесполезен для этого, поскольку он просто говорит мне, сколько времени потрачено на различные внутренние методы модуля Template.

ответ

15

Получается, что Googling для template :: toolkit profiling дает лучший результат, статью от November 2005 by Randal Schwartz. Я не могу скопировать и вставить любую статью здесь из-за авторские права, но достаточно сказать, что вы просто получите his source и использовать его в качестве модуля после шаблона, например, так:

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

И вы получите выход как это делается в STDERR, когда выполняется ваш скрипт:

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

Обратите внимание, что указаны как отдельные файлы, так и отдельные файлы.

Это, ИМХО, гораздо полезнее, чем модуль CPAN Template::Timer.

Смежные вопросы