CGI-Ex-Template-XS
view release on metacpan or search on metacpan
samples/bench_template.pl view on Meta::CPAN
my $show_list = grep {$_ eq '--list'} @ARGV;
my $run_all = grep {$_ eq '--all'} @ARGV;
my @run = $run_all ? () : @ARGV;
my $str_ref;
my $filename;
### uncomment to run a specific test - otherwise all tests run
#@run = qw(07);
# ### All percents are CGI::Ex::Template::XS vs TT2 with Stash::XS
# ### (The percent that CET is faster than TT)
# Existing object by string ref #
# New object with CACHE_EXT set # #
# New object each time (undef CACHE_SIZE) # # #
# This percent is compiled in memory (repeated calls) # # # #
my $tests = { # # # # #
'01_empty' => "", # 268% # 585% # 318% # 414% # 23863.2/s #
'02_var_sma' => "[% one %]", # 225% # 563% # 465% # 466% # 19051.2/s #
'03_var_lar' => "[% one %]"x100, # 223% # 405% # 196% # 396% # 2508.9/s #
'04_set_sma' => "[% SET one = 2 %]", # 206% # 489% # 433% # 372% # 17831.8/s #
'05_set_lar' => "[% SET one = 2 %]"x100, # 88% # 252% # 68% # 259% # 1572.8/s #
samples/bench_template.pl view on Meta::CPAN
sub file_TT_cache_new {
my $out = '';
my $t = Template->new(@config2);
$t->process($filename, $swap, \$out);
return $out;
}
###----------------------------------------------------------------###
sub file_CET_new {
my $out = '';
my $t = CGI::Ex::Template::XS->new(@config1);
$t->process($filename, $swap, \$out);
return $out;
}
sub str_CET_new {
my $out = '';
my $t = CGI::Ex::Template::XS->new(@config1);
$t->process($str_ref, $swap, \$out);
return $out;
}
sub file_CET {
my $out = '';
$cet->process($filename, $swap, \$out);
return $out;
}
sub str_CET {
my $out = '';
$cet->process($str_ref, $swap, \$out);
return $out;
}
sub str_CET_swap {
my $txt = $cet->swap($str_ref, $swap);
return $txt;
}
sub file_CET_cache_new {
my $out = '';
my $t = CGI::Ex::Template::XS->new(@config2);
$t->process($filename, $swap, \$out);
return $out;
}
###----------------------------------------------------------------###
@run = sort(keys %$tests) if $#run == -1;
samples/bench_template.pl view on Meta::CPAN
print "Running test $test_name\n";
print "Test text: $sample\n";
### set the global file types
$str_ref = \$txt;
$filename = $tt_cache_dir ."/$test_name.tt";
open(my $fh, ">$filename") || die "Couldn't open $filename: $!";
print $fh $txt;
close $fh;
#debug file_CET(), str_TT();
#debug $cet->parse_tree($file);
### check out put - and also allow for caching
for (1..2) {
if (file_CET() ne str_TT()) {
debug $cet->parse_tree($str_ref);
debug file_CET(), str_TT();
die "file_CET didn't match";
}
die "file_TT didn't match " if file_TT() ne str_TT();
die "str_CET didn't match " if str_CET() ne str_TT();
# die "str_CET_swap didn't match " if str_CET_swap() ne str_TT();
die "file_CET_cache_new didn't match " if file_CET_cache_new() ne str_TT();
die "file_TT_cache_new didn't match " if file_TT_cache_new() ne str_TT();
}
next if test_taint;
###----------------------------------------------------------------###
my $r = eval { timethese (-2, {
file_TT_n => \&file_TT_new,
# str_TT_n => \&str_TT_new,
file_TT => \&file_TT,
str_TT => \&str_TT,
file_TT_c_n => \&file_TT_cache_new,
file_CT_n => \&file_CET_new,
# str_CT_n => \&str_CET_new,
file_CT => \&file_CET,
str_CT => \&str_CET,
# str_CT_sw => \&str_CET_swap,
file_CT_c_n => \&file_CET_cache_new,
}) };
if (! $r) {
debug "$@";
next;
}
eval { cmpthese $r };
my $copy = $text->{$test_name};
$copy =~ s/\#.+//;
$output .= $copy;
( run in 0.555 second using v1.01-cache-2.11-cpan-49f99fa48dc )