Ambrosia
view release on metacpan or search on metacpan
benchmark/Ambrosia/CommonGatewayInterface.b view on Meta::CPAN
#!/usr/bin/perl -w
use warnings;
use strict;
use lib qw(lib t);
use Benchmark;
use Data::Dumper;
BEGIN
{
use Ambrosia::Context;
instance Ambrosia::Context({
engine_name => 'CGI',
engine_params => {
header_params => {
Pragma => 'no-cache',
Cache_Control => 'no-cache, must-revalidate, no-store',
},
},
proxy => '',
});
}
sub setEnv
{
my $action = shift;
my $query_string = shift;
$ENV{REQUEST_METHOD} = 'GET';
#generation
$ENV{DOCUMENT_ROOT} = '/opt/debug.kuritsyn/web/cgi-coll/GOOGLE_COUPON/GoogleCoupon/htdocs';
$ENV{HTTP_HOST} = 'vh-test-devbillingcoll.domain:8033';
$ENV{SCRIPT_FILENAME} = '/opt/debug.kuritsyn/web/cgi-coll/GOOGLE_COUPON/GoogleCoupon/htdocs/GoogleCoupon';
$ENV{SERVER_NAME} = 'vh-test-devbillingcoll.domain';
$ENV{SERVER_PORT} = '8033';
$ENV{SERVER_ADDR} = '192.168.14.223';
$ENV{SCRIPT_NAME} = '/GoogleCoupon';
#parametrize
$ENV{HTTP_COOKIE} = 'authorize_GOOGLECOUPON=%5EStorable%7C%7C%7Chex%7CCompress%3A%3AZlib%5E789c6365179472cc4d2aca2fce4cb4b20a2dc9cc29b6b272cecf2b49cccc4b2d62626060606201910c2ccc4082118964e2e23534f24c0ad24bf7b2284f2e48060a711424161797e717a570311b1...
$ENV{PATH_INFO} = $action;
$ENV{QUERY_STRING} = $query_string || '';
$ENV{REQUEST_URI} = $ENV{SCRIPT_NAME} . $ENV{PATH_INFO} . ($ENV{QUERY_STRING} ? '?'.$ENV{QUERY_STRING} : '');
}
sub run
{
my ($action, $query_string) = @_;
setEnv($action, $query_string);
Context->action;
Context->param('start');
Context->param('count');
}
##############################################################################################
my $NUM_ITER = 100_000;
timethese($NUM_ITER, {
'/json/rule/x' => sub {
run('/json/rule/10', '')
},
'/xml/rule/x' => sub {
run('/xml/rule/10', '')
},
'/json/rule' => sub {
run('/json/rule', 'start=0&count=25')
},
'/xml/rule' => sub {
run('/xml/rule', 'start=0&count=25')
},
'/json/coupon' => sub {
run('/json/coupon', 'start=0&count=25')
},
'/xml/coupon' => sub {
run('/xml/coupon', 'start=0&count=25')
},
});
( run in 2.179 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )