想象一個(容器)應用程序正在創建多個類加載器來承載一些其他/子應用程序。如果一個類由不同的類加載器加載,(sun-jvm)熱點優化是否會多次發生?
容器應用程序有一個-say-root類加載器。每次加載子應用程序時,容器都會爲此應用程序創建一個新的類加載器。
一些子應用程序使用相同的類,但它們沒有被容器的類加載器加載,所以每個子應用程序(更好:它的類加載器)都加載了代碼。 A級。因此,Permspace將被填充兩次:一次爲子應用程序#1,一次爲子應用程序#2。
這對sun的熱點優化意味着什麼?
相同的優化是否會在類A上發生兩次,每次類加載器都會發生一次?
或者,是否有一些內置的「魔術」可以避免這種情況? (優化完成一次)
有人知道鏈接,這是解釋?
我指的是太陽(服務器)VM航運與JDK 1.6
謝謝你的回答 - 我缺乏你的經驗:)。不過,我會嘗試您提供的jvm開關。 – MartinK 2010-09-24 17:15:10
使用這些開關,您可以進行自己的測試來檢查HotSpot的行爲。並且請回報您的發現! ;-) – 2010-09-24 17:36:30
@Neeme:你猜怎麼着?我做到了!我創建了一個博客!參見:http://growninthewild.blogspot.com/2010/09/java-virtual-machine-hotspot.html – MartinK 2010-09-24 22:18:27