所以,我一直在使用惠普媒體中心一段時間,只有大約4千兆字節的內存,所以當然,我正在運行一個32位的Windows 7.我一直試圖運行一個程序,使用Java虛擬機和我可以使用它的jvm論證,但是,我需要更多的治癒空間,因爲我沒有足夠的內存,我聽說有可能使程序使用交換而不是ram。那麼,有沒有一個jvm的論證或程序,我可以使用它來製作一個程序使用RAM和交換或交換?任何答覆表示感謝,帽子可以幫助。並且在任何人說出來之前,是的,我知道swap因爲我使用常規HDD而比ram慢。Ram + Swap JVM參數/工具?
回答
據我所知,這不是關於jvm的一個論點。 jvm進程的堆取自它運行的操作系統。這是從虛擬內存,其中已經包含交換空間,如果你有這樣的。你的操作系統有多少交換完全是該特定操作系統的配置。由於你正在運行32位的窗口,你的jvm也是32位。而一個32位的JVM可以使用理論上的最多使用4GB的RAM;在實踐中,它通常不超過1.3GB(正如評論中所指出的那樣);所以添加交換不會讓你的生活更輕鬆。首先你需要一個64位的操作系統。
即使Window 7上的32位進程的理論限制僅爲3 GiB,但是,它也將包含代碼,I/O緩衝區和其他非堆數據。但是,JVM實現無法爲堆使用多於2個GiB(較低的地址空間)。因此,如果沒有「largeaddressaware」標誌,你必須減去本地庫的代碼和數據,所以你非常幸運,如果你獲得1.6 GiB,通常它更像1.3 GiB。 – Holger
@Holger說實話我甚至沒有試過看我會得到多少。這是我記得看到的東西,所以認爲它是理所當然的。將更新。 – Eugene
我們與客戶有過這個問題。仍然使用32位JVM的一個原因是jdbc-odbc橋接,而odbc驅動程序不是「largeaddressaware」,所以可用堆在加載時或其他方式下降,例如,當您執行最大堆數1.4 GiB到1.5GiB,加載驅動程序失敗,原因是缺乏本地資源。但是,JVM使用的庫(或其版本)似乎在每次更新中都會發生變化,因此找到最大堆(以及每個字節的計數,它確實對性能產生影響)始終是試錯。 – Holger
- 1. 後備tempfs磁盤而不是RAM/SWAP
- 2. 工具模擬RAM使用
- 3. JVM堆參數
- 4. JVM/AS監控工具
- 5. JVM默認參數
- 6. JVM -XX:+ StringCache參數?
- 7. Java插件的JVM參數
- 8. JVM/Shell程序執行/ RAM利用率
- 9. `std :: mem :: swap`如何工作?
- 10. Swap整數算法
- 11. JVM參數爲HTTPS nonProxyHosts
- 12. Ubuntu中的Websphere JVM參數
- 13. 測試的JVM參數
- 14. 如何設置JVM參數
- 15. FORTRAN 77 - SWAP
- 16. Pythonic Swap?
- 17. Javascript Banner Swap
- 18. Actionscript 3.0 swap
- 19. Fancybox Image Swap
- 20. 使用JVM GC參數-XX:SurvivorRatio = 8不工作
- 21. 的Jrocket GC JVM參數在JDK 8工作
- 22. 在NLTK不JVM工作由於斯坦福標註器參數
- 23. 函數.swap()有用嗎?
- 24. 使用臨時libc與另一個工具的參數工具
- 25. Hot Code Swap的工作原理
- 26. Swap類w/jQuery
- 27. 有jvm參數導致jvm在jvm啓動時創建一個hprof文件
- 28. Jquery Image Swap onLoad
- 29. Rails - Hot Swap Tables
- 30. 宏SWAP(t,x,y)交換t類型的兩個參數
如果我正確地理解了您的問題,那麼您使用的是32位操作系統,這意味着一個32位JVM。我相信可以分配給JVM的最大內存是4GB(請參閱http://stackoverflow.com/questions/1434779/maximum-java-heap-size-of-a-32-bit-jvm-on-a -64位操作系統)。即使分配4GB,操作系統也可能會將某些部分交換到磁盤。 – KevinO