Closed
Bug 103912
Opened 24 years ago
Closed 24 years ago
nsChromeRegistry::LoadInstallDataSource() is 2.5% of main1()
Categories
(Core Graveyard :: RDF, defect, P2)
Tracking
(Not tracked)
VERIFIED
FIXED
mozilla1.0
People
(Reporter: dp, Assigned: hyatt)
References
Details
(Keywords: memory-footprint, perf, Whiteboard: [adt3])
Attachments
(2 files)
3.77 KB,
patch
|
Details | Diff | Splinter Review | |
7.91 KB,
patch
|
bryner
:
review+
bugzilla
:
superreview+
asa
:
approval+
|
Details | Diff | Splinter Review |
Timing analysis on this:
main1
1 0 3,279ms mozilla.exe
nsChromeRegistry::CheckForNewChrome
1
0ms
63ms
chrome.dll
It doesn't look like CheckForNewChrome() is doing anything. It is taking about
2% of main1() on startp
Can we remove it ?
![]() |
Reporter | |
Updated•24 years ago
|
![]() |
Assignee | |
Comment 1•24 years ago
|
||
No, it can't be removed. This is the function that does chrome registration.
![]() |
Reporter | |
Comment 2•24 years ago
|
||
Ah! So if I look at its descendents, almost all of its time is consumed by:
LoadInstallDataSource()
100%
1
63ms
And that inturn is 15 LoadDataSource() calls. Can we merge those individual
files statically instead of loading them and merging them on the fly ?
If you dont see any optimizations here, feel free to INVALID / WONTFIX the bug.
![]() |
Assignee | |
Comment 3•24 years ago
|
||
I don't think merging them would buy us much of anything. A better optimization
IMHO would be to look into why loading RDF/XML files takes so long.
![]() |
Reporter | |
Comment 4•24 years ago
|
||
Changing summary approriately
Summary: nsChromeRegistry::CheckForNewChrome() Needs to be removed → nsChromeRegistry::LoadInstallDataSource() is 2% of main1()
![]() |
Reporter | |
Comment 5•24 years ago
|
||
Taking over bug. We agreed to look at the parser first to see if we can improve
its performance. We will revisit this next.
Assignee: hyatt → dp
Summary: nsChromeRegistry::LoadInstallDataSource() is 2% of main1() → nsChromeRegistry::LoadInstallDataSource() is 2.5% of main1()
Target Milestone: --- → mozilla0.9.7
![]() |
||
Comment 6•24 years ago
|
||
In my debug build, the time spent in calls to LoadDataSource() is dominated by
loading the first five datasources from dist/bin/chrome. Strangely enough, the
time spent on these doesn't seem to correspond to the size/complexity of the RDF
file -- user-skins.rdf consistently takes twice as long as all-skins.rdf,
despite being a good deal simpler.
Hmm.
![]() |
Reporter | |
Updated•24 years ago
|
Priority: -- → P2
![]() |
Reporter | |
Updated•24 years ago
|
Status: NEW → ASSIGNED
![]() |
Reporter | |
Comment 7•24 years ago
|
||
Out of the 47 calls to rdf blocking parser, these are the 11 files that exist:
455 /export/dp/trunk/mozilla/dist/bin/chrome/user-skins.rdf
5669 /export/dp/trunk/mozilla/dist/bin/chrome/all-skins.rdf
1223 /export/dp/trunk/mozilla/dist/bin/chrome/user-locales.rdf
8194 /export/dp/trunk/mozilla/dist/bin/chrome/all-locales.rdf
8870 /export/dp/trunk/mozilla/dist/bin/chrome/all-packages.rdf
525
/export/dp/trunk/mozilla/dist/bin/chrome/overlayinfo/navigator/content/overlays.rdf
1108
/export/dp/trunk/mozilla/dist/bin/chrome/overlayinfo/messenger/content/overlays.rdf
291
/export/dp/trunk/mozilla/dist/bin/chrome/overlayinfo/editor/content/overlays.rdf
2158
/export/dp/trunk/mozilla/dist/bin/chrome/overlayinfo/communicator/content/overlays.rdf
5937 /home/dp/.mozilla/Default%20User/bxr32616.slt/localstore.rdf
![]() |
Reporter | |
Comment 8•24 years ago
|
||
![]() |
Reporter | |
Comment 9•24 years ago
|
||
Chase, the timing for user skins includes load of liburiloader.so hence the
bloate d time.
![]() |
Reporter | |
Updated•24 years ago
|
Target Milestone: mozilla0.9.7 → mozilla0.9.8
![]() |
Assignee | |
Comment 10•24 years ago
|
||
This can probably get a bit smaller if we peel out some of the lesser-accessed
RDF into a separate RDF file that is only loaded when showing the prefs UI.
![]() |
Reporter | |
Updated•24 years ago
|
Target Milestone: mozilla0.9.8 → mozilla0.9.9
![]() |
Reporter | |
Comment 11•24 years ago
|
||
Hyatt already did a lot of improvement by merging the rdf files into one. Need
to measure one last time to make sure and close this out.
![]() |
Reporter | |
Updated•24 years ago
|
Target Milestone: mozilla0.9.9 → mozilla1.0
![]() |
Reporter | |
Comment 12•24 years ago
|
||
I see footprint wins here. The data sources that arent needed actually create a
a hashtable and 3 arenas each. I almost have a patch that will fix this.
![]() |
Reporter | |
Comment 13•24 years ago
|
||
I had it stat and prevent the creation of datasources. Hyatt has a better way do
to this: at chrome registration time note down if there exists stylesheets.rdf
and overlays.rdf
Hyatt if you already have a bug, close this as duped and ensure you have that
one nominated (my vote).
Assignee: dp → hyatt
Status: ASSIGNED → NEW
![]() |
||
Comment 14•24 years ago
|
||
Please update this bug with an [adt1] - [adt3] impact rating (or take it off the
list if it doesn't even rate adt3.) Thanks!
![]() |
Assignee | |
Updated•24 years ago
|
Whiteboard: [adt3]
![]() |
Assignee | |
Comment 15•24 years ago
|
||
![]() |
||
Updated•24 years ago
|
Attachment #77539 -
Flags: review+
![]() |
||
Comment 16•24 years ago
|
||
Comment on attachment 77539 [details] [diff] [review]
Patch to annotate and avoid creating DS when they don't exist.
r=bryner
![]() |
||
Updated•24 years ago
|
Attachment #77539 -
Flags: superreview+
![]() |
||
Comment 17•24 years ago
|
||
Comment on attachment 77539 [details] [diff] [review]
Patch to annotate and avoid creating DS when they don't exist.
sr=blake
![]() |
||
Comment 18•24 years ago
|
||
Comment on attachment 77539 [details] [diff] [review]
Patch to annotate and avoid creating DS when they don't exist.
sr=blake
Comment 19•24 years ago
|
||
Comment on attachment 77539 [details] [diff] [review]
Patch to annotate and avoid creating DS when they don't exist.
a=asa (on behalf of drivers) for checkin to the 1.0 trunk
Attachment #77539 -
Flags: approval+
![]() |
Assignee | |
Comment 20•24 years ago
|
||
Fixed.
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Updated•7 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•