]> Dogcows Code - chaz/p5-CGI-Ex/blob - samples/benchmark/bench_cgix_hfif.pl
CGI::Ex 2.00
[chaz/p5-CGI-Ex] / samples / benchmark / bench_cgix_hfif.pl
1 #!/usr/bin/perl -w
2
3 # Benchmark: timing 1000 iterations of cgix_func, cgix_meth, hfif...
4 # cgix_func: 1 wallclock secs ( 1.41 usr + 0.01 sys = 1.42 CPU) @ 704.23/s (n=1000)
5 # cgix_meth: 2 wallclock secs ( 1.47 usr + 0.00 sys = 1.47 CPU) @ 680.27/s (n=1000)
6 # hfif: 8 wallclock secs ( 8.34 usr + 0.04 sys = 8.38 CPU) @ 119.33/s (n=1000)
7 # Rate hfif cgix_meth cgix_func
8 # hfif 119/s -- -82% -83%
9 # cgix_meth 680/s 470% -- -3%
10 # cgix_func 704/s 490% 4% --
11
12 use strict;
13
14 use Benchmark qw(cmpthese);
15 use HTML::FillInForm;
16 use CGI::Ex;
17
18 my $t = q{
19
20 <!-- This is another thing -->
21 <html>
22 <form name=foo>
23
24 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
25 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
26 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
27 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
28 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
29 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
30 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
31 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
32 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
33 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
34 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
35 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
36 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
37 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
38 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
39 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
40 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
41 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
42 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
43 <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
44
45 <input type=text name=foo value="wow">
46
47 <input type=password name="pass" value="">
48
49 <select name=garbage>
50 <option value=lid>Lid</option>
51 <option value=can>Can</option>
52 <option value=wheel>Wheel</option>
53 <option value=truck>Truck</option>
54 </select>
55
56 <!-- </form> -->
57
58 <textarea name=Mighty></textarea>
59
60 </form>
61
62 </html>
63 };
64
65 my $form = {
66 foo => "bar",
67 pass => "word",
68 garbage => ['can','lid'],
69 Mighty => 'ducks',
70 };
71
72
73 my $fif = HTML::FillInForm->new;
74 my $fo = CGI::Ex->new;
75 $fo->{remove_comments} = 1;
76
77 my $x = $fo->fill(scalarref => \$t,
78 fdat => $form,
79 target => 'foo',
80 );
81 #print $x;
82 #exit;
83
84 cmpthese(-2, {
85 hfif => sub {
86 my $copy = $t;
87 my $new = $fif->fill(scalarref => \$copy,
88 fdat => $form,
89 target => 'foo',
90 );
91 },
92 cgix_meth => sub {
93 my $copy = $t;
94 $fo->fill(scalarref => \$copy,
95 fdat => $form,
96 target => 'foo',
97 );
98 },
99 cgix_func => sub {
100 my $copy = $t;
101 &CGI::Ex::Fill::form_fill(\$copy, $form, 'foo');
102 },
103 });
This page took 0.041726 seconds and 4 git commands to generate.