---
name: "Template::Timer"
section: "3pm"
platform: "linux"
package: "libtemplate-timer-perl"
version: "1.00-2.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Template::Timer"
---

# Template::Timer(3pm)

Rudimentary profiling for Template Toolkit

## NAME

Template::Timer - Rudimentary profiling for Template Toolkit

## VERSION

Version 1.00

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

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

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