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

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

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

1 Ответ

15 голосов
/ 13 ноября 2008

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

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 .

...