簡體   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