Closed
Bug 46707
Opened 25 years ago
Closed 8 years ago
investigate xpt file loading performance/caching
Categories
(Core :: XPCOM, defect, P3)
Core
XPCOM
Tracking
()
RESOLVED
INCOMPLETE
People
(Reporter: warrensomebody, Unassigned)
References
Details
(Keywords: memory-footprint, perf)
Attachments
(2 files)
|
8.42 KB,
text/plain
|
Details | |
|
861 bytes,
patch
|
Details | Diff | Splinter Review |
From the footprint meeting 7/26/00:
6) .xpt file loading
Description: Currently we're loading more type library information than we
necessarily use because of the way xpt files are
created as part of the module build process. Better factoring of the xpt files
could result in less loading at startup time and less
memory usage. Also, the type library info needs to be a memory flush listener.
Module owner: jband@netscape.com, mccabe@netscape.com
Task owner: jband@netscape.com
Status: JBand to investigate either better factoring of typelibs in xpt files
or the idea of putting all of the individual small xpt files
into a single zip file.
| Reporter | ||
Updated•25 years ago
|
Updated•25 years ago
|
Status: NEW → ASSIGNED
| Reporter | ||
Comment 2•25 years ago
|
||
Sounds like this is going to be a significant win for beta3. Marking nsbeta3+
Whiteboard: [nsbeta3+]
Comment 3•25 years ago
|
||
It looks like work I did for bug
http://bugzilla.mozilla.org/show_bug.cgi?id=30753 already got the bigger
part of the space win. This part is to take better advantage of that win.
Here are some rough mem usage numbers I got from running taskman on NT.
This was a release build with symbols.
I just started mozilla and let it go to the mozilla.org site.
Numbers are in bytes and show average size after a couple of runs
1) What we ship now with a few big xpt files: 18534
2) What developers currently run (97 .xpt files): 18190
3) Those 99 files zipped to one zip: 18270
4) All .xpt files if we don't run xpt_link (479 files): 18252
5) Those 479 files xtp_link'd to one .xpt file: 18550
6) Those 479 files zipped: 18280
So, I had thought that the best tradeoff of loading speed and
footprint would be '6'. But, '3' is near enough the same not
too matter. It looks like the added space of the additional
zip entry names for all the file closely offsets the addition
bits of the unused xpt stuff we actually load when we don't
keep the .xpt file to the smallest granularity. this is good.
It means that the additional build change of *not* running
xpt_link for each module would not save us anything.
So running zip rather than xpt_link at package time is the minimal
build/package change to get us the best win.
This gets us about 250K gain over what we currently ship.
I still need to do some caching of the zip files if we want to not
loose on speed. I'll hack this and make sure the added space cost
doesn't whack the entire gain here.
Comment 4•25 years ago
|
||
Not holding PR3 for this. Marking nsbeta3-. Please nominate for rtm if there's
something we really need to do for Seamonkey RTM.
Whiteboard: [nsbeta3+] → [nsbeta3-]
Comment 5•24 years ago
|
||
I have not touched this for months. I'd be happy if someone else took it over.
The changes to support xpt files in zips got implemented and worked when last I
tried it. The work that is yet to be done is to change the packaging perl
scripts to use zip.exe on the xpt files that it currently uses on xpt_link.exe
on. This would give us browser.zip, mail.zip, etc in place of browser.xpt,
mail.xpt, etc.
I started in on that back then and ran out of time and clues. I'm not seeing
myself pick this up again anytime soon. If someone with a clue on these
packaging scripts wants to dig in then I can certainly answer questions and fix
bugs in xpti if they are uncovered.
I'll attach the stuff I had at the time.
IIRC, it was sort of working on Windows, untested on Linux, and expected to not
work yet on Mac. I was puzzled by the differences in the packaging between the
mozilla distribution and the netscape stuff. The strategy was to copy xptlink.pl
to a new file called xptzip.pl and hack it to do the zipping. The build.pl
script would then call xptzip.pl rather than xptlink.pl and all would be well.
Again. I think it would be great if someone would pick this up and go with it!
Keywords: nsbeta3
Whiteboard: [nsbeta3-]
Comment 6•24 years ago
|
||
Comment 7•24 years ago
|
||
Comment 8•24 years ago
|
||
mass reassign of bugs to dbradley@netscape.com
Assignee: jband → dbradley
Status: ASSIGNED → NEW
Comment 9•24 years ago
|
||
Is 256K memory savings worth escalating this for?
Updated•24 years ago
|
Status: NEW → ASSIGNED
Comment 10•24 years ago
|
||
I never managed to get anyone interested enough in this likely 256K of footprint
savings for them to actually do the work. The reamining work is just changes in
the packaging scripts. This ought to be fairly easy for the packaging script
gurus. SEE ABOVE
Vidur suggested an innovative solution: just reassign the bug until someone
pushy enough talks the right person into doing the work. Let's see how pushy
cathleen is :)
Assignee: dbradley → cathleen
Status: ASSIGNED → NEW
Comment 11•24 years ago
|
||
(shaver pushes himself around all the time! :-)
Comment 13•23 years ago
|
||
I don't think shaver is looking at this, so I'll take it.
Assignee: shaver → dveditz
Target Milestone: --- → mozilla0.9.8
Updated•23 years ago
|
Comment 14•23 years ago
|
||
only nsbeta1+ bugs can have milestones, resetting to ---
Target Milestone: mozilla0.9.9 → ---
Updated•23 years ago
|
Target Milestone: --- → mozilla1.0
Updated•23 years ago
|
Status: NEW → ASSIGNED
Comment 15•23 years ago
|
||
Moving Netscape owned 0.9.9 and 1.0 bugs that don't have an nsbeta1, nsbeta1+,
topembed, topembed+, Mozilla0.9.9+ or Mozilla1.0+ keyword. Please send any
questions or feedback about this to adt@netscape.com. You can search for
"Moving bugs not scheduled for a project" to quickly delete this bugmail.
Target Milestone: mozilla1.0 → mozilla1.2
Comment 16•22 years ago
|
||
Changing target milestone as 1.2a has been and gone. Mind you, is this bug still
an issue?
Target Milestone: mozilla1.2alpha → ---
Comment 17•21 years ago
|
||
It seems that this one is no longer valid, as the current
Mozilla, Firefox and TB releases have now only a very few
XPT's included.
So either close this one, or keep it open to see if something
can be done in the loading of one XPT file can be done.
Comment 18•21 years ago
|
||
That's precisely the problem -- all the little interfaces are combined into a
very few giant files with an .xpt extension, which are completely loaded at
startup. This adds to startup time and memory bloat since loading an .xpt file
is all-or-nothing.
The perf and footprint gain would come from analyzing which interfaces are
actually used at startup or other performance critical tasks and put only those
into a few .xpt files. The infrequently used interfaces coul be put into .zip
archives from which individual interfaces could be read as needed without having
to load all of them (but with a bit more overhead than raw mini-.xpt files).
Updated•19 years ago
|
QA Contact: pschwartau → xpconnect
Updated•18 years ago
|
Assignee: dveditz → nobody
Status: ASSIGNED → NEW
Comment 19•16 years ago
|
||
per bug 510309, xpt files are linked on all tier 1 platforms now.
Comment 20•8 years ago
|
||
XPT stuff is more of an XPCOM thing. But think is old enough I think I can just close it.
Status: NEW → RESOLVED
Closed: 8 years ago
Component: XPConnect → XPCOM
Resolution: --- → INCOMPLETE
Comment 21•8 years ago
|
||
I'd probably say it should go to "WONTFIX", since it is a known item that won't be getting fixed.
You need to log in
before you can comment on or make changes to this bug.
Description
•