Template::Timer - Rudimentary profiling for Template Toolkit
Contents
Acknowledgements
Thanks to Randal Schwartz, Bill Moseley, and to Gavin Estey for the original code.
Bugs
Please report any bugs or feature requests to "bug-template-timer at rt.cpan.org", or through the web
interface at <http://rt.cpan.org>. I will be notified, and then you'll automatically be notified of
progress on your bug as I make changes.
Copyright & License
This library is free software; you can redistribute it and/or modify it under the terms of either the GNU
Public License v3, or the Artistic License 2.0.
* http://www.gnu.org/copyleft/gpl.html
* http://www.opensource.org/licenses/artistic-license-2.0.php
perl v5.32.0 2021-01-03 Timer(3pm)
Name
Template::Timer - Rudimentary profiling for Template Toolkit
Synopsis
Template::Timer provides inline timings of the template processing througout your code. It's an
overridden version of Template::Context that wraps the "process()" and "include()" methods.
Using Template::Timer is simple.
use Template::Timer;
my %config = ( # Whatever your config is
INCLUDE_PATH => '/my/template/path',
COMPILE_EXT => '.ttc',
COMPILE_DIR => '/tmp/tt',
);
if ( $development_mode ) {
$config{ CONTEXT } = Template::Timer->new( %config );
}
my $template = Template->new( \%config );
Now when you process templates, HTML comments will get embedded in your output, which you can easily grep
for. The nesting level is also shown.
<!-- TIMER START: L1 process mainmenu/mainmenu.ttml -->
<!-- TIMER START: L2 include mainmenu/cssindex.tt -->
<!-- TIMER START: L3 process mainmenu/cssindex.tt -->
<!-- TIMER END: L3 process mainmenu/cssindex.tt (17.279 ms) -->
<!-- TIMER END: L2 include mainmenu/cssindex.tt (17.401 ms) -->
....
<!-- TIMER END: L3 process mainmenu/footer.tt (3.016 ms) -->
<!-- TIMER END: L2 include mainmenu/footer.tt (3.104 ms) -->
<!-- TIMER END: L1 process mainmenu/mainmenu.ttml (400.409 ms) -->
Note that since INCLUDE is a wrapper around PROCESS, calls to INCLUDEs will be doubled up, and slightly
longer than the PROCESS call.
Version
Version 1.00
