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.