[Rt-devel] Perfomance glitch with localization.
Ruslan U. Zakirov
cubic at acronis.ru
Tue May 11 21:12:58 EDT 2004
Hello.
Attached file show issue.
> perl -d:DProf bug_report2.pl
> dprofpp -G "Lexicon::"
%Time ExclSec CumulS #Calls sec/call Csec/c Name
79.9 3.429 8.620 32501 0.0001 0.0003 Lexicon::
4.10 0.176 0.176 1900 0.0001 0.0001 RT::Tickets::_match
3.03 0.130 0.150 29968 0.0000 0.0000 Encode::decode_utf8
1.40 0.060 0.782 5 0.0120 0.1564 main::BEGIN
1.40 0.060 0.247 12 0.0050 0.0206 RT::I18N::BEGIN
1.40 0.060 0.158 15 0.0040 0.0105 MIME::Entity::BEGIN
0.93 0.040 0.069 7 0.0057 0.0098 RT::EmailParser::BEGIN
0.93 0.040 0.139 25 0.0016 0.0055 RT::Ticket::BEGIN
0.93 0.040 0.039 6 0.0066 0.0066
DBIx::SearchBuilder::Handle::BEGIN
0.70 0.030 0.317 8 0.0037 0.0396 RT::Record::BEGIN
0.54 0.023 0.294 20 0.0011 0.0147 RT::Tickets::_parser
0.47 0.020 0.020 29968 0.0000 0.0000 utf8::decode
0.47 0.020 0.020 5 0.0040 0.0040 RT::SearchBuilder::BEGIN
0.47 0.020 0.069 2 0.0100 0.0345
DBIx::SearchBuilder::Record::Cachable::BEGIN
0.47 0.020 0.108 6 0.0033 0.0181 RT::ACL::BEGIN
80% time in Lexicon::
`drofpp -t` shows that each call to HasUnresolvedDependencies touches
Lexicon::* which do all that decode_utf8 and other calls. If I group(-G)
::BEGIN calls then I have 18% for init code => useful exec time is ~2%.
This is not rare corner case. I came to it from 'RT at glance' RT spins
around 30% in RT::Ticket::HasUnresolvedDependencies on / page(info from
Apache::DProf).
Comments? Suggestions?
Best regards. Ruslan.
-------------- next part --------------
#!/usr/bin/perl
use lib "/opt/rt3/lib";
use RT;
RT::LoadConfig;
RT::Init;
use RT::Ticket;
my $t = RT::Ticket->new( $RT::SystemUser );
$t->Load( 47279 );
foreach ( 1..10) {
print "Has deps\n" if( $t->HasUnresolvedDependencies );
print "Has no deps\n" unless( $t->HasUnresolvedDependencies );
}
More information about the Rt-devel
mailing list