[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