[Catalyst] Alternatives to Catalyst ?
Oleg Pronin
syber.rus at gmail.com
Thu Apr 29 09:06:01 GMT 2010
1) param is called often several times (in auto/end etc)
2) The question is not about params, but about accessors speed at all.
If all acessors were XSAccessor for example (catalyst makes a lot of
calls ->stack/action/dispatcher , etc internally during request), then
your overall speed would be 600/s i think)
3) The question is also in approach to programming.
Why someone writes
$c->req->...
$c->req->...
$c->req->...
If you know that $c->req is not a fast accessor why do you call it
several times?
Is it hard to write ?
my $req = $c->req;
$req->
$req->
...
Maybe it is not the bottleneck, but how many places do we have
like this that are "not a bottleneck" ? maybe the sum of all these
"mini" mistakes is the bottleneck ?
2010/4/28 Андрей П. Ковбович <akovbovich at gmail.com>:
> 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 at 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/
>
More information about the Catalyst
mailing list