[Catalyst] Catalyst Performance issues
Wade.Stuart at fallon.com
Wade.Stuart at fallon.com
Mon Oct 9 17:20:07 CEST 2006
Are you setup for caching the compiled templates? These should be set to
some sane value in TT options:
CACHE_SIZE
COMPILE_EXT
COMPILE_DIR
Also, you do not have EVAL_PERL set do you? I have seen huge performance
drops on setups that have that tagged.
Wade
catalyst-bounces at lists.rawmode.org wrote on 10/07/2006 09:44:17 AM:
> Hi everyone,
>
> Recently I've been facing some performance issues in my Catalyst
> application and the situation worries me a little bit.
>
> The first optimization I tried was to start prefetching everything I
> could and it indeed improved the performance quite a bit (by a factor
> of 2 or so). But it still isn't enough.
>
> I've got pages that take 3-4 seconds to render with a single user
> using the application while the database query takes something between
> 0.15-0.20s to complete. Whenever the application faces a moderate
> amount of usage, users start complaining.
>
> So, in my quest for optimization, I tried profiling my Catalyst
> application. It saddened me a little bit to find out that, apparently,
> at least 60% of the time (probably more) is spent inside Catalyst, TT
> and DBIC internal routines (a big cycle eater is Class::C3).
> Particularly, URI handling seems to take a lot of time (maybe this was
> influenced by the fact that I profiled using the builtin server).
>
> I'd like to know if there are any performance tips or really just how
> do you get acceptable performance from your Catalyst application in
> moderately complex or large pages (especially regarding pages where
> there might be hundreds or records fetched from the database).
>
> Thanks for any help and just in case it might be useful in order to
> diagnose what I could've done wrong, here's the profiling output of
> "dprofpp -R -O 50" for my application:
>
> Total Elapsed Time = 298.9974 Seconds
> User+System Time = 44.42747 Seconds
> Exclusive Times
> %Time ExclSec CumulS #Calls sec/call Csec/c Name
> 7.52 3.341 0.010 33082 0.0001 0.0000 next::method
> 7.00 3.109 38.560 86056 0.0000 0.0004 Template::Stash::XS::get
> 6.32 2.809 3.041 5163 0.0005 0.0006 DBIx::Class::
> ResultSet::_collapse_
> result
> 3.78 1.680 5.675 18010 0.0001 0.0003 URI::_generic::abs
> 3.05 1.357 1.581 63205 0.0000 0.0000 URI::_generic::authority
> 2.98 1.325 2.958 36156 0.0000 0.0001 URI::new
> 2.69 1.194 1.296 54137 0.0000 0.0000 URI::_generic::path
> 2.37 1.052 12.538 9005 0.0001 0.0014 Catalyst::uri_for
> 2.27 1.008 1.647 72169 0.0000 0.0000 URI::_scheme
> 2.16 0.959 1.247 174 0.0055 0.0072 Class::C3::
> _calculate_method_dispa
> tch_table
> 2.09 0.930 0.930 5128 0.0002 0.0002 Template::Stash::clone
> 1.87 0.833 0.939 36156 0.0000 0.0000 URI::_init
> 1.84 0.819 0.819 115481 0.0000 0.0000 DBIx::Class::
> AccessorGroup::get_si
> mple
> 1.77 0.785 0.908 9256 0.0001 0.0001 Params::Validate::_validate
> 1.69 0.751 4.116 11295 0.0001 0.0004
DBIx::Class::Row::inflate_result
> 1.54 0.686 2.718 2649 0.0003 0.0010 DateTime::new
> 1.36 0.605 0.621 250 0.0024 0.0025 Algorithm::C3::merge
> 1.24 0.550 0.853 3748 0.0001 0.0002
DBIx::Class::ResultSet::search_rs
> 1.20 0.533 4.199 32805 0.0000 0.0001 DBIx::Class::
> InflateColumn::get_co
> lumn
> 1.19 0.527 0.527 1260 0.0004 0.0004 NEXT::ELSEWHERE::ancestors
> 1.13 0.504 18.551 3 0.1679 6.1838
Template::Document::__ANON__(9e3)
> 1.08 0.482 45.518 1356 0.0004 0.0336 NEXT::AUTOLOAD
> 1.07 0.476 0.476 16836 0.0000 0.0000 Template::Stash::XS::set
> 1.04 0.460 1.743 9029 0.0001 0.0002 URI::_server::canonical
> 0.99 0.439 13.844 5 0.0878 2.7688
Template::Document::__ANON__(8d0)
> 0.94 0.416 0.416 27151 0.0000 0.0000 URI::implementor
> 0.83 0.368 0.368 46161 0.0000 0.0000 Scalar::Util::blessed
> 0.81 0.362 0.538 11724 0.0000 0.0000 DBIx::Class::Schema::source
> 0.79 0.350 0.468 35 0.0100 0.0134 Template::Parser::_parse
> 0.77 0.341 4.838 898 0.0004 0.0054
Template::Document::__ANON__(91f)
> 0.76 0.339 0.420 3645 0.0001 0.0001 DBIx::Class::
> ResultSet::_resolved_
> attrs
> 0.76 0.338 1.853 63059 0.0000 0.0000 URI::scheme
> 0.75 0.331 1.998 3532 0.0001 0.0006 DBIx::Class::
> Relationship::Base::r
> elated_resultset
> 0.74 0.328 2.325 9029 0.0000 0.0003 URI::http::canonical
> 0.73 0.326 0.326 27112 0.0000 0.0000 URI::_generic::_check_path
> 0.69 0.307 8.311 3213 0.0001 0.0026 DBIx::Class::ResultSet::next
> 0.69 0.307 42.798 1057 0.0003 0.0405 Template::Context::process
> 0.64 0.286 6.734 3 0.0955 2.2447
Template::Document::__ANON__(97f)
> 0.62 0.277 0.363 5726 0.0000 0.0001 DBIx::Class::ResultSet::new
> 0.58 0.256 0.256 27040 0.0000 0.0000 URI::clone
> 0.58 0.256 0.569 9054 0.0000 0.0001 URI::_server::host
> 0.54 0.241 0.433 4450 0.0001 0.0001 DateTime::_calc_utc_rd
> 0.52 0.233 3.289 2612 0.0001 0.0013 DateTime::Format::
> Builder::Parser:
> :generic::__ANON__(8c9)
> 0.52 0.233 0.854 4451 0.0001 0.0002 DateTime::TimeZone::new
> 0.50 0.224 0.365 9054 0.0000 0.0000 URI::_server::_port
> 0.48 0.212 0.212 9072 0.0000 0.0000 URI::_query::query
> 0.47 0.210 0.430 35011 0.0000 0.0000 DBIx::Class::
> AccessorGroup::__ANON
> __(3d5)
> 0.47 0.210 0.210 174 0.0012 0.0012 Class::C3::
> _remove_method_dispatch
>
> -Nilson Santos F. Jr.
>
> _______________________________________________
> List: Catalyst at lists.rawmode.org
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive:
http://www.mail-archive.com/[email protected]/
> Dev site: http://dev.catalyst.perl.org/
More information about the Catalyst
mailing list