我知道JDK 7應該是hotspot和jrockit之間的合併,並且不會有jrockit 1.7。 (來源:https://blogs.oracle.com/henrik/entry/java_7_questions_answers)我有一個項目需要jrockit的非連續堆特性以及一些java 1.7特性,因爲由於JDK 7是一個合併器,它是否支持非連續堆,因爲我找不到一個官方這樣說的文檔?JDK 7是否使用非連續堆?
回答
我認爲你問的是非連續的堆,因爲你正在遭受內存碎片。很多時候你的32位地址空間是分段的,但你的64位地址空間不是。這意味着,如果您的計算機具有足夠的內存,則使用64位JVM將允許您查找32位JVM不會訪問的連續內存。當32位JVM未能分配超過2GB的堆時,我個人使用64位JVM來分配超過4GB的堆。
雖然它看起來不像任意的非連續堆,但它使它成爲JDK 7,您可以嘗試使用G1垃圾回收器。根據http://www.oracle.com/technetwork/java/javase/tech/g1-intro-jsp-135488.html:
堆被劃分爲一組大小相等的堆區域,每個虛擬存儲器的連續範圍的。
從理論上講,這可以讓你玩一個非連續的堆。唯一的限制是地區必須具有相同的規模。
根據http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/G1GettingStarted/index.html#t6可以使用該命令行選項來控制區域大小:
-XX:G1HeapRegionSize =正:隨着G1 Java堆被細分成均勻大小的區域。這設定了各個子部門的大小。該參數的默認值根據堆大小以人體工程學方式確定。最小值爲1Mb,最大值爲32Mb。
我希望這會有所幫助。
聽起來不錯,但我做了一些測試,它表現相同。他們可能意味着連續的堆被分割以獲得更好的GC。 但有些奇怪。我指定1g和visualVM顯示我最多2g ... – Stroboskop 2014-07-29 17:22:01
- 1. 堆棧是否連續增長?
- 2. mmap是否連續分配堆內存?
- 3. 是否有內置的Android類用於非連續創建XML?
- 4. JDK 7
- 5. 使用「For ... Next」與非連續數字
- 6. 是否可以使UITable連續?
- 7. 是否有「連續」版本?
- 8. 是否有可能使用非連續的命名範圍填充列表框?
- 9. 是否有可用的構建演示新的JDK 7功能?
- 10. 非連續計數
- 11. 非連續UISlider iOS
- 12. 非連續滑塊
- 13. 非連續範圍
- 14. IBM JDK 7 SSL連接不工作
- 15. 如何知道我是否在使用Open JDK或Oracle JDK?
- 16. 守則適用於Windows的JDK 7,但不是在Linux上JDK 7
- 17. 使用jdk 7的新fork連接框架的性能問題
- 18. TFS 2010是否支持非連續合併?
- 19. 如何知道你是否有Python中的非連續列表?
- 20. 是否連續調用errno來避免?
- 21. pkt_data是否連續佔用內存?
- 22. Eclipse和JDK 7
- 23. HashMap和JDK 7
- 24. Android工作室總是使用JDK 7並且不切換到JDK 8
- 25. 連續7個元素
- 26. 查找JDK是否爲openJDK或Oracle JDK
- 27. Java中是否有簡寫的方法來連續調用一堆類方法?
- 28. Android應用連續進行堆操作
- 29. 是否[NSOperationQueue mainQueue]保證是連續的?
- 30. 如何註冊APK使用JDK 7
在您的鏈接頁面上,您的問題未得到解答,問題是「融合的JVM是否會獲得允許JRockit在Windows上分配更多堆的功能?」 – 2012-08-10 10:10:34