Closed Bug 28677 Opened 25 years ago Closed 24 years ago

Replying to a message with a large number of recipients is to slow

Categories

(MailNews Core :: Composition, defect, P3)

x86
Other
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: mscott, Assigned: bugzilla)

References

Details

(Keywords: perf, Whiteboard: [PDT-)

On a release build from Friday February 18th.
If I reply to the hook which has at least 20 engineers on it, it can take over
10 seconds on my machine for the compose window to load.

The window itself comes up pretty fast but the envelope fields are all blank and
the whole app freezes for close to 10 seconds. After which, all the recipients
show up in the envelope pane.

During this freeze I do see the following dumped to the console:
"awtCopyNode" or something like that.

I suspect we are doing some inefficient dom tree copying or something that isn't
scaling well as the number of recipients in a message go up.

(Note for my test: there was no message body so the time is definetly in the
addresses. I clicked on the mailto url off the bonsai page for emailing the hook).

Also: my machine is PII-500 with 256MB of Ram. The 10 seconds may not sound like
much but if you scale this back to our target machine I'm sure we're talking
about a minute if not more.
Nominating for beta1, adding perf keyword
Keywords: beta1, perf
Putting on PDT+ radar for beta1. 
Whiteboard: [PDT+]
I will try to see if I can optimize the JS else I will rewrite part of in in C++
Status: NEW → ASSIGNED
Whiteboard: [PDT+] → [PDT+] ETA: 2/25
Target Milestone: M14
QA Contact: lchiang → laurel
I have jut tried some JS opimization without be able to really boost the stuff. 
The only good point I found so far is to start laying down the recipients list 
before the window is fully loaded. It's more visual than really effective.
Whiteboard: [PDT+] ETA: 2/25 → [PDT+] ETA: UNKNOWN
I tried a lot of stuff but every time I get serious side effect for only few 
seconds shaved. The addressing widget is very sensitive to any modification 
because of the way we create dynamically nodes. Typically, when you 
pre-consturct the whole tree children to speed up the insert node, the pre State 
mechanic of the select and input widget doesn't work anymore, 
that's means, we lose the content when scrolling the tree. I think it would be 
better to not touch it anymore for beta now that it works ok. Can I mark it B2?
Whiteboard: [PDT+] ETA: UNKNOWN → [PDT+] ETA: UNKNOWN, too risky!
Good call. No safe fix available means it waits for the next bus. PDT-
Whiteboard: [PDT+] ETA: UNKNOWN, too risky! → [PDT-] ETA: UNKNOWN, too risky!
Whiteboard: [PDT-] ETA: UNKNOWN, too risky! → [PDT-]
I have a fix for that that improve the time by a factor 10 for 100 recipients. 
With the fix, we are almost not depend on the number of recipients anymore. 
However, I cannot check it in because of a regression due to preState problem 
when using cloned nodes (bug 30916).
Depends on: 30916
Whiteboard: [PDT-] → [PDT-]Fix in hand but waiting for fix for bug 30916.
moving to M15
Target Milestone: M14 → M15
Fixed and checked in
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Whiteboard: [PDT-]Fix in hand but waiting for fix for bug 30916. → [PDT-
Marking this verified using:
2000-04-11-09m15 commercial build NT 4.0
2000-04-11-09m15 commercial build linux rh6.0
2000-04-11-10m15 commercial build mac OS 9.0

It takes only a couple seconds on even my slower machine when replying to a
message with 50 addressees.  All addressees filled in appropriately in the
address block.

I know there's a bug about replying to hundreds of recipients, so someone will
be revisiting this overall issue ... ref bug #33715.
Status: RESOLVED → VERIFIED
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.