Closed
Bug 7251
Opened 25 years ago
Closed 14 years ago
improve startup performance tracking bug
Categories
(Core Graveyard :: Tracking, defect, P3)
Core Graveyard
Tracking
Tracking
(Not tracked)
RESOLVED
DUPLICATE
of bug 447581
Future
People
(Reporter: chofmann, Unassigned, NeedInfo)
References
(Depends on 3 open bugs)
Details
(Keywords: meta, perf, topperf)
Attachments
(5 files)
all the areas that need to be fixed to make us start fast...
Reporter | ||
Updated•25 years ago
|
Status: NEW → ASSIGNED
Updated•25 years ago
|
removing dependency on 7249, since we do this for the optimized builds already.
the bug is still open to get it working for developer builds.
Bulk add of "perf" to new keyword field. This will replace the [PERF] we were
using in the Status Summary field.
Adding beta1 to keyword list
Here's the latest test data for start time after a system reboot.
4.71 SM
Win98200MHz, Pentium Pro 2:02s 11:23s
64MB RAM
Mac OS 8.5 2:89s 13:63s
266MHz, PowerPC G3,
64MB RAM
Linux RedHat 6.0, 5:11s 27:34s
166MHz, Pentium, 80MBRAM
For beta 1 we need to be within 2x 4.71
Keywords: beta1
Comment 7•25 years ago
|
||
Removed PDT+ to get a re-eval so that this doesn't show in stats. I'd rather
see the actual bugs rated as PDT+, then see this one in addition to all the
others (at present, there is one other :-/ ).
Whiteboard: [PDT+]
Updated•25 years ago
|
Status: NEW → ASSIGNED
Target Milestone: --- → M30
Updated•24 years ago
|
Target Milestone: M30 → Future
Comment 13•24 years ago
|
||
*** Bug 50746 has been marked as a duplicate of this bug. ***
Comment 14•24 years ago
|
||
Using Quantify and the latest build, it appears that we spend 40% of our boot
time in malloc, allocating 180,000+ blocks.
Updated•24 years ago
|
Comment 15•24 years ago
|
||
dp no longer at netscape. assigning to chofmann so this is on someone's radar
Assignee: dp → chofmann
Status: ASSIGNED → NEW
Reporter | ||
Comment 16•24 years ago
|
||
maybe selmers that better owner/watcher for this tracking bug
from an application point of view.
kandrot, do you know if there is a bug that specifically talks
about all this memory allocation going on at startup?
That is the part memory and performance team might be
interested in. also, do we know if the memory allocation
that is going on rougly mirrors the code size of the .dll's
or is there any sore thumbs that might stand out as allocating
more than they need to or should at startup?
sounds like evaughn's late loading ideas might have a big impact
on the overall startup time if we can shave off lots of code
that really is not used a large pct. of the time.
waterson, did you see this. holy heck. 40% of startup
time just to cram the monkey into memory... whoa!
Reporter | ||
Comment 17•24 years ago
|
||
another good piece of data to get would be to figure out of
the 40% of seamonkey start time in malloc ratio also holds true
in gtkembed and winembed.
Updated•24 years ago
|
OS: Windows 95 → All
Hardware: PC → All
Whiteboard: [PDT-]
Comment 19•24 years ago
|
||
Comment 20•24 years ago
|
||
added more startup bugs
Depends on: 9012
Comment 22•24 years ago
|
||
Adding myself.
Comment 23•23 years ago
|
||
Adding bug 68045 ("precompile chrome JS and load it incrementally"), which is
really "precompile all XUL/XBL/JS/CSS that costs a lot more to parse than to
fast-load from a pre-compiled form".
/be
Depends on: 68045
Updated•23 years ago
|
Depends on: 91231
No longer depends on: 5085, 26291, 27510, 35816, 46775, 49145, 49786, 62164, 63246, 64146, 65266, 65845, 67618, 68045, 68074, 69140, 71780, 71781, 71861, 72551, 76705, 77757, 78695, 79521, 79580, 85770, 86929, 88583, 91241, 91804, 92477, 92478, 92479, 92480
No longer depends on: 5085, 26291, 27510, 35816, 46775, 49145, 49786, 62164, 63246, 64146, 65266, 65845, 67618, 68045, 68074, 69140, 71780, 71781, 71861, 72551, 76705, 77757, 78695, 79521, 79580, 85770, 86929, 88583, 91241, 91804, 92477, 92478, 92479, 92480
QA Contact: paw → sujay
Summary: improve startup performance tracking bug → TRACKING: mouse event handling in tables
Comment 24•23 years ago
|
||
ARGH! Someone who got CC'd on the last update to this please re-add all the
dependencies! Mozilla (or bugzilla?) apparently emptied the dependency field,
and when I added one it erased all the old ones. Please add 91231 when you fix
this. Sorry; I should have been more paranoid when I noticed an empty text
field there.
Comment 25•23 years ago
|
||
Hmmmm. I just noted that a bunch of the other fields got wierded out as well.
(Summary should be "improve startup performance tracking bug"). Sounds like a
Bugzilla bug....
Comment 26•23 years ago
|
||
Restoring the fields as they were. Adding 91231 as requested.
Depends on: 5085, 26291, 27510, 35816, 46775, 49145, 49786, 62164, 63246, 64146, 65266, 65845, 67618, 68045, 68074, 69140, 71780, 71781, 71861, 72551, 76705, 77757, 78695, 79521, 79580, 85770, 86929, 88583, 91241, 91804, 92477, 92478, 92479, 92480
QA Contact: sujay → paw
Summary: TRACKING: mouse event handling in tables → improve startup performance tracking bug
Updated•23 years ago
|
Comment 27•23 years ago
|
||
sorry for the spam, the field changes fooled me at a sleepy moment...
Comment 28•23 years ago
|
||
Now be good this time, bugzilla...
Comment 29•23 years ago
|
||
Mysteriously disappearing values in fields are usually bugs in Mozilla's form
handling. Randell, were you using Mozilla to update the bug, and if so what
build?
Next time you notice this you should see if it happens with Netscape 4.x or
another browser. If so, file a bug against Bugzilla; otherwise file one against
Browser->HTML Form Controls or Browser->Form Submission (depending on whether
you notice the problem before or after the form gets submitted) and notify
staff@mozilla.org immediately so we can block that Mozilla build to prevent
corruption of the Bugzilla database.
Comment 30•23 years ago
|
||
Usually I would blame Mozilla for this sort of thing ... BUT ... I noticed that
when the dependencies were readded the notifications got sent out merged with
the original notifications when the dep got removed.
AIUI when this happens its a Bugzilla bug, and we're not sure why it happens.
If that's the case, it's likely that the whole thing might be a Bugzilla bug.
Comment 31•23 years ago
|
||
I was using mozilla; a daily from just before 0.9.3. Note however that it
replaced the subject line with the subject line from the first bug in my query
list - it would be tough for mozilla to do that, since I never even looked at
that bug (other then it being an entry in the query results). I still think
it's bugzilla.
Comment 32•23 years ago
|
||
Comment 33•23 years ago
|
||
Some analysis on the above.
I'm going to treat main() as the root for the relevant number of stack
traces (that's 1858, as opposed to 1911). Since this is a sampling
profiler, it should yield good results with respect to time spent in
I/O. Unfortunately, it doesn't appear to have picked up symbols from
NSPR (even though I built with seawood's patch for bug 88045).
- Only 2% of the stack traces (37/1911) fell in NS_InitXPCOM(). Of
that, 16 (or less than 1%) were spent in
nsComponentManagerImpl::PlatformPrePopulateRegistry(). So, we seem
to spend very little time reading in the registry. About 1/2% of the
time was spent reading the XPTI files. So it appears that there is
little to gain from optimizing XPCOM initialization code.
- About 8% of the time was spent in
nsAppShellService::CreateHiddenWindow() (158 stacks). From here, 134
stacks (or 7% overall) was spent in
nsAppShellService::GetHiddenWindowAndJSContext(). This winds up in
what appears to be a CreateInstance() call. (See below.)
- 329 stacks, or 17% of the time, was spent in CreateInstance(). The
biggest offenders are:
- nsNSSComponentConstructor(), which accounts for 5.5% (103 stacks).
- nsChromeRegistryConstructor(), which accounts for 2% (39 stacks).
- nsAutoConfigConstructor(), which accounts for 1.6% (30 stacks).
- nsPrefServiceConstructor(), which accounts for 1.6% (29 stacks).
- NS_NewCharsetMenu(), which accounts for 1% (19 stacks).
- Construct_nsIScriptSecurityManager(), which accounts for 0.5% (10
stacks).
Others to note (that take less than 0.5%, but still show up with
several stacks) are:
- nsHTTPHandler::Create()
- nsProfileConstructor()
- CreateXULDocument()
- NS_NewLocalStore()
- InternetSearchDataSourceConstructor()
- nsBookmarksServiceConstructor()
- nsCookieHTTPNotifyConstructor()
All of which read files from the disk.
- We spend 1.7% of the time in nsStaticComponentLoader::GetFactory(),
which seems high. Perhaps we're paging in the executable to access
data at this point?
- We spend 18% of the time (330 stacks) in poll(), from
g_main_poll(). What are we doing?
- We spend 5% of the time (241 stacks) parsing style sheets, that is,
in CSSParserImpl::Parser().
- We spend 8% of the time (149 stacks) handling ContentInserted()
notifications from asynchronous XBL loads. It appears that most of
the time is spent constructing frames, so it's not clear that
synchronously loading the XBL (i.e., so it would have been ``there
already'') would buy much.
- It appears that we spend
- 10.8% of the time (201 stacks) in
nsCSSFrameConstructor::ConstructFrame(),
- 10.7% of the time (199 stacks) in
nsCSSFrameConstructor::ConstructFrameInternal(),
- 4.9% of the time (90 stacks) in
nsCSSFrameConstructor::ConstructXULFrame(), and
- 5.9% of the time (109 stacks) in
nsCSSFrameConstructor::ProcessChildren().
That is, when the sample was taken, the stack pointer was somewhere
in these routines (not somewhere in a descendant of the
routine). Take this evaluation with a grain of salt: since these
routines recursively call each other, I'm not completely positive
that I've properly understood jprof's accouting.
More later...
Comment 34•23 years ago
|
||
Chris Waterson writes:
>- We spend 1.7% of the time in nsStaticComponentLoader::GetFactory(),
> which seems high. Perhaps we're paging in the executable to access
> data at this point?
Probably. dlopen() (depending on the OS) doesn't really load
the entire library; quite a bit will get paged in later.
>- We spend 18% of the time (330 stacks) in poll(), from
> g_main_poll(). What are we doing?
Those will be mostly waiting on IO I'd guess; you'll have to look
at the exact stacks. The question what IO are we waiting on...??? I don't
think we're doing async file IO so that wouldn't show up, and I don't think
we should be doing network IO or DNS (but perhaps we are). Perhaps some
things/Events are handled or generated off of timers as well, and we're
waiting for those? This would be good to spend some time understanding.
Perhaps it's a gtk/etc thing? What was used to end the profile, or shut
mozilla down? If you did it by hand, that might account for it. Also,
it may have been waiting for X - I don't know how gtk/gdk handles X;
it may dispatch things async to X and then go back to the main event
loop to poll.(!)
Also, we have 41 hits (2.2%) in select() (i.e. sleeping waiting
for some form of IO or timer).
>- 329 stacks, or 17% of the time, was spent in CreateInstance(). The
> biggest offenders are:
>
> - nsNSSComponentConstructor(), which accounts for 5.5% (103 stacks).
> - nsChromeRegistryConstructor(), which accounts for 2% (39 stacks).
> - nsAutoConfigConstructor(), which accounts for 1.6% (30 stacks).
> - nsPrefServiceConstructor(), which accounts for 1.6% (29 stacks).
> - NS_NewCharsetMenu(), which accounts for 1% (19 stacks).
NSSComponentConstructor looks suspicious, especially since we
haven't hit any https links yet. It spends 1/2 it's time in
NewTempCertificate, a lot of in ASN1 decoding. Probably parsing key/etc
files? The others may each deserve a short look for easy gains. The
CharSetMenu is a good target for lazy creation.
>- We spend 5% of the time (241 stacks) parsing style sheets, that is,
> in CSSParserImpl::Parser().
This may be worth looking at a little.
>- We spend 8% of the time (149 stacks) handling ContentInserted()
> notifications from asynchronous XBL loads. It appears that most of
> the time is spent constructing frames, so it's not clear that
> synchronously loading the XBL (i.e., so it would have been ``there
> already'') would buy much.
Agreed.
>- It appears that we spend
>
> - 10.8% of the time (201 stacks) in
> nsCSSFrameConstructor::ConstructFrame(),
>
> - 10.7% of the time (199 stacks) in
> nsCSSFrameConstructor::ConstructFrameInternal(),
>
> - 4.9% of the time (90 stacks) in
> nsCSSFrameConstructor::ConstructXULFrame(), and
>
> - 5.9% of the time (109 stacks) in
> nsCSSFrameConstructor::ProcessChildren().
>
> That is, when the sample was taken, the stack pointer was somewhere
> in these routines (not somewhere in a descendant of the
> routine). Take this evaluation with a grain of salt: since these
> routines recursively call each other, I'm not completely positive
> that I've properly understood jprof's accouting.
Yes, those all wind in an out of each other a lot, then they
devolve into a load of smaller hits all over. Untangling these (maybe
looking at the raw stack frames) may help. Also, profiling some pageloads
this way may show better where the FrameConstructers are spending time.
Other notes:
- 6.2% is spent in read().
- 4.8% is spent in nsContainerFrame::ReflowChild
- 3.6% is spent in free() - and fair bit of that in locking/unlocking
the pthread mutexes.
- 3.6% is spent in malloc() - about 2/3's in malloc, 1/3 in pthreads.
- 3.2% is spent in ~nsCOMPtr_base; about 1/4 in that itself(!?) and the
rest in a bazillion ::Release methods. (I was a little
surprised by the number of hits in this directly. The hits in
::Release are destructors and free().
The nsObjectHashtable destroy/reset code is hit a lot, but it all
devolves to ::Release calls (i.e. destructors & free).
nsXULPrototypeDocument::~nsXULPrototypeDocument(void) seems to get more
hits than I'd expect.
- 2.4% is spent in js_GetToken, 1% of it direct hits.
- 2.3% is spent in js_GC, and separately about 1% in gc_root_marker
- 2.3% is spent in doContent (from XML_Parse).
- 1.3% is direct hits in kill (?)
- 1.1% is spent in nsCSSScanner::Next
- 1.1% is spent in nsHashtable::Get (from all over)
- 1% is spent in libc_write
- 1% is spent inflating zip files
- 1% is spent parsing StdURL's; probably much of that allocing CStrings
we're spending a couple of % in the dlopen and dl_runtime code.
- 0.5% doing stat's (from a bunch of places)
- 0.5% direct hits in nsCOMPtr_base::begin_assignment (seems odd)
- 0.5% direct hits in nsStr::StrTruncate (seems odd)
- 0.5% is spent in JS_DHashTableOperate (mostly direct hits in
SearchTable)
- 0.2% direct hits in nsVoidArray::InsertElementAt (I'll look at this)
plus 0.3% in GrowArrayBy (really in Realloc)
- 0.2% direct hits in nsVoidArray::ElementAt (I'll look at this but I
think it's optimal)
I noted there's ShutdownXPCOM called - I assume then this is a
startup/shutdown pair? Perhaps startup, then signal (or JS?) to stop
the logging would be better, though you'll pick a bunch of poll() hits.
Some hotspots/solutions aren't obvious from a profile, especially when a
lot of it is interpreting XUL/JS/etc. For example, lazy creation of things
not immediately needed (especially if the lazy creation can be dropped onto
a low-pri background thread; perhaps not possible in this case - or find
some way to evaluate it on the main thread when it's otherwise idle, to
avoid adding locking all over.).
Comment 35•23 years ago
|
||
> Those will be mostly waiting on IO I'd guess; you'll have to look
> at the exact stacks. The question what IO are we waiting on...??? I don't
> think we're doing async file IO so that wouldn't show up, and I don't think
> we should be doing network IO or DNS (but perhaps we are).
FWIW, if a PAC file is specified, it will be loaded during startup (prefs
initialization) rather than waiting for a network event. (bug 83984)
Depends on: 83984
Comment 36•23 years ago
|
||
I ran a jprof (JP_REALTIME JP_START JP_PERIOD=0.0003) on a dual 450 Linux
box with plenty of RAM. This was a warm start, done seconds after having
started and stopped it. I stoped the profile by hand after it had come up
(with www.mozilla.org as the home, and tinderbox as the sidebar).
Build: from about a week ago, with my ContentIterator fixes. Compiled with
-O2 optimization.
Summary:
Note: %'s are always % of the total number of non-poll hits (157)!
'direct' is hits directly in the routine.
157 non-poll/etc hits.
59 (38%) in ResumeParse()
art of this (<10%) is handling initial reflows.
Most appears to be in doing *::OpenContainer calls.
32 (20%) is doing CSSLoaderImpl::ParseSheet()
Most of that is inserting content, eventually calling
nsCSSFrameConstructor::ContentInserted.
7 (4.5%) are in CSSParserImpl::Parse()
36 (23%) are in CreateInstance() (pre dp's patch)
22 (14%) are in nsDll::Load, probably all going to dlopen. Almost
all of those are in dl_lookup_symbol (21, 13.5%)
15 (9.6%) in nsGenericFactory::CreateInstance calling Constructors
and ::Create() methods
30 (19%) are in nsCSSFrameConstructor::ConstructFrame (note: see ParseSheet
above, this overlaps with that.)
25 (16%) in js_Interpret
A fair bit of this is XBL.
6 (3.8%) in js_GetToken, 3 of them direct hits(!)
5 (3.2%) in js_ForceGC
5 (3.2%) in js_AtomizeString (1 direct)
17 (11%) in nsXBLService::LoadBindings
10 (6.4%) in ::InstallProperties, a lot of it executing JS
13 (8.3%) in nsDocShell::CreateContentViewer
13 (8.3%) in nsContainerFrame::Reflow (some overlap with above/below entries)
8 (5.1%) in nsBlockFrame::Reflow
13 (8.3%) in XPCWrappedNative::CallMethod, including 3 direct hits(!?)
13 (8.3%) in malloc()/new
12 (7.6%) in free(), including 2 direct hits.
11 (7.0%) in nsBox::Layout, called from Reflow() (see containerframe above)
11 (7.0%) in XML_Parse
10 (6.4%) in InitializeProfileService. Most of that is in:
8 (5.1%) nsChromeRegistry::FlushCaches calling GetServiceByContractID
(this may be mostly in opening shared libs)
10 (6.4%) in nsPipe::nsPipeInputStream, almost all from:
9 (5.7%) in HaveDecodedRow, drawing images
7 (4.5%) destroying webshells/docshells and their frames
3 direct in memset (from 3 places)
2 direct in nsString::nsString(void)
2 direct in nsSupportsArray::QueryInterface
2 direct in memcpy
2 direct in nsString::Length
2 direct in JS_GetPrivate()
I can upload the jprof or email it if someone likes
Comment 37•23 years ago
|
||
js_GetProperty seems to be a hotspot in the JS code. (6.4%) and it doesn't fan
out too far.
Comment 38•23 years ago
|
||
Comment 39•23 years ago
|
||
Sorry, I meant _js_LookupProperty for the hotspot (JS_GetProperty is one of it's
callers). The jprof will show you.
Comment 40•23 years ago
|
||
trace-malloc results for mozilla startup, with blank page
Type Count Bytes %Total
TOTAL 115396 5863421 100.00
void* 23517 943767 16.10
registry-Buffer 1 512000 8.73
xpti-unclassified 250 274080 4.67
unclassified-string 5623 203441 3.47
JSScopeProperty 4460 160560 2.74
gtk-unclassified 928 159473 2.72
nsZipArchive 3438 147662 2.52
JS-Array 4654 144448 2.46
js_MatchToken 5046 135536 2.31
FrameArena 31 127565 2.18
JS-script 866 125423 2.14
nsXULElement 2086 118296 2.02
JS-atom 4085 114218 1.95
CSSDeclarationImpl 2732 109940 1.88
nsCSSRule 1342 106488 1.82
JSScope 1140 95760 1.63
nsComponentManagerImpl 2312 90464 1.54
nsTextFragment 360 90106 1.54
JS-unclassified 2110 87392 1.49
nsStaticCaseInsensitiveNameTable 2574 85184 1.45
orkin-unclassified 50 82694 1.41
X-unclassified 3187 82483 1.41
nsCStringKey 2525 77323 1.32
JS-GC-arena 8 73912 1.26
JS-function 2412 71840 1.23
nsXULAttribute 5 71680 1.22
AtomImpl 1749 65758 1.12
nsXULAttributes 865 62280 1.06
xptiInterfaceInfo 1409 62232 1.06
nsXMLElement 1137 59124 1.01
RuleHash 3782 58652 1.00
InMemoryDataSource 92 56074 0.96
nsPersistentProperties 1923 55962 0.95
sscanf 1504 55325 0.94
xptiManifest 1874 46336 0.79
JS-slots 818 45536 0.78
nsImageGTK 110 44008 0.75
nsXULPrototypeElement 891 42768 0.73
nsSupportsArray 582 32592 0.56
OTHER 22918 885039 15.09
Depends on: 91242
Updated•23 years ago
|
Comment 41•23 years ago
|
||
I made my own start up time "profiling", using FileMon from
www.sysinternals.com. There were 9 sec stopwatch measured cold start time, 5.5
sec hot start (filemon activated). See attachments following (a .txt compilation
of the largest times measured, an excel worksheet containing the cold start
profiling data for the mozilla.org tree and an excel worksheet for the cold
start profiling data for the Application Data tree).
\PROGRAM FILES\MOZILLA.ORG AND SUBDIRECTORIES
7.39 sec for 3245 uncached (cold start) file operations. 0.104 sec for 2649
cached (hot start) file operations on mozilla.org dir and subdirs. Cold start
values:
TOTAL 2.07 sec for MOZILLA.ORG\MOZILLA
TOTAL 2.3 sec for MOZILLA.ORG\MOZILLA\CHROME
TOTAL 2.41 sec for MOZILLA.ORG\MOZILLA\COMPONENTS, including 0.90 sec for gecko
(gk*.dll)
TOTAL 0.327 sec for MOZILLA.ORG\MOZILLA\PREF
TOTAL 0.361 sec for MOZILLA.ORG\MOZILLA\RES
$HOME\APPLICATION DATA\MOZILLA AND SUBDIRECTORIES
0.566 sec for 436 uncached (cold start) file operations. 0.04 sec for 415 cached
(hot start) file operations.
MY HUMBLE CONCLUSIONS:
- Huge part of cold start time (7.39 out of 9 sec) is due to file i/o (...you
didn't already know that , heh? :-)
- Oddly enough, hot start time is moderately reduced (9 -> 5.5 sec), although
file io is reduced to a minimal 0.566 sec in that case. Is filemon reporting
exaggerated numbers on cold start?
- chrome is a beast (2.3 sec) with some jar files taking up to 0.482 sec (comm.jar)
- xpcom is a small beast (0.621 sec)
- Where is this precompiled chrome stuff ? xul.mfl (0.123 sec) maybe ?
- At least 0.45 sec (5.65 % of total file io) could be gained from loading of
messenger chrome and msgmapi.dll with Mail&News, instead of doing it at browser
initialisation. Should I file a bug for it?
- At least 0.106 sec (1.33 % of total file io) could be gained from delayed
loading of chatzilla chrome
- Are ucvlatin.dll (0.109 sec) and other similar libraries needed for creating
the initial browser window?
- Venkman doesn't add significant startup delay
- 721 operations on Windows registry. I speculate many of them are unecessary at
startup, but I have no idea of the time gained. Probably every file io gain
might be significant on a heavily fragmented drive.
- Oddly, 151 operations on Windows registry resulted in NOT FOUND, most of them
are like this: HKCU\CLSID\{00021401-0000-0000-C000-000000000046}\InprocServer32.
Is this normal ?
- Extremely high level of component.reg usage reported by Daniel Bratell in bug
27510 seem not existing anymore (filemon reports 1064 KB total).
TEST CONDITIONS: Build 2001101909, new clean profile, modern theme, Win2K SP2,
K6-III/400, 192MB ram, 5400 rpm hdd
Comment 42•23 years ago
|
||
Comment 43•23 years ago
|
||
Comment 44•23 years ago
|
||
Comment 45•23 years ago
|
||
Coldstart -> warmstart doesn't drop as much as you expected because as a
multi-threaded app, other things (CPU use) are happening during the (cold) file
loads. On warmstart, you still have all the CPU use but can't overlap it with
file IO. (Note: this is an assumption.)
Loading mapi/messenger chrome with mail&news would be good; I suspect this has
been thought of before and a bug exists. Do a query (or check bugs that this
depends on) and add it if you can't find it.
I suspect that a lot of the time for warmstart (and cold) is taken doing
relocations, memory allocations and object/factory creations/initializations.
See some of the jprofs.
Comment 46•23 years ago
|
||
The mailnews and chatzilla chrome are opened because both components overlay the
browser to add items to the Tasks menu (and possibly other overlays). If we
can't cache this somehow we could create a small "mailoverlay.jar" if it helps.
Comment 47•23 years ago
|
||
Randell, thank you for the clarification. With all my ignorance about
javascript and the Mozilla structure, I do agree there's a lot of room on
reducing memory allocations and other cpu/memory intensive operations during
startup. But there's also a lot of work on reducing file i/o too. Warm start
times are quite acceptable on low end machines with at least 64MB of memory.
Cold start is what draws the attention of an average user (and he can't use
turbo mode on low memory machines, because of footprint problems). Even worse,
cold start is terribly affected by fragmentation.
Couldn't we keep library and chrome loading to a minimum needed for showing a
simple browser window? Even if start page is not blank, some delays from
late-loaded files wiil be hidden by the network latencies, once a request for
web data retrieval is issued.
Bug 12896 isn't for the mail files I was talking about. I can't find a similar
bug, so I will file a new one. As dveditz suggests, it might be feasible to find
a solution for late loading those files.
Updated•23 years ago
|
Blocks: advocacybugs
Comment 48•23 years ago
|
||
moving tracking/meta bugs out of milestone pools.
Target Milestone: mozilla1.0 → Future
Comment 49•22 years ago
|
||
*** Bug 174091 has been marked as a duplicate of this bug. ***
Comment 50•22 years ago
|
||
*** Bug 185265 has been marked as a duplicate of this bug. ***
Comment 51•21 years ago
|
||
*** Bug 216801 has been marked as a duplicate of this bug. ***
Comment 52•21 years ago
|
||
*** Bug 235263 has been marked as a duplicate of this bug. ***
Comment 53•20 years ago
|
||
Could somebody post the link to the graphs or charts which showed the startup
times? Thanks.
Comment 54•20 years ago
|
||
(In reply to comment #53)
> Could somebody post the link to the graphs or charts which showed the startup
> times? Thanks.
Anyone? Thanks again.
Comment 55•19 years ago
|
||
*** Bug 308628 has been marked as a duplicate of this bug. ***
Comment 56•17 years ago
|
||
I don't know if this is the right place to post this bug, but since about 3 weeks now, minefield has extremely slow startup. Just upgraded to Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a7pre) Gecko/2007072505 Minefield/3.0a7pre and it took my 5 minutes! to boot it up. If I should post a new bug, just let me know.
p.s. Is there any way I can make a trace of why this is taking so long?
Updated•16 years ago
|
Assignee: cathleennscp → nobody
Status: NEW → RESOLVED
Closed: 16 years ago
QA Contact: hong_bugmail → chofmann
Resolution: --- → DUPLICATE
Updated•16 years ago
|
Comment 58•14 years ago
|
||
How did this get reopened?
Status: REOPENED → RESOLVED
Closed: 16 years ago → 14 years ago
Resolution: --- → DUPLICATE
Comment 59•11 years ago
|
||
What's about the open 'Depends on' & 'Blocks' Bugs ???
Move to Bug 447581 ???
Flags: needinfo?
Assignee | ||
Updated•8 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•