在JVM之间共享类

我正在研究可以同时在同一台计算机上多次实例化的应用程序。 每个JVM都会将应用程序类加载到自己的内存中,因为所有应用程序的类都是相同的。

我在这里和这里阅读了关于CDS的内容,但它似乎只对JDK类有效。

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


我并不是特别关注这个话题,但是我做了一些研究。 我想我们可以肯定地说,在大多数JVM中都不可能实现。 下面的问题与你的问题类似,它有答案和评论可能有帮助。

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

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


尽管理论上听起来不错,但这并不实际。 Java类的存储映像由一定数量的常量数据组成,但可能只是“可变”数据 - 与其他类的链接指针,各种运行时表,JITCed代码等。确定可共享的内容以及不可用的内容, t最好是困难的,并导致设计不能产生最佳性能。

链接地址: http://www.djcxy.com/p/67485.html

上一篇: Share classes between JVMs

下一篇: Conditional projection with LINQ to Entities