I was curious about what the big deal is raised, so spent a short test.

*** Mojo *** (Alternative to Catalyst)
timethese(-1, {
    param   => sub { $tx->req->param('lang') },
    params  => sub { $tx->req->params->param('lang') },
});

Benchmark: running param, params for at least 1 CPU seconds...
     param:  1 wallclock secs ( 1.07 usr +  0.00 sys =  1.07 CPU) @
13397.20/s (n=14335)
    params:  1 wallclock secs ( 1.08 usr +  0.00 sys =  1.08 CPU) @
8295.37/s (n=8959)

*** Cat ***
timethese(-1, {
    param  => sub { $c->req->param('lang') },
    params => sub { $c->req->params->{'lang'} },
});

Benchmark: running param, params for at least 1 CPU seconds...
     param:  1 wallclock secs ( 1.06 usr +  0.01 sys =  1.07 CPU) @
30918.69/s (n=33083)
    params:  1 wallclock secs ( 1.07 usr +  0.01 sys =  1.08 CPU) @
79643.52/s (n=86015)

My Сat app can handle about 400req/s, at the same time accessor's
access time is about  80K req/s, so if we imagine that we have not
made a single call to $req->param, in that case app will handle
402req/s. Show me the idiot who will try to optimize all the code for
such trifles?

_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to