NAME
Template::Timer - Rudimentary profiling for Template Toolkit
VERSION
Version 1.01_01
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.
<!-- SUMMARY
L1 0.014 P page/search/display.ttml
L2 251.423 I element/framework/page-end.tt
L3 251.434 P element/framework/page-end.tt
L4 254.103 I element/framework/epilogue.tt
L5 254.114 P element/framework/epilogue.tt
L4 251.748 I element/framework/footer.tt
L5 251.759 P element/framework/footer.tt
....
L5 253.661 1.913 P element/framework/footer.tt
L4 253.880 2.144 I element/framework/footer.tt
L5 254.400 0.297 P element/framework/epilogue.tt
L4 254.651 0.560 I element/framework/epilogue.tt
L3 254.953 3.530 P element/framework/page-end.tt
L2 255.167 3.755 I element/framework/page-end.tt
L1 281.857 281.871 P page/search/display.ttml
-->
Note that since INCLUDE is a wrapper around PROCESS, calls to INCLUDEs will be doubled up, and slightly longer than the PROCESS call.
AUTHOR
Andy Lester, <andy at petdance.com>
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.
ACKNOWLEDGEMENTS
Thanks to Randal Schwartz, Bill Moseley, and to Gavin Estey for the original code.
COPYRIGHT & LICENSE
Copyright 2005-2013 Andy Lester.
This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License v2.0.
See http://www.perlfoundation.org/artistic_license_2_0 or the LICENSE.md file that comes with the ack distribution.