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.


Thanks Michael - nice fix.

To open the worm can just a smidge more, Xdebug shows a similar (albeit smaller) performance hit in IMP_Headers->getOb when viewing individual messages. It would be great if the To/CC/Bcc addresses displayed by message.php were run through the RFC822 validation routines only once and then cached, rather than having each address revalidated every time a message is viewed. Ought to result in a somewhat snappier message UI.

--
|||||||||||  Matthew E. Dunham
|||||  Instructional Computing
||||||||||||  UC Santa Barbara
||||||||||||||||  805 893 7687
--
IMP mailing list - Join the hunt: http://horde.org/bounties/#imp
Frequently Asked Questions: http://horde.org/faq/
To unsubscribe, mail: [EMAIL PROTECTED]

Reply via email to