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