繁体   English   中英

在JVM之间共享类

[英]Share classes between JVMs

我正在开发一个可以同时在同一台计算机上多次实例化的应用程序。 每个JVM都不必要地在自己的内存中加载应用程序类,因为所有应用程序的类都相同。

在这里这里读到了CDS,但它似乎只对JDK类有效。

如何在JVM之间共享应用程序类的数据?

我并没有特别了解这个主题,但我做了一些研究。 我想我们可以肯定地说,在大多数JVM中它实际上是不可能的。 下面的问题与您的问题类似,它的答案和评论可能会有所帮助。

多个JVM进程可以共享公共类的内存吗?

一个可能的选择是,您可以将要共享的类放在一个进程中,并使用JMX(Java Management Extensions)之类的东西公开它们的功能。 这样,多次加载的其他进程就不必加载所有类。 但是,这可以减少总资源足迹当然是有问题的,并且取决于案例。

虽然理论上听起来不错,但这并不实用。 Java类的存储映像由一定数量的常量数据组成,但可能只有“变量”数据 - 指向其他类的链接指针,各种运行时表,JITCed代码等。找出什么是可共享的,什么不是' t最多是困难的,并导致设计不能产生最佳性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM