Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

Оказывается, что Googling для шаблона:: toolkit profiling дает лучший результат, статью из ноябрь 2005 г. Рэндалем Шварцем. Я не могу копировать и вставлять какую-либо статью из-за авторских прав, но достаточно сказать, что вы просто получаете его источник и используете его как модуль после шаблона, например:

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

И вы получите такой вывод в STDERR, когда запускается script:

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

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

Это IMHO, гораздо более полезный, чем модуль CPAN Template:: Timer.