[imp] message cache performance / parseAddressList

Michael M Slusarz slusarz at horde.org
Fri Aug 15 16:08:50 UTC 2008


Quoting Matthew Dunham <matthew.dunham at ic.ucsb.edu>:

> Folks -
>
> So I'm looking at cache performance in 4.2.1RC1. Once I've logged in  
> and my mailbox cache has been populated, I still see  
> IMP_UI_Mailbox->getFrom spending running parseAddressList every time  
> I refresh a mailbox page.
>
> It looks like the PEAR Mail_RFC822 parser is just doing a buncha  
> address validation, but it's rather expensive performance-wise Is  
> there any reason the getFrom stuff isn't cached? Can it be?

OK, playing around with Xdebug a bit, I do see that this processing  
took up a fair amount of time.  In a DIMP mailbox with 91 messages,  
for example, this processing took 73ms out of a total of 411ms  
cumulative time - almost 18% of processing time.  This is definitely  
something that would be very useful to cache.  Luckily, for our  
purposes, it is fairly trivial to implement.  Since we only use  
getFrom() when building mailbox lists, and these mailbox lists are  
built via buildMailboxArray(), and buildMailboxArray() is only called  
from these locations, we can add getfrom information to the return  
from that function.  This also makes the change easily BC for  
dimp/mimp.  I've made the changes to the latest HEAD and FW_3 versions.

michael

-- 
___________________________________
Michael Slusarz [slusarz at horde.org]



More information about the imp mailing list