[imp] Re: [horde] horde/imp migration problems, cpu bound on solaris (fwd)

Vasilios Hoffman vhoffman01 at wesleyan.edu
Thu Apr 10 18:18:01 PDT 2003


I looked at that just now and came to the same conclusion!

The old imp had no folders setting, it was basically the root of your home
directory.  I kept that for backwards compatability.

Me, being an admin, had a huge list of folders and that was dogging
things.  However, it used to be just as slow when I tested it on other
servers (I set this up on 3 different machines) where my home directory
was basically empty.  For example, before phpa the login page still took
over a second to load and that had no imap components.

So, it looks like the phpa accelerator made a huge difference (login page
is almost instantaneous now).

As for mailbox.php, changing 'folders' to an empty directory cuts
mailbox.php to ~1.5 seconds on average.

That's still slower than I would like but *much* better.  So phpa made the
difference, but I couldn't tell because imap was also killing me for my
account specifically.  I'm going to look at other ways to speed it up.
imapproxy, btw, adds a second for some reason making it ~2.5 seconds on
average.  goodbye imapproxy :)

right now I get:

Top of mailbox.php: 0.000136971473694, line 16
  end of function definitions: 0.000298023223877, line 85
  end require_once: 0.564681053162, line 108
  end checkAuthentication(): 1.25042200089,line 117
  initialize identities: 1.25144398212, line 159
  about to run through the action handlers: 1.25187897682, line 166
  done running through the action handlers: 1.25209105015, line 384
  begin IMP::flistSelect: 1.25223398209, line 390
  end IMP::flistSelect: 1.26253604889, line 394
  begin some inbox sorting: 1.26269495487, line 399
  end sorting: 1.26987802982, line 447
  end page logic: 1.27013897896, line 563
  end some other stuff: 1.28691506386, line 600
  done with requires of .inc: 1.34607005119, line 624
  about to build array of message info and sort order: 1.34637701511, line 628
  about to display message information: 1.37002897263, line 681
  now processing footer: 1.39535903931, line 910
  storing prefs: 1.45570099354, line 934
End of mailbox.php 1.45892906189, line 943

so the first set of requires takes .5 seconds:

$timestamp = getmicrotime() - $script_start;
fputs($profile,"  end of function definitions: $timestamp, line 85\n");
fflush($profile);

$set = false;
if (isset($new_lang)) {
    $language = $new_lang;
    $set = true;
}

define('IMP_BASE', dirname(__FILE__));
require_once IMP_BASE . '/lib/base.php';
require_once IMP_BASE . '/lib/Message.php';
require_once HORDE_BASE . '/lib/MIME.php';
require_once HORDE_BASE . '/lib/MIME/Part.php';
require_once HORDE_BASE . '/lib/MIME/Viewer.php';
require_once HORDE_BASE . '/config/mime_drivers.php';
require_once HORDE_BASE . '/config/mime_mapping.php';
require_once HORDE_BASE . '/config/html.php';
require_once IMP_BASE . '/config/html.php';
require_once IMP_BASE . '/config/mime_drivers.php';
require_once IMP_BASE . '/lib/Identity/IMP.php';

$timestamp = getmicrotime() - $script_start;
fputs($profile,"  end require_once: $timestamp, line 108\n");
fflush($profile);


and the checkAuthentication() takes another .5 or so:

$timestamp = getmicrotime() - $script_start;
fputs($profile,"  end require_once: $timestamp, line 108\n");
fflush($profile);

/* Initialize $actionID to a resonable value if it hasn't already been
set. */
$actionID = Horde::getFormData('actionID');

IMP::checkAuthentication();

$timestamp = getmicrotime() - $script_start;
fputs($profile,"  end checkAuthentication(): $timestamp,line 117\n");
fflush($profile);

So, I'm going to guess that the checkAuthentication is probably
imap-related, but the require_once statments should be faster imho.
perhaps the phpa accelerator cache is missing them, or something... I'll
look into this.  If I can shave another .5 seconds off, I'll be happy and
ready to test it again.

-V

On Thu, 10 Apr 2003, Chuck Hagenbuch wrote:

> Quoting Vasilios Hoffman <vhoffman01 at wesleyan.edu>:
>
> > The 2 big, bad guys are IMP::flistSelect done here (with my code stuck
> > in, ~2.6 seconds):
>
> How many folders do you have? What IMAP server? What is 'folders' set to in
> imp/config/servers.php?
>
> -chuck
>
> --
> Charles Hagenbuch, <chuck at horde.org>
> "... It is not more light we need, but more warmth! We die of cold, not of
> darkness. It is not the night that kills, but the frost." - Miguel de
> Unamuno
>
> --
> IMP mailing list
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: imp-unsubscribe at lists.horde.org
>



More information about the imp mailing list