[Catalyst] Catalyst Performance issues

Nilson Santos Figueiredo Junior acid06 at gmail.com
Sat Oct 7 18:38:10 CEST 2006


On 10/7/06, Matt S Trout <dbix-class at trout.me.uk> wrote:
> The Class::C3::* methods you're seeing are startup overhead only; unless
> you're messing with class hierarchies at run-time that's a one-off hit.

Right. But next::method calls also seem to weight in a "little bit".
But I really have no idea on how (and if) it could be improved.

> I think maybe uri_for isn't as efficient as it could be; you might find you're
> better off doing uri_for once to get a URI object and then just appending ids
> to the end.

Considering that at least 23% of the time is being spent inside URI::*
methods I think I'll take a look at this. URI handling being so
expensive really surprised me.

> The killer seems to be the Template::Stash::XS::get time; assuming it's
> basically a table that you're generating, perhaps adding a static routine to
> your code that chucks out the HTML for that in an efficient perl fashion might
> help?

I don't know if it would help that much, since it means only 7%. Its
cumulative time is so high because it accounts for all the
next::method lookups and DBIC methods, etc. But avoiding using the
stash would only provide a maximum speedup of 7%.

Oh well, maybe if I focus on improving both URI and stash usage I can
make things run about 20% faster or so.

Maybe it'd be nice if someone came up with a faster drop-in
replacement for TT... any volunteers? ;-)

-Nilson Santos F. Jr.



More information about the Catalyst mailing list