Closed Bug 24764 Opened 25 years ago Closed 25 years ago

implement open jar file cache

Categories

(Core :: Networking, defect, P3)

x86
Windows NT
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: warrensomebody, Assigned: warrensomebody)

References

Details

(Keywords: perf, Whiteboard: [nsbeta2+][6/01]1d 5/5/00)

We need a cache to manage open jar files. We determined that we needed such a thing in 4.x in order to increase java classpath performance, and minimize the number of open file descriptors to jar files. Now we need this if we want to package chrome files into jars. (Hopefully we can steal some code from mozilla classic for this.) This facility should probably live in libjar, rather than in the jar protocol. Here's a comment from Dan on the subject: "Before putting resources into JARs we need a JAR service manager of some kind. Opening JARs is expensive since the entire archive directory structure has to be parsed and a hash-table created. Rather than creating the low-level JAR reader component directly, people should instead ask this service for the archive so it can give refcounted interface pointers back in the case where the archive is already open."
Blocks: 18433
Of course, a related part of this is hooking it up to the jar: protocol so that the jar files it uses come from the open jar file cache.
Blocks: 12579
No longer blocks: 18433
Target Milestone: M13
Target Milestone: M13 → M14
QA Assigning to tever.
QA Contact: elig → tever
Keywords: beta1
PDT was trying to make a beta1 call... what element of performance should be sped up by this change? Basic startup? Other? For that element, how do we currently compare with 4.x?
This is to compensate for the horrible extreme *loss* of performance when we move XUL files et al into jar files and try to access them with the stateless "jar:" protocol. Opening and closing these jar files for each XUL/CSS/JS file we need will be far worse than just grabbing the equivalent file on disk unless there's a service that will return handles to open jar files rather than reopening them. A simple first pass at this would be for nsJAR to keep a list of open archives, and for the chrome service to keep at least one extra handle to each opened archive. This would be quick to implement and do the job for beta1.
PDT+
Whiteboard: [PDT+]
Adding perf keyword. Erasing PDT+ designation because chriss says we don't need to ship the beta with jar files now.
Keywords: perf
Whiteboard: [PDT+]
Zlib as a component needs to go away -- we don't own it and any bugs there probably surface in a particular area of the product. This bug has nothing to do with Zlib in any case. Guessing at networking for the component. Maybe some Chrome thing instead. Since warren owns it networking it is.
Component: Zlib → Networking
Whiteboard: [PDT-]
Moving to M15.
Target Milestone: M14 → M15
Marking beta2.
Keywords: beta2
Keywords: skins
Blocks: 29160
Target Milestone: M15 → M16
Moving to M17 which is now considered part of beta2.
Target Milestone: M16 → M17
Mass-adding beta2 keyword to all skins bugs.
Keywords: beta1
Whiteboard: [PDT-] → 1d
Keywords: nsbeta2
Keywords: beta2
Whiteboard: 1d → 1d 5/5/00
Putting on [nsbeta2+][6/01] radar. This work must be done by 06/01 or we may pull this for PR2.
Whiteboard: 1d 5/5/00 → [nsbeta2+][6/01]1d 5/5/00
Checked in.
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
verif. NT 2000060622
Status: RESOLVED → VERIFIED
Keywords: skins
You need to log in before you can comment on or make changes to this bug.