-
Enhancement
-
Resolution: Fixed
-
P3
-
11
-
b09
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8238250 | 11.0.7 | Ioi Lam | P3 | Resolved | Fixed | b02 |
This causes degradation in start-up.
For the related code, see:
http://hg.openjdk.java.net/jdk/jdk/file/5cc6acb1d6b6/src/hotspot/share/memory/filemap.cpp#l877
To fix this, we should patch/relocate the archived heap regions to make it compatible with the runtime compressed oop encoding. Preliminary result is encouraging.
Test case:
# dump archive
java -Xshare:dump -Xmx2000m
# same compressed oop encoding
java -Xshare:on -Xmx2000m -Xlog:cds -version
# different compressed oop encoding
java -Xshare:on -Xmx2090m -Xlog:cds -version
(The archive is dumped with UnscaledNarrowOop mode. At run time, if -Xmx2090m is specified, ZeroBasedNarrowOop is used instead).
OLD same 34.45 ms +- 0.51%
OLD diff 47.76 ms +- 0.61% <<<<< 13.3 ms degradation!
NEW same 34.58 ms +- 0.94%
NEW diff 35.09 ms +- 0.24%
Patch: http://cr.openjdk.java.net/~iklam/jdk12/8208658-relocate-archived-heap-regions.v00/
Note that without this fix, start-up time degrades 13.3ms when compressed oop encoding has changed. With this fix, the degradation is only 0.5ms, which is the cost of relocating/patching the archived heap regions.
- backported by
-
JDK-8238250 Make CDS archived heap regions usable even if compressed oop encoding has changed
-
- Resolved
-
- blocks
-
JDK-8202951 Implementation of JEPJDK-8204247: Include default CDS (Class Data Sharing) archive in JDK binary
-
- Resolved
-
- relates to
-
JDK-8251322 Improve BitMap::iterate
-
- Resolved
-
-
JDK-8210523 runtime/appcds/cacheObject/DifferentHeapSizes.java crash
-
- Closed
-
-
JDK-8214280 FileMapInfo::map_heap_regions_impl fails to relocate archive regions to runtime heap top in some cases
-
- Closed
-
-
JDK-8214455 Relocate CDS archived regions to the top of the G1 heap
-
- Resolved
-
-
JDK-8204247 JEP 341: Default CDS Archives
-
- Closed
-