HTML-Template
view release on metacpan or search on metacpan
scripts/time_trial.pl view on Meta::CPAN
# this is a little script I use to test the timing behavior of various
# options in HTML::Template;;
# an array of template files to test against and params to fill in
my %templates = (
simple => ['templates/simple.tmpl', {}],
include => ['templates/include.tmpl'],
medium => [
'templates/medium.tmpl',
{
'ALERT' => 'I am alert.',
'COMPANY_NAME' => "MY NAME IS",
'COMPANY_ID' => "10001",
'OFFICE_ID' => "10103214",
'NAME' => 'SAM I AM',
'ADDRESS' => '101011 North Something Something',
'CITY' => 'NEW York',
'STATE' => 'NEw York',
'ZIP' => '10014',
'PHONE' => '212-929-4315',
'PHONE2' => '',
'SUBCATEGORIES' => 'kfldjaldsf',
'DESCRIPTION' =>
"dsa;kljkldasfjkldsajflkjdsfklfjdsgkfld\nalskdjklajsdlkajfdlkjsfd\n\talksjdklajsfdkljdsf\ndsa;klfjdskfj",
'WEBSITE' => 'http://www.assforyou.com/',
'INTRANET_URL' => 'http://www.something.com',
'REMOVE_BUTTON' => "<INPUT TYPE=SUBMIT NAME=command VALUE=\"Remove Office\">",
'COMPANY_ADMIN_AREA' =>
"<A HREF=administrator.cgi?office_id=office_id&command=manage>Manage Office Administrators</A>",
'CASESTUDIES_LIST' =>
"adsfkljdskldszfgfdfdsgdsfgfdshghdmfldkgjfhdskjfhdskjhfkhdsakgagsfjhbvdsaj hsgbf jhfg sajfjdsag ffasfj hfkjhsdkjhdsakjfhkj kjhdsfkjhdskfjhdskjfkjsda kjjsafdkjhds kjds fkj skjh fdskjhfkj kj kjhf kjh sfkjhadsfkj hadskjfhkjhs ajhdsfkj akj ...
'NUMBER_OF_CONTACTS' => "aksfjdkldsajfkljds",
'COUNTRY_SELECTOR' => "klajslkjdsafkljds",
'LOGO_LINK' => "dsfpkjdsfkgljdsfkglj",
'PHOTO_LINK' => "lsadfjlkfjdsgkljhfgklhasgh",
}
],
long_loop => ['templates/long_loops.tmpl', {}],
loop_if => ['templates/loop-if.tmpl', {LOOP_ONE => [{VAR => 'foo'}]}]
);
# a hash of option hashes to test
my %options = (
'no cache' => {},
#'simple cache' => { cache => 1 },
# 'shared cache' => { shared_cache => 1, cache => 1 },
'file cache' => {
file_cache => 1,
file_cache_dir => './file_cache'
},
# 'simple cache, no_includes' => { cache => 1, no_includes => 1},
# 'blind cache' => { blind_cache => 1},
);
# number of times over each template
my $n = 100;
#open(OUT, ">test.out");
foreach my $template (keys %templates) {
print "\nTESTING : $template : $n iterations\n\n";
foreach my $option (keys %options) {
my $start_time = (times)[0];
for (my $x = 0 ; $x < $n ; $x++) {
my $template = HTML::Template->new(
filename => $templates{$template}->[0],
%{$options{$option}}
);
foreach my $name (keys %{$templates{$template}->[1]}) {
$template->param($name => $templates{$template}->[1]->{$name});
}
my $result = $template->output;
#print OUT $result;
#$template->output(print_to => *OUT);
}
my $end_time = (times)[0];
print "$option : average iteration in " . (($end_time - $start_time) / $n) . " seconds\n";
}
}
( run in 0.688 second using v1.01-cache-2.11-cpan-71847e10f99 )