Re: 回复:Need Information for memory sharing with AppCDS

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Fri Mar 13 19:17:31 UTC 2020


Hi, Can you remove hotspot-runtime-dev-bounces at openjdk.java.net from 
this thread, please?
thanks,
Coleen

On 3/13/20 2:16 PM, Ioi Lam wrote:
> I usually use ps_mem.py
>
> https://github.com/pixelb/ps_mem/blob/master/ps_mem.py
>
> java -cp ... app1 &
> java -cp ... app2 &
> ps_mem.py | grep java
>
> Thanks
> - Ioi
>
>
>
> On 3/13/20 12:28 AM, 向伟(识月) wrote:
>> Hi Jiangli, Ioi,
>>
>> Another question about the memory sharing with AppCDS:
>> How to evaluate memory savings when multiple processes use the same 
>> archiving file?
>>
>> Thanks,
>> Wei Xiang
>>
>> ------------------------------------------------------------------
>>     发件人:向伟(识月) <shiyue.xw at alibaba-inc.com>
>>     发送时间:2020年3月10日(星期二) 10:39
>>     收件人:Jiangli Zhou <jianglizhou at google.com>
>>     抄 送:hotspot-runtime-dev
>>     <hotspot-runtime-dev-bounces at openjdk.java.net>;
>>     hotspot-runtime-dev <hotspot-runtime-dev at openjdk.java.net>
>>     主 题:回复:Need Information for memory sharing with AppCDS
>>
>>     Hi Jiangli,
>>
>>     Thanks a lot for the detailed information. It's clear to me.
>>
>>     Thanks,
>>     Wei Xiang
>> ------------------------------------------------------------------
>>     发件人:Jiangli Zhou <jianglizhou at google.com>
>>     发送时间:2020年3月10日(星期二) 00:50
>>     收件人:向伟(识月) <shiyue.xw at alibaba-inc.com>
>>     抄 送:hotspot-runtime-dev
>>     <hotspot-runtime-dev-bounces at openjdk.java.net>;
>>     hotspot-runtime-dev <hotspot-runtime-dev at openjdk.java.net>
>>     主 题:Re: Need Information for memory sharing with AppCDS
>>
>>     Hi,
>>
>> On Sun, Mar 8, 2020 at 11:56 PM 向伟(识月) <shiyue.xw at alibaba-inc.com> wrote:
>>     >
>>     > Hi Ioi,
>>     >
>>     > Thanks a lot for your information.
>>     > I have the question about the usage in the document:
>>     > For common class path prefix:
>>     > ---------------------------------------
>> >     Run the Hello and Hi applications with the same shared archive:
>> > java -XX:SharedArchiveFile=common.jsa -cp common.jar:hello.jar:hi.jar Hello
>> > java -XX:SharedArchiveFile=common.jsa -cp common.jar:hello.jar:hi.jar Hi
>>     >
>> > If a class with name ABC is both in hello.jar and hi.jar, the content is different.
>> > With the class path -cp common.jar:hello.jar:hi.jar, the second run "java .. Hi" can't load the correct class ABC in hi.jar.
>>     >
>>
>> For the above usage, I'd recommend to only archive the classes from
>> common.jar to create a common.jsa. The common.jsa can be used for both
>> applications for sharing. As described in the earlier email, the
>>     follow two conditions must be true to achieve sharing:
>>
>>     - Both processes must be running with the same JVM binary
>> - Both processes must be memory mapping using the same copy of common.jsa.
>>
>> If each container uses a different copy of the common.jsa, then there
>>     is no memory sharing.
>>
>>     > Is there any solution for this usage?
>>
>> I'd recommend to not include ABC in the common.jsa in this case.
>>
>>     Hope that helps.
>>
>>     Best,
>>     Jiangli
>>     >
>>     > Thanks,
>>     > Wei Xiang
>> > ------------------------------------------------------------------
>>     > 发件人:Ioi Lam <ioi.lam at oracle.com>
>>     > 发送时间:2020年3月9日(星期一) 13:03
>> > 收件人:hotspot-runtime-dev <hotspot-runtime-dev at openjdk.java.net>
>>     > 主 题:Re: Need Information for memory sharing with AppCDS
>>     >
>>     > On 3/8/20 8:51 PM, 向伟(识月) wrote:
>>     > > Hi,
>>     > >
>> > > We am trying to take advantage of the characteristics of memory sharing with AppCDS, and we expected that the
>> > > JVM internal packages and common packages can be shared with AppCDS.
>>     > >
>> > > In the user scenario, there are some common base packages for different Java processes with "-cp common_path"
>>     > > Process A: -cp common_path:pathA
>>     > > Process B: -cp common_path:pathA:pathB
>>     > > Process C: -cp common_path:pathC
>>     > >
>> > > I check the code in JDK11, and it uses SharedPathsMiscInfo to do the consistency check for class path.
>>     > > The below usage can work in JDK11
>>     > > Dump stage:
>>     > > -cp common_path
>>     > >
>>     > > Runtime stage:
>>     > > -cp  common_path:new_path
>>     > >
>> > > But I find that SharedPathsMiscInfo has been removed in the latest JDK code.
>>     > >
>>     > > I need the information:
>>     > > 1. the new flow to do the consistency check.
>> > > 2. constraint condition about the memory sharing among the different Java processes.
>>     > >
>> > > Is there any user guide to use the memory sharing feature for AppCDS?
>>     >
>>     > Hi Wei,
>>     >
>> > The topic of sharing the same CDS archive between different apps that
>>     > have the same classpath prefix can be found here:
>>     >
>>     >
>> https://docs.oracle.com/en/java/javase/13/docs/specs/man/java.html#application-class-data-sharing
>>     >
>> > See the section "Sharing a Shared Archive Across Multiple Application
>>     > Processes".
>>     >
>>     > SharedPathsMiscInfo was removed in this RFE in JDK 14:
>>     > https://bugs.openjdk.java.net/browse/JDK-8227370
>>     >
>> > However, we still enforce the same set of consistency checks as previous
>>     > JDK versions.
>>     >
>>     > Please let me know if you have further questions.
>>     >
>>     > Thanks
>>     > - Ioi
>>     >
>>     > > Thanks,
>>     > > Wei Xiang
>>     >
>>
>>
>



More information about the hotspot-runtime-dev mailing list