[libhttp-entity-parser-perl] 10/11: add benchmark
gregor herrmann
gregoa at debian.org
Sun Oct 23 00:23:33 UTC 2016
This is an automated email from the git hooks/post-receive script.
gregoa pushed a commit to tag 0.01
in repository libhttp-entity-parser-perl.
commit fcb6fa1cf70c3eabadbd643548287fc871e3aa44
Author: Masahiro Nagano <kazeburo at gmail.com>
Date: Wed Feb 5 10:37:21 2014 +0900
add benchmark
---
eg/bench.pl | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/eg/bench.pl b/eg/bench.pl
new file mode 100644
index 0000000..e2edbde
--- /dev/null
+++ b/eg/bench.pl
@@ -0,0 +1,41 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use HTTP::Entity::Parser;
+use HTTP::Body;
+use Benchmark qw/:all/;
+
+my $content = 'xxx=hogehoge&yyy=aaaaaaaaaaaaaaaaaaaaa';
+
+my $parser = HTTP::Entity::Parser->new;
+$parser->register('application/x-www-form-urlencoded','HTTP::Entity::Parser::UrlEncoded');
+
+cmpthese(timethese(-1, {
+ 'http_entity' => sub {
+ open my $input, '<', \$content;
+ my $env = {
+ 'psgi.input' => $input,
+ 'psgix.input.buffered' => 1,
+ CONTENT_LENGTH => length($content),
+ CONTENT_TYPE => 'application/x-www-form-urlencoded',
+ };
+ $parser->parse($env);
+ },
+ 'http_body' => sub {
+ open my $input, '<', \$content;
+ my $body = HTTP::Body->new( 'application/x-www-form-urlencoded', length($content) );
+ $input->read( my $buffer, 8192);
+ $body->add($buffer);
+ $body->param;
+ }
+}));
+
+__END__
+Benchmark: running http_body, http_entity for at least 1 CPU seconds...
+ http_body: 1 wallclock secs ( 1.08 usr + 0.00 sys = 1.08 CPU) @ 36201.85/s (n=39098)
+http_entity: 1 wallclock secs ( 1.10 usr + 0.01 sys = 1.11 CPU) @ 51661.26/s (n=57344)
+ Rate http_body http_entity
+http_body 36202/s -- -30%
+http_entity 51661/s 43% --
+
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libhttp-entity-parser-perl.git
More information about the Pkg-perl-cvs-commits
mailing list