[Catalyst] Performance
Jim Spath
jspath at pangeamedia.com
Thu Mar 8 16:34:56 GMT 2007
Perrin Harkins wrote:
> On 3/8/07, Jim Spath <jspath at pangeamedia.com> wrote:
>> On our development machine I ran myapp_server.pl through Devel::DProf,
>> hit it with a bunch of requests using ab, and got the following output:
>
> Where's DBI? Did you sort this by wall time (-r flag)?
We are using Catalyst::Plugin::Cache::Memcached minimize hits to the
database. That is why you don't see DBI in there, but do see
Cache::Memcached.
Here is the output when I sort by wall time:
%Time ExclSec CumulS #Calls sec/call Csec/c Name
43.3 36.91 36.949 842 0.0438 0.0439
Catalyst::Engine::HTTP::_socket_data
8.64 7.346 89.845 1 7.3462 89.845 Catalyst::Engine::HTTP::run
7.73 6.572 6.669 15156 0.0004 0.0004 Cache::Memcached::__ANON__
2.71 2.308 2.308 21146 0.0001 0.0001 NEXT::ELSEWHERE::ancestors
2.58 2.197 8.867 5052 0.0004 0.0018 Cache::Memcached::_load_multi
2.39 2.036 2.036 282912 0.0000 0.0000
I18N::LangTags::is_language_tag
2.15 1.833 5.302 23695 0.0001 0.0002 NEXT::AUTOLOAD
1.76 1.501 1.703 253442 0.0000 0.0000 URI::_generic::authority
1.59 1.352 11.301 35365 0.0000 0.0003 Locale::Maketext::get_handle
1.55 1.318 1.832 70728 0.0000 0.0000
I18N::LangTags::super_languages
1.52 1.293 5.466 36207 0.0000 0.0002
I18N::LangTags::implicate_supers
1.49 1.267 31.495 6736 0.0002 0.0047 Template::Document::__ANON__
1.35 1.145 7.709 35365 0.0000 0.0002
Locale::Maketext::_langtag_munging
1.25 1.060 1.114 223130 0.0000 0.0000 URI::_generic::path
1.16 0.989 1.507 284605 0.0000 0.0000 URI::_scheme
>> Lastly, Template seems to be taking up around 6%. I suppose I could try
>> caching template output, but that will take some doing, as every page on
>> our site can vary per user.
>
> You can try my Template::Plugin::Cache module if you like. It caches
> the output of included templates so you can cache parts of a page
> instead of all of it. I have a patch from Peter Karman that makes it
> play nicely with Catalyst's cache plugins. There are also some things
> you can do to improve TT performance, which have been discussed before
> here and on the TT list.
>
> - Perrin
Yeah, we could definitely divide up our templates a bit better so that
we can utilize template caching on the static portions.
Thanks for the quick feedback Perrin!
Jim
More information about the Catalyst
mailing list