JDK-6903284 : Data read from system cache should be also cached in the memory cache
Type:Bug
Component:deploy
Sub-Component:deployment_toolkit
Affected Version:6u18
Priority:P2
Status:Closed
Resolution:Fixed
OS:generic
CPU:generic
Submitted:2009-11-20
Updated:2013-11-01
Resolved:2010-01-13
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
Cache.getSystemCacheEntry() does not use memory cache and therefore cache entries from the system cache
are always read from the disk (or disk cache). This has negative impact on performance.
EVALUATION
As part of FX startup optimizations in 6u18 FX runtime is now imported in the "system" cache and we use special optimized classloader to load runtime from the system cache.
In b05 (6894899) this code was refactored to make sure we only allow system cache entries to be loaded to the "optimized" FX classloader. However, this codepath skips use of MemoryCache and therefore every time we need jar (e.g. to load new class) we read cache entry from the disk (disk cache but we still need to load and parse it).
For example this happens 650 times on startup of Store app.
Other problem fixed as part of this bug fix is to recover support for use of "alternative"
runtimes - this is needed for performance tracking with Soma promoted builds.
Perf tests shows that with fix startup performance for minimal fx applet improves by 10+% (this will likely return us to b04 level only).