project FP

mailnews Footprint and Performance

feedback to n.p.m.mail-news

Summary: We need to improve mailnews footprint and performance.

The big areas are:

1) reply, compose
2) message display
3) folder loading
4) startup
5) addressbook

Details:

issue
bug #
owner
new compose window (using a cached window) [not on by default. to try it, add user_pref("mail.compose.max_recycled_windows", 1); to your prefs.js]
104989, 109081
ducarroz
msg reply (using a cached window)
104989
ducarroz
investigate reply speed, after # 104989

ducarroz
fix first compose window speed, after # 104989 (with turbo, and without)

ducarroz,varada
improve reply to imap message with attachments (only quote the body)
101480
cavin
investigate fcc2 menu in compose (should be done lazily)

cavin,varada
switch from tree to listbox in the addressing widget
70858
hewitt
remove "composeSaveMenuItems" command set
98657
sspitzer
reduce composer toolbar updating (blur problems, like in 107481 ?)
108038
sspitzer
reduce composer toolbar updating even more, if we can focusedElement wasn't null when editor has focus (or figure something else)

sspitzer
hack, or use setTimeout() to improve tabbing from address to address, address to subject, subject to body
108393
sspitzer



investigate message display ( selectively notify hdr sink, cross xpconnect as few times as possible when notifying header sink, create browser XBL widget w/o session and global history)
108635 , 22960
mscott
investigate and improve CollectAddress() perf
109107
mscott, sspitzer
downloading parts more than once during display? (imap), needs investigation.

93208
bienvenu



de-orkinizing and xpcomization of mork
110850
bienvenu
investigate folder loading
cavin,naving,bienvenu
investigate mork

bienvenu
investigate footprint (where's the memory going?)

naving,bienvenu
investigate leaks

bienvenu,naving
reduce mail-toolbar updating [improvements made]
107481
cavin,sspitzer



fix "n" navigation performance ( ignore duplicate .msf files)
104610
naving, neil
local mail perf problems with a large folder folder (cache mailbox:// connections)
104676
naving
open local mailbox file in read only mode, when possible
108276
naving



imagelib caching (affects menus, and addressbook)
106817
pavlov
find better value for nsXULAttributeValue::kMaxAtomValueLength
104905
sspitzer,waterson,alecf



i18n issues
103451
nhotta,cavin



investigate startup time (creating 4 web shells, cavin investigating)
26455 , 7251
cavin
don't do news on startup
103010
sspitzer
investigate how expensive our folder datasource usage is in the folder pane

sspitzer, cavin
investigate our account manager datasource & folder datasource based XUL template generated content (get messages, copy, file, move). should all be done lazily. (startup perf, general perf, footprint)
68375
sspitzer, cavin, neil
investigate other XUL template generated content (charset menu, tasks, etc). should all be done lazily

cavin
investigate a simpler skin (does modern's complexity and polish slow us down?)

hewitt,sspitzer



investigate time to delete message and load next message since that's such a common operation (toolbar flashing on delete, selection goes from 0 to 1 to 0) [improvements made]
100802
bienvenu
switch it so that we display the contents of the imap folder before we connect to the server and do folder discovery and download headers. (though you can't load a message until we've finished all that. we might want to investigate doing folder discovery on a different thread, though it could cause problems)

bienvenu
Preferences UI bloats and seems to leak
107709
bienvenu
reduce number of mork tables we create when loading a folder
111976
bienvenu
Reduce number of outliner row repaints and speed up painting
112253
bienvenu
updating total / unread too often when downloading imap folder first time
112761
bienvenu
cache most recent thread object asked for, should speed up painting of thread pane when in threaded mode
111976
bienvenu



switch to using PRPackedBool
108584
sspitzer
convert some PRInt32 / PRUint32 attributes to PRUint8 (priority, label, etc) in common objects like nsMsgDBHdr

sspitzer



ab: investigate performance
107151
sspitzer
ab: switch to pure outliner (not rdfliner) implement a nsIOutlinerView like we do in nsMsgDBView for the results pane, and ab sidebar (see http://www.sspitzer.org/ab.html )
73868
sspitzer
ab: switch to rdfliner for addressbook / mailing list pane (like we do in the folder pane) [not going to do it, see hyatt's post to xpfe]

sspitzer
ab: clean up directory and card datasources

sspitzer
ab: clean up addressPane.css .
105835
sspitzer
cache edit / new card window, like in 104989

sspitzer
reduce allocation when painting in addressbook, like dmb did in thread pane.

sspitzer
ldap queries leak

sspitzer,dmose
improve LDAP performance

sspitzer, dmose
improve LDIF import performance

sspitzer
improve local AB performance

sspitzer



increase string bundle cache, break apart our string bundles (especially compose, move the errors out from the main compose bundle), make sure the string bundle cache is big enough that we aren't swapping out bundles, or make callers hold onto bundles where possible.
104988
sspitzer
batching for multiple msg delete
80897
naving
batching for other commands, like marking as read

sspitzer,naving
add const getters for path and spec to nsIURI, and use them. (may not be worth it.)
110797
cavin,sspitzer,darin



automate leak / bloat measuring, tie into tinderbox
108577
varada, stephend, mcafee
add better logging so that stephend can automate more of his timings
78787
varada, stephend