JEP proposed to target JDK 13: 350: Dynamic CDS Archives (original) (raw)
Michael Bien mbien42 at gmail.com
Wed May 1 19:02:46 UTC 2019
- Previous message: JEP proposed to target JDK 13: 350: Dynamic CDS Archives
- Next message: JEP proposed to target JDK 13: 350: Dynamic CDS Archives
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Thank you very much for the detailed explanation Jiangli and Ioi.
On Wed, May 1, 2019 at 6:53 PM Ioi Lam <ioi.lam at oracle.com> wrote:
The dynamic archive can also be shared across processes running on the same host, as long as they are running the same program.
So if you're running multiple copies of the same program, then using the old method (single static archive) is roughly the same as the new method (static archive + dynamic archive). If your environment runs different programs that share the same set of libraries. e.g., 2 processes running with "-cp:lib.jar:foo.jar FooApp" 4 processes running with "-cp:lib.jar:bar.jar BarApp" to achieve best sharing, you can create a static archive (using a classlist) for only the classes in lib.jar (and any other system classes used by these apps). Then, create two different dynamic archives, one for the "foo" app, and the other for the "bar" app.
Understood. My main confusion came from the fact that i thought that each FooApp process was supposed to create its own dynamic archive based on the last run of the program. But FooApp and BarApp should just have two different dynamic archives, not six (one for each process).
Will -XX:ArchiveClassesAtExit=dynfoo.jsa skip archive creation if the file already exists? Or is this flag only intended for the initial setup run of a program?
This way, the static archive can be shared across all 6 processes, and the dynamic archives can be shared among the processes running the same program. Thanks - Ioi
On 5/1/19 8:27 AM, Michael Bien wrote: > since each JVM process would create its own dynamic class data > archive, on top of a static archive, i would assume that only the > static archive would be shared between processes, while the dynamic > archive would be mostly only beneficial for tuning startup time. > > Manually created static AppCDS archives on the other hand are fully > shareable and can help with both, footprint and startup time. > > Would this be correct or is more sharing magic going on between those > per-process archives? > > (i suppose you could just use the dynamic CDS feature once and use the > dynamic archive just like it would be a second static & shareable > archive) > > best regards, > michael > > On 25.04.19 23:26, mark.reinhold at oracle.com wrote: >> The following JEP is proposed to target JDK 13: >> >> 350: Dynamic CDS Archives >> https://openjdk.java.net/jeps/350 >> >> Feedback on this proposal from JDK Project Committers and Reviewers [1] >> is more than welcome, as are reasoned objections. If no such objections >> are raised by 23:00 UTC on Thursday, 2 May, or if they’re raised and >> then satisfactorily answered, then per the JEP 2.0 process proposal [2] >> I’ll target this JEP to JDK 13. >> >> - Mark >> >> >> [1] https://openjdk.java.net/census#jdk >> [2] https://cr.openjdk.java.net/~mr/jep/jep-2.0-02.html > >
- Previous message: JEP proposed to target JDK 13: 350: Dynamic CDS Archives
- Next message: JEP proposed to target JDK 13: 350: Dynamic CDS Archives
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]