[Catalyst] DProf
Jon Schutz
jon+catalyst at youramigo.com
Sat Nov 3 02:44:11 GMT 2007
Hi Octavian,
As useful as DProf is, it's giving you a global picture and not
localising the parts of your app which are chewing up the time.
Is TT really the problem? Have you seen a big difference in times
reported against View::TT->process in the stats summary (seen with debug
on) since introducing I18N?
If the TT render times are not substantially different, then your
problem lies elsewhere and you might benefit from grabbing the current
svn version of Catalyst with the new $c->profile() method, which would
allow you to narrow down which parts of your code are taking the time.
If it is TT, then I would take the approach of systematically removing
parts of the template to isolate the cause.
Have your response times changed substantially, or is it just more CPU
being used for the same response time?
--
Jon
On Fri, 2007-11-02 at 20:59 +0200, Octavian Rasnita wrote:
> Hi,
>
> I have tried to see which of the modules of my Catalyst application take so
> much time, because at certain moments the processor is occupied 99.9%, then
> goes down to 12%, then again at 99.9% and so on.
>
> I've used the module Apache::DProf in httpd.conf, and the results are below,
> but I don't know what can I do to solve the problem and to make the
> application consume less processor time.
>
> The processor of the machine is an Intel Core 2 Duo at 2.4 GHz, and the
> computer has 8 GB of RAM, and the application isn't very big. It has just
> 130 templates and 21 controller modules that have aproximately 400 KB.
>
> It worked fine until I added Catalyst::Plugin::I18N and I've translated the
> interface into 3 languages, but I don't know if this is the cause, or how
> could I solve it in other way if I still want to have the interface in more
> languages.
>
> Isn't Catalyst able to handle big applications? Or what could I be doing
> wrong?
>
> Thank you. Here is the DProf result:
>
> [root at octavian 24621]# dprofpp
> Template::Document::__ANON__ has 1 unstacked calls in outer
> Template::Context::include has 1 unstacked calls in outer
> Catalyst::__ANON__ has 1 unstacked calls in outer
> Template::Stash::XS::get has 1 unstacked calls in outer
> Garbled profile is missing some exit time stamps:
> Catalyst::__ANON__
> Template::Context::include
> Template::Stash::XS::get
> Template::Document::__ANON__
> Try rerunning dprofpp with -F.
>
> [root at octavian 24621]# dprofpp -F
> Catalyst::__ANON__ has 1 unstacked calls in outer
> APR::Table::FIRSTKEY has 1 unstacked calls in outer
> Faking 2 exit timestamp(s).
>
> Total Elapsed Time = -1.23365 Seconds
> User+System Time = 0 Seconds
> Exclusive Times
> %Time ExclSec CumulS #Calls sec/call Csec/c Name
> 0.00 22.02 57.132 478 0.0461 0.1195 Catalyst::__ANON__
> 0.00 20.27 20.287 10229 0.0020 0.0020
> Class::Accessor::Grouped::__ANON__
> 0.00 4.384 4.384 25875 0.0002 0.0002
> Catalyst::Plugin::I18N::localize
> 0.00 4.319 4.319 1431 0.0030 0.0030 Catalyst::Request::uri_with
> 0.00 1.827 33.535 166718 0.0000 0.0002 Template::Stash::XS::get
> 0.00 1.079 7.232 25875 0.0000 0.0003 Template::Document::__ANON__
> 0.00 0.798 6.918 1913 0.0004 0.0036 Template::Context::include
> 0.00 0.744 0.744 25875 0.0000 0.0000 Template::Context::localise
> 0.00 0.499 0.499 926 0.0005 0.0005
> Catalyst::Plugin::Authorization::R
> oles::check_any_user_role
> 0.00 0.245 0.245 4772 0.0001 0.0001 Path::Class::Dir::stringify
> 0.00 0.210 0.210 463 0.0005 0.0005
> Catalyst::Plugin::Authentication::
> user_exists
> 0.00 0.154 0.154 25875 0.0000 0.0000 Template::Context::delocalise
> 0.00 0.087 0.087 3291 0.0000 0.0000 Template::Iterator::get_next
> 0.00 0.083 0.083 16683 0.0000 0.0000 Catalyst::Action::__ANON__
> 0.00 0.077 0.077 2785 0.0000 0.0000 Template::Config::iterator
>
>
> Octavian
>
>
> _______________________________________________
> 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.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/
More information about the Catalyst
mailing list