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