Closed
Bug 139802
Opened 22 years ago
Closed 22 years ago
cert auth takes minutes
Categories
(Core :: DOM: UI Events & Focus Handling, defect, P1)
Tracking
()
VERIFIED
FIXED
mozilla1.1beta
People
(Reporter: jgmyers, Assigned: sfraser_bugs)
References
()
Details
(Keywords: regression, topembed+, Whiteboard: [adt2 RTM] [ETA 07/11])
Attachments
(3 files, 2 obsolete files)
63.96 KB,
patch
|
Details | Diff | Splinter Review | |
1.75 KB,
text/plain
|
Details | |
3.80 KB,
patch
|
wtc
:
review+
wtc
:
superreview+
chofmann
:
approval+
|
Details | Diff | Splinter Review |
Since about 0.9.9, certificate authentication is unusably slow on Mac OS X. I timed connecting to https://aka.mcom.com and it takes 2 minutes 6 seconds between the certificate expiration dialog and the cert picker dialog. SSL/IMAP to tintin.mcom.com takes 2 minutes 49 seconds to bring up the cert picker dialog. During this time the throbber is moving but the progress meter is frozen. Browser windows do not accept new http content, so the netwerk thread is probably blocked. Bringing up the account manager and clicking on the "Select" button for S/MIME certs takes 11 seconds before a cert picker dialog box picks up. During this time Mac OS X puts up the colored spinning disk cursor.
Comment 1•22 years ago
|
||
How large is your db? cc relyea cc nelsonb cc javi
Priority: -- → P1
Target Milestone: --- → 2.3
Reporter | ||
Comment 2•22 years ago
|
||
Certificates7 is 338KB and Key Database3 is 16KB. I exported my cert, moved the databases out of the way, and reimported my cert. That changed the times to 30 seconds for IMAP/SSL, 30 sec for HTTPS, and 3 sec for the S/MIME cert picker. That is still too slow.
Comment 3•22 years ago
|
||
I'm seeing this as well, just using the OS X nightly builds from ftp.mozilla.org. nominating for mozilla1.0 and nsbeta1.
Keywords: mozilla1.0,
nsbeta1
Comment 4•22 years ago
|
||
Going to http://pki.mcom.com/tests.html and clicking the "Client Auth" link hangs my build indefinitely (spinning beach ball). Upping severity to blocker (this is indeed blocking us verifying that there are no regressions from updating Mozilla to use NSS_TIP_20020426.
Severity: normal → blocker
Comment 5•22 years ago
|
||
Brendan, do you think this should block RC2?
Reporter | ||
Comment 6•22 years ago
|
||
I still get the same performance problems on the 2002060103 trunk build.
Comment 7•22 years ago
|
||
Confirming on 6/3 Mac OSX trunk. OSX ssl performance has really slowed. You can also try this in-house test page. It used to take less than 2 seconds, now it is 33 seconds.
Version: unspecified → 2.3
Comment 8•22 years ago
|
||
John, In your original description you mentioned the elapsed time "between the certificate expiration dialog and the cert picker dialog." Q: What certificate expiration dialog? Is the AKA cert expired? (It's not when I visit it.)
Reporter | ||
Comment 9•22 years ago
|
||
At the time I reported this bug, AKA's certificate had expired.
Comment 10•22 years ago
|
||
*** This bug has been marked as a duplicate of 115368 ***
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → DUPLICATE
Comment 11•22 years ago
|
||
I suggest this bug be reopened. This bug reports a problem that is specific to SSL/TLS client authentication. I would ask the submittor, does making a signed S/MIME email message also take a comparable amount of time to the SSL/TLS handshake with client auth? If so, then I would first suspect that the problem is that the MPI bignum library (used to perform the modular exponentiations for the RSA private key operation, common to S/MIME signatures and SSL client authentication) has been compiled with the wrong -D defines for the MAC's CPU, and hence has horribly suboptimal performance. IINM, the project file(s) used to build NSS on the MAC as part of the Mozilla build are not supplied by the NSS team, but rather are supplied by the Mozilla team. I'd suggest that someone look into them to see if there were any changes to the project files or to the system include files (e.g. <ctypes.h> <limits.h> <Types.h> and others) at about the time when the performance degradation was first observed. I'm happy to help some MAC developer investigate this problem.
Comment 13•22 years ago
|
||
Another thought about this. Mozilla builds NSS from the NSS_CLIENT_TAG, right? That tag has been moved sometime since the first of the year. Can we determine if the performance degradation correlates to a movement of the tag?
Reporter | ||
Comment 15•22 years ago
|
||
Please note that comment #2 suggests a performance problem around dbm. I will do some more measurements tonight.
Comment 16•22 years ago
|
||
338 KB is peanuts. My cert7.db is 5304 KB, and client auth takes me a fraction of a second on my Win2K box.
Comment 17•22 years ago
|
||
OTOH, If the elapsed time is before the cert picker, then it probably isn't the private key op after all. :-(
Reporter | ||
Comment 18•22 years ago
|
||
This bug does not appear in 0.9.9 but does appear in 1.0RC1
Comment 19•22 years ago
|
||
*** Bug 115368 has been marked as a duplicate of this bug. ***
Comment 20•22 years ago
|
||
Per John's comment #18, I generated the differences between the NSS and DBM in mozilla 0.9.9 and 1.0 RC1. Note that there are no changes to DBM and not that many changes to NSS. The NSS in mozilla 0.9.9 is some beta release of NSS 3.4. The NSS in mozilla 1.0 RC1 is very close to NSS 3.4 RTM plus some bug fixes from NSS 3.4.1.
Reporter | ||
Comment 21•22 years ago
|
||
Did NSPR change between those releases?
Reporter | ||
Comment 22•22 years ago
|
||
In a Mozilla 1.0 build, I tried replacing each of NSPR20.shlb, NSS3.shlb, NSSckbi.shlb, NSSStdLib.shlb, SSL3.shlb, Softoken3.shlb, and PIPPKI.shlb with the version in 0.9.9. Each library was done one at a time, with the original version restored before trying the next library. None of these significantly reduced the timing on the test case. I was not able to test replacing SMIME3.shlb, PIPBOOT.shlb, or PIPNSS.shlb, as doing so caused Mozilla to not function properly.
Comment 23•22 years ago
|
||
Were there any significant changes in necko during this time period? A hit in SSL performance has been caused by necko changes in the past.
Reporter | ||
Comment 24•22 years ago
|
||
junruh: does the problem for this test case appear in the same builds as for bug 147979?
Comment 25•22 years ago
|
||
The slow client auth problem appears with the 4/29 branch and the 4/19 trunk, before general SSL download slowness appears. I'll test older builds to see when this slow client auth on Mac problem started happening.
Comment 26•22 years ago
|
||
The slowness appears sometime between 3/11 and 4/17, when there was a change from PSM 2.2 to PSM 2.3. This build does not have a client auth problem ftp://sweetlou/products/client/seamonkey/windows/32bit/x86/M099/ this build does ftp://sweetlou/products/client/seamonkey/windows/32bit/x86/M100rc1/
Comment 28•22 years ago
|
||
Javi, can you take a look at what changes came up during that time frame.
Comment 29•22 years ago
|
||
marking adt2 rtm.
Comment 30•22 years ago
|
||
what are the chances we'll have a patch ready to be landed before the weeks out?
Whiteboard: [adt2 RTM] → [adt2 RTM] [ETA Needed]
Comment 32•22 years ago
|
||
I did some logging in my debug build and found the following: I ran SSL client auth twice, once with cert selection set to manual and another set to select automatically. With Select Automatically the time between calling connect on the SSL socket and the final read was 1 minute 5 seconds. We spent 36 seconds in the call to CERT_FindCertsByUsage. With manual cert select the time between calling connect on the SSL socket and the final read was 1 minute 12 seconds. 10 seconds were spent in asking the user to select a cert (this includes bringing up the dialog and getting the response). In this case we spent 35 seconds in CERT_FindCertsByUsage. At first glance it appears that CERT_FindCertsByUsage is causing the problems and needs to be investigated to figure out why traversing the database looking for user certs is taking so long on the Mac.
Comment 33•22 years ago
|
||
Upon closer examination, the time to find the private key associated with the cert that's been chosen to present to the server also takes a long time. 46 seconds in the log I've attached below which is a select automatically log.
Comment 34•22 years ago
|
||
*** Bug 151400 has been marked as a duplicate of this bug. ***
Comment 35•22 years ago
|
||
Any progress on this? Under Mac OS X, Mozilla is the only browser I have found that support client cert authentication, so this is particularly important to people who can only run OS X.
Assignee | ||
Comment 36•22 years ago
|
||
Does this performance issue also happen on Mac OS 9? What about Chimera (a MachO buld that uses the Unix NSPR)? Is it worse on dual CPU Mac OS X machines?
Comment 37•22 years ago
|
||
Could someone who has access to a mac and knows how the profiling tools work run the profiler on the mac and post the output. I have spent the last several days making improvements to the CERT_GetUserCertByUsage() (and underlying code), but most of the changes would only affect large databases. I could dump all those patched into this bug and hope that they have some positive effect, but the risk of some regression after picking up such a large patch would be pretty high. If I knew exactly what elements of the mac are really slow I could be more judicious in the patches I propose. bob
Comment 38•22 years ago
|
||
Chimera doesn't seem to have a fully implemented PSM so I can't check whether the full client auth takes as long, but when it throws an error it happens in fairly short order.
Assignee | ||
Comment 39•22 years ago
|
||
Perhaps the problem here is caused by an optimization that we did to reduce CPU usage. Are any PLEvents flying around when doing cert auth? If not, I think we're cranking down CPU usage (by calling WaitNextEvent with a big sleep time) to the point where we're throttling NSPR threads. This would be bad. The reason I think this is that Mozilla is not using lots of CPU during client auth, which it would if the delay were compute-bound.
Comment 40•22 years ago
|
||
http://www.hilander.com/certauthsampler.txt This is output from Apple's Sampler tool that comes with the dev kit. I started sampling every 20ms when I started the SSL session, and stopped once the page successfully loaded. The entire load took 45 seconds. If I should be getting profiling data differently let me know.
Assignee | ||
Comment 41•22 years ago
|
||
This profile shows that almost all the time is spent in WaitNextEvent or EventAvail, which supports my theory that we're spending too much time yielding to other apps, and not enough time servicing NSPR threads. Someone should try hacking nsMacMessagePump::BrowserIsBusy() to always return true, and see how that affects cert auth performance.
Assignee | ||
Comment 42•22 years ago
|
||
I think that bug 105445 may contain the changes that caused this. This was checked in on March 27.
Comment 43•22 years ago
|
||
OK. Need some way to deal with this without erasing the gain of 105445 for embedding apps.
Comment 44•22 years ago
|
||
Backing out 105445 caused a noticeable improvement in performance. I also see a reduction in the amount of time required to traverse the database for user certs. Previous runs showed ~35 seconds to traverse my cert database, with the patch backed out I now see a time of 8 seconds to traverse my cert db. So it appears that the patch is contributing to the slow down.
Comment 45•22 years ago
|
||
I think "contributing" might be a little light on the language ... "solely responsible for" might be more apt. In any case, looks like we've found the culprit ... now we just need to strike a compromise.
Comment 46•22 years ago
|
||
Even 8 seconds seems like an awfully long time. :-(
Comment 47•22 years ago
|
||
OK. I may have to make an IsBrowserBusy() routine available in the embedding API in order to get back to where we were. That would require modification of the embedding app's event pump which is what bug 105445 was meant to avoid. Unless - is there something like a null PLEvent that this code could fire? How is this code yielding to other apps while doing its work?
Comment 48•22 years ago
|
||
8 seconds is indeed long, but it is a few orders of magnitude faster than the current builds. We've at least found a major source of the slow-down, let's work that first and then see where else improvements can be made. Maybe the code-cleanup mentioned above will trim some more off that 8s.
Comment 49•22 years ago
|
||
Javi, can you show me where the affected code is? Another solution may be to add calls to WakeUpProcess() to it. This would be better than reverting to an IsBrowserBusy() in the message pump approach.
Reporter | ||
Comment 50•22 years ago
|
||
A fair amount of time is spent in http://lxr.mozilla.org/seamonkey/ident?i=CERT_FindUserCertByUsage but I don't see how you could expect NSS to sprinkle WakeUpProcess() throughout its code. The fundamental issue is that when one is using user-mode threads, one cannot make long-blocking calls that the thread implementation doesn't know about. Otherwise, I/O-bound threads such as those calling NSS get starved because the user-mode thread scheduler rarely gets a chance to schedule them.
Comment 51•22 years ago
|
||
The method I was testing was http://lxr.mozilla.org/seamonkey/ident?i=nsNSS_SSLGetClientAuthData, but we're only spending upwards of 45 seconds to 1 minute in this method in the worst case. The slow down is by a couple of minutes more than that. So even if we add calls to this method, I'm not sure we'll see a marked improvement.
Assignee | ||
Comment 52•22 years ago
|
||
Can somone summarize what NSPR threads are doing what work during the problem period?
Comment 53•22 years ago
|
||
Our code gets called by necko. We don't create any new threads or do any thread management. So I'm guessing whatever necko does in regards to threads is the thread activity going on while this code is called.
Assignee | ||
Comment 54•22 years ago
|
||
Which necko protocols are active? Just file://, or also network stuff? This makes me a little surprised, because I would have thought that necko would be posting PLEvents. Maybe our Mac code isn't looking at all the event queues that it needs to.
Comment 55•22 years ago
|
||
I would be more than happy to help, although I don't understand enough about the Mozilla architecture to provide this info. If somebody could give me a little more info on what you want to see I would love to help.
Reporter | ||
Comment 56•22 years ago
|
||
This is happening during an SSL handshake. A packet of data arrives from the network and necko calls into NSS to handle the network activity. NSS reads the data then spends a fair amount of time processing the data. Processing the data involves running cryptographic algorithms, reading data from disk, and sometimes throwing up dialog boxes. During this processing, there is no network activity.
Reporter | ||
Comment 57•22 years ago
|
||
Solutions I can see are: 1) Add a Mac-only PR_WaitNextEvent() which permits NSPR to intercept blocking WaitNextEvent calls and schedule other threads. 2) Add a call to NSPR which allows nsMacMessagePump::GetEvent() to know whether or not there are other threads that want to run.
Comment 58•22 years ago
|
||
In response to comments 48 and 49, and the idea of inserting new calls into the relevant code... The code in question is part of NSS. NSS is not the exclusive property of Mozilla. In fact, it is used in many other products, so inserting mozilla browser-specific calls into NSS is out of the question. The code in question does not make any calls to yield the CPU because the functions in question are not expected to ever take more than a fraction of a second. That is why I commented that 8 seconds for that code seems like an unusually long time. It seems that the particular function for searching for NSS certs has gotten an order of magnitude slower recently. Rather than inserting some sort of CPU yielding function calls into it, I think we should try to get that order of magnitude of performance back.
Assignee | ||
Comment 59•22 years ago
|
||
> 1) Add a Mac-only PR_WaitNextEvent() which permits NSPR to intercept blocking
> WaitNextEvent calls and schedule other threads.
It's not possible to schedule other threads while we're down in the
WaitNextEvent call. Mac OS 9 is a cooperatively scheduled OS, and NSPR threads
on OS 9 are themselves cooperatively scheduled. We can only be running NSPR
threads when our app has the CPU.
Reporter | ||
Comment 60•22 years ago
|
||
In reply to comment 59, the proposal is to have NSPR intercept the call, scheduling the other threads around any native WaitNextEvent call. Something like: PR_WaitNextEvent(int timeout) { WaitNextEvent(0); while (haven't got event && not timed out) { while (another thread wants CPU) { yield; WaitNextEvent(0); } WaitNextEvent(MIN(1 sec, timeout)); } }
Comment 61•22 years ago
|
||
Javi is not the right person to own this bug. Can the solution described by John be coded and checked in on the trunk? We need a mac expert to take ownership.
Comment 62•22 years ago
|
||
In looking for a solution to this problem, I appear to have blundered into the main event. I am not a Mac expert, but I can at least respond to Comment #36: Access to cert-protected page from MacOS 9.1 (Mac Moz 1.1a), from MacOS Classic under MacOS X (Mac Moz 1.1a), and from MacOS X (MacOS X Moz 1.1a). OS 9.1 (Mac Moz1.1a)-time to password challenge: 1-2 sec; time to page: 1-2 sec Classic(Mac Moz1.1a)-time to password challenge: 1-2 sec; time to page: 1-2 sec OS X (OS X Moz1.1a)-time to password challenge: 25-30 sec; time to page:>10min For the OS X case, it seems that if I cancel the page access after providing the password, and then access the protected page again (cert already successfully validated), the page will appear in about 20-25 seconds. I observed OS X Moz CPU usage via top: while waiting for the password challenge, Moz CPU sat at about 10% of a reasonably idle system. While waiting for page (both after challenge and after page access restart) ~5%. MacOS X version 10.1.5, single processor 400 MHz B&W Tower. Accessing an internal corporate page.
Assignee | ||
Comment 63•22 years ago
|
||
This patch solves the problem by adding an API on NSPR, Mac only, that returns true if there are active threads in addition to the main thread. This is called by code that decides how long to spend in WaitNextEvent. I've tested cert auth wih this, and it solves the performance issues. The only downside I've noticed is that the browser CPU usage bumps up every few seconds, I think due to the memory flusher thread kicking in. Conrad won't like this patch, because it won't work for embedding apps that have their own main event loop, and can't call an NSPR API.
Assignee | ||
Comment 64•22 years ago
|
||
To try to address Conrad's concerns, I tested an NSPR patch that calls WakeUpProcess() whenever it schedules a thread that is not the main thread, or a CPU idle thread; I thought this would have the same effect as the patch in this bug, but it doesn't. It hardly affects the problem at all. The reason is that, with NSPR threads being cooperatively scheduled, if your app isn't getting time (because it's in WNE), then it isn't going to be switching between running threads very often. WNE is really the driver here; it's in control.
Assignee | ||
Comment 65•22 years ago
|
||
This patch demonstrates a different approach, which is a little scarier, but might be more to Conrad's liking. All the changes are in NSPR, in this case. This patch puts a call to WakeUpProcess() in the Timer Task (which fires every 8ms whether or not the app has the CPU). WakeUpProcess() will be called when we're ready for a thread switch. This patch is a little more heavyweight, since it doesn't attempt to see what kind of threads are available to switch to (it might just be the CPU idle thread).
Comment 66•22 years ago
|
||
could this also be the cause of annecdotal reports that IMAP header download is much slower on macos than other platforms and 4.x? Isn't the IMAP stuff fairly heavily threaded?
Comment 67•22 years ago
|
||
Simon, thanks for doing the 2 versions of the patch. I'll make an opt build today and do the pageloader tests on it with both patches. Since you say that the 1st patch, anyway, fixes the cert auth problem, what either patch does for the general pageloader test (and CPU usage) needs to be weighed as well. Even the 1st patch, which requires modification to the the app's event pump, is a pretty small, clean modification so I'm not that opposed. Hopefully, we'll be in a (Carbon Event) world soon where WNE isn't used and so calculation of sleep time won't be needed.
Comment 68•22 years ago
|
||
I can verify that IMAP header downloads are relatively slow regardless of enabling SSL for IMAP, on MacOS. Downloading 40 headers or so should complete in a second or a fraction thereof, but typically takes 4-5 seconds. Especially when communicating with a server that has practically no load. Cheers.
Assignee | ||
Comment 69•22 years ago
|
||
Anecdotal? See bug 102797. These patches don't affect it, I think; there are enough PLEvents flying around during header downloading.
Comment 70•22 years ago
|
||
bizarre. from the bug linked above, it seems that this (IMAP header downloads) is a non-issue. yet I'm experiencing it ... I'll have to do some more formal testing. Cheers.
Assignee | ||
Comment 71•22 years ago
|
||
Moving this bug to the Browser product so that it shows up on radar.
Assignee: javi → sfraser
Component: Client Library → Event Handling
Product: PSM → Browser
Target Milestone: 2.3 → M1
Version: 2.3 → other
Assignee | ||
Comment 72•22 years ago
|
||
I did some page load tests on an optimized build with these patches. Results (mean of 4 runs each): Baseline 1200ms Patch 1 1150ms Patch 2 1070ms so they actually help pageload time. The danger is that they'll cause mozilla to suck more CPU. I'm still collecting data on that.
Status: NEW → ASSIGNED
Target Milestone: M1 → mozilla1.1beta
Comment 73•22 years ago
|
||
Comment on attachment 90147 [details] [diff] [review] First cut at a patch This patch should be avoided if possible because it adds a Mac-only private function (PR_Mac_ThreadsBusy).
Assignee | ||
Comment 74•22 years ago
|
||
wtc: that header (pprthed.h) already contains 2 other mac-specific exported functions (which are used for async DNS), so this isn't setting a precedent.
Assignee | ||
Comment 75•22 years ago
|
||
The first patch (attachment 90147 [details] [diff] [review]) doesn't seem to cause CPU usage to go up when Mozilla is idle, nor when in MailNews, doing downloads etc. I like this patch the best.
Comment 76•22 years ago
|
||
What's the CPU usage for patch #2? I still like it because of no change required to the application.
Assignee | ||
Comment 77•22 years ago
|
||
Ooops, that was for patch 2. I didn't measure it for patch 1, because patch 2 is better :)
Comment 78•22 years ago
|
||
Comment on attachment 90157 [details] [diff] [review] Patch version 2. gTimeManagerTaskDoesWUP should be declared static. It would be nice to have a comment explaining what this variable means.
Assignee | ||
Comment 79•22 years ago
|
||
Attachment #90147 -
Attachment is obsolete: true
Attachment #90157 -
Attachment is obsolete: true
Comment 80•22 years ago
|
||
Comment on attachment 90693 [details] [diff] [review] Patch v. 2 updated to address wtc's concerns Simon, It seems that the time manager task should call the NSPR-defined function SignalIdleSemaphore instead of WakeUpProcess, because NSPR's _MD_PauseCPU calls WaitOnIdleSemaphore, which doesn't call WaitNextEvent when we are running on OS X.
Assignee | ||
Comment 81•22 years ago
|
||
Actually, the semaphore stuff is orthoganal to this particular issue. The WaitNextEvent calls where we spend time are not the one in WaitOnIdleSemaphore() (that never gets called on OS X), but rather in the application's main event loop.
Comment 82•22 years ago
|
||
Simon, When the time manager task calls WakeUpProcess, is it possible for the application to be in the NSPR function WaitOnIdleSemaphore? Would that be a problem?
Assignee | ||
Comment 83•22 years ago
|
||
I think that could happen; we might be sitting in the semaphore (with the timer task firing every 8ms), until a condition variable times out, at which point I think we'd go into the '_PR_SET_RESCHED_FLAG' clause. But it should be harmless; WakeUpProcess() is an interrupt-safe routine that just sets a flag in the OS scheduler causing the app to get scheduled next time around. <http://developer.apple.com/techpubs/mac/Processes/Processes-46.html>
Comment 84•22 years ago
|
||
Comment on attachment 90693 [details] [diff] [review] Patch v. 2 updated to address wtc's concerns r=wtc. It would be nice if you could have a Mac developer review this patch too. Please check this in on the tip and NSPRPUB_PRE_4_2_CLIENT_BRANCH of NSPR.
Attachment #90693 -
Flags: review+
Comment 85•22 years ago
|
||
Comment on attachment 90693 [details] [diff] [review] Patch v. 2 updated to address wtc's concerns r=sdagley Gotta love it when a patch fixes the bug, improves pageload perf and has no additional idle overhead
Assignee | ||
Comment 86•22 years ago
|
||
Patch checked in to NSPRPUB_PRE_4_2_CLIENT_BRANCH and the NSPR tip. Keeping bug open for possible 1.0 branch checkin.
Comment 87•22 years ago
|
||
Resolving as fixed, since the patch has been checked into the trunk. Added adt1.0.1 for branch consideration. Let's get this verified by john unruh tomorrow, so we can review it for inclusion on the branch.
Comment 88•22 years ago
|
||
Verified on 7/10 OSX and Mac 9.2.2 trunk. Client auth took around 3 seconds with automatic cert selection, and was very fast with manual cert selection. Also, the ssl speed test page took only 2 seconds - https://pki.mcom.com/color/color.html
Status: RESOLVED → VERIFIED
Comment 89•22 years ago
|
||
Is there anything else we should be testing besides this actual bug?
Assignee | ||
Comment 90•22 years ago
|
||
Yes. We need to check that the app doesn't use lots of CPU for no reason at any time. So we need to run a basic test suite (browsing, mail, downloading etc) with the CPU monitor open (or using top), keeping an eye on the CPU usage.
Comment 91•22 years ago
|
||
downloading info, when saving (using "save target link as") a 15mb file (the mac 8/9 mozilla 1.1a bits). how 2002.07.09.13 2002.07.10.08 ------------------------------------- http 55 sec 15 sec ftp 53 sec 8 sec CPU usage (looking at the progress of the http download) --------- 2002.07.09.13: during the download, cpu peaked at around 25% then leveled off to 2.8% when finished. 2002.07.10.08: during the download, cpu peaked at around 58.2% then leveled off to 1.4% when finished.
I checked POP3 and IMAP protocols with the build that exhibited the *old* behavior (the 2002-07-09-13 trunk build running on OS X 10.1.5), as well as the *current* trunk (2002-07-10-08). Some basic observations using Process Viewer: Old 9th build: Downloading 1009 IMAP messages took 2 minute, 54 seconds and 57 milliseconds. Current 10th build: Downloading 1009 IMAP messages took 1 minute, 16 seconds and 85 milliseconds. Granted this isn't an isolated mail test server, but these comparisons were done literally within a few minutes of each other. I didn't readily have a large pool of messages to test POP3's performance with, but I was watching CPU usage in both cases, and found no alarming instances of spiking. CPU usage for most mail download operations hovered @ a 44-65% level, with a few upward spikes, but nothing sustained. At idle level, the app sits pretty quiet - LaunchCFM app reports anywhere from 0.3 % to somewhere near 4% (~3.7). When running other applications concurrently with ours, we drop CPU usage and yield to the other app I tested (as best as I can tell, since the Process ID Tab of Process Viewer gives me a unique integer value, instead of the application's name). I quit IE, noticed the process ID of Mozilla, started downloading headers, noticed CPU usage, launched IE (loading a page in IE yields 70% usage or so), and noticed no spikes here in Mozilla, either.
Comment 93•22 years ago
|
||
in comment 91, i had been downloading from our local mozilla ftp and http server, eg, http://ftp.mozilla.org/pub/mozilla/releases/mozilla1.1a/mozilla-mac-11a-full.bin simon suggested comparing these data with download from a more remote site, where bandwidth would be more of an issue. so, i used an japanese moz mirror site: http://mirror.nucba.ac.jp/mirror/mozilla/mozilla/releases/mozilla1.0/mozilla-mac-10-full-instal.bin i did three test runs for the japanese downloading for each build; here's the summary: * using 2002.07.09.13 trunk bits: CPU usage varied from a momentary peak of 16-45%, stabilizing to about 3-20% for most of the duration. download time ranged from 9min 25sec to 10min 41sec. * using 2002.07.10.08 trunk bits: CPU usage varied from a brief peak of 20-53%, stabilizing to about 3-13% for the most of the duration. download time ranged from as low as 5min 6sec to 10min 50sec.
Comment 94•22 years ago
|
||
Adding adt1.0.1+ on behalf of the adt pending sr=. Please get drivers approval and check into the Mozilla 1.0 branch asap.
Comment 95•22 years ago
|
||
Comment on attachment 90693 [details] [diff] [review] Patch v. 2 updated to address wtc's concerns NSPR is exempt from Mozilla client's super-review requirement. This patch has been reviewed by me (NSPR owner) and Steve Dagley.
Attachment #90693 -
Flags: superreview+
Comment 96•22 years ago
|
||
John can you verify that this is fixed on the trunk?
Comment 97•22 years ago
|
||
Sorry, I meant branch. I think it's fixed on the branch as well, but we should also verify there.
Comment 98•22 years ago
|
||
Comment on attachment 90693 [details] [diff] [review] Patch v. 2 updated to address wtc's concerns This patch has not been checked in on the MOZILLA_1_0_BRANCH.
Comment 99•22 years ago
|
||
Comment on attachment 90693 [details] [diff] [review] Patch v. 2 updated to address wtc's concerns a=chofmann for 1.0.1. add the fixed1.0.1 keyword after checking in on the branch
Attachment #90693 -
Flags: approval+
Updated•22 years ago
|
Keywords: mozilla1.0.1 → mozilla1.0.1+
Assignee | ||
Comment 100•22 years ago
|
||
Checked in on the MOZILLA_1_0_BRANCH, added keyword. Thanks guys.
Updated•5 years ago
|
Component: Event Handling → User events and focus handling
You need to log in
before you can comment on or make changes to this bug.
Description
•