我在32位Ubuntu系統上運行礦工服務器,如果我升級到64位什麼是我可以給java的最大內存?我希望它具有大約12吉ram,但我不能在32位上做到這一點你可以給java的最大內存?
回答
64位系統可以解決的ram數量實際上沒有最大值。您將只能通過計算機的硬件停止。如果你在命令中使用了正確的開關,我不認爲java有最大數量的所有RAM。
該限制與您的硬件無關。它直接關係到你的操作系統支持多少虛擬內存(我猜你可以爭論與硬件有關,但不像你想的那樣)。 – 2012-04-15 01:29:23
這與硬件非常相關 - 從「軟件」不是「內存」的意義上說,內存不是「軟件」。基於處理器架構和對物理硬件的任何限制,O/S可以使存儲器具有一定的地址可尋址性,但所有存儲器頁遲早要被物理存儲器或某種形式的尋呼空間支持。 – 2012-04-15 02:06:41
從Java Tuning白皮書:
對於一個32位的過程模型,該過程的最大虛擬地址大小通常是4 GB,儘管某些操作系統限制這2 GB或3 GB。對於2 GB限制,最大堆大小通常爲-Xmx3800m(1600m)),但實際限制取決於應用程序。對於64位過程模型,最大值基本上是無限的。
但事實是,如此巨大的堆內存使用量(12GB)會適得其反。運行很長時間後,應用程序花費在垃圾回收上的時間將會消除可用內存太多的影響。
這取決於。可以對Java進行編碼,因此幾乎沒有垃圾收集,因此它不會讓你的生活變得悲慘。 – 2012-04-15 01:32:52
有人在糟糕的一天? Java不分配內存 - 它分配的內存可以是物理內存(RAM ...)或虛擬(調頁空間等) – 2012-04-15 01:59:09
Oscar:那麼你是不是已經開始對我的答案進行週轉和下調投票了?不成熟多少? – 2012-04-15 02:32:43
要說清楚,「硬件」包括分頁/交換空間,所以如果你實際需要12GB的內存,只有8GB內存,你需要確保有4GB的備用交換空間,以便Java成功分配額外的內存。
好吧,這個倒退是荒謬的。 實際限制取決於可用的物理內存,調頁空間以及用戶進程的任何資源限制。它不是「實質上無限的」 - 遲早要允許的頁面必須分配和支持某些東西。 – 2012-04-15 02:03:14
- 1. 如何設置Redis可以使用的最大內存大小?
- 2. Java -Xmx,系統上的最大內存
- 3. 64位Java的最大內存
- 4. 可以分配給Android應用程序的最大本機內存
- 5. 限制.NET進程可以使用的最大內存量?
- 6. .NET進程可以分配的最大內存
- 7. 我可以分配的最大jvm內存
- 8. SQL Server 2016 Express可以使用的最大內存是多少?
- 9. sbrk,malloc - 可以分配的最大內存
- 10. 可以在Java EE應用程序中使用比最大堆內存
- 11. 獲取java內存不足錯誤?即使我給了JVM足夠的初始和最大內存大小
- 12. Java獲取大輸入流的大小給出內存不足
- 13. 你可以調整GAE的內存緩存超時嗎?
- 14. 英鎊,我們可以設置最大元素內存?
- 15. 你可以緩存JNIEnv嗎?
- 16. 你可以緩存UIViewControllers嗎?
- 17. 如何給服務器上物理可用的tomcat最大內存?
- 18. 允許的最大和最小內存
- 19. 你可以給我一個java編程問題
- 20. 我們可以存儲的最小和最大數量?
- 21. 你可以存儲一個字符串在Java中的int?
- 22. 最大內存redis heroku django
- 23. Redis - 數據大小是否可以大於內存大小?
- 24. 可以分配給rununtildate的runloop的最大值是多少?
- 25. 爲什麼你可以分配給NotImplemented?
- 26. 你可以在knitr最後評估內聯塊嗎?
- 27. java堆內存大於TOP
- 28. 是否可以動態更改最大Java堆大小?
- 29. 我可以將內存分配給特定的java進程(jms listener進程)嗎?
- 30. Java內存使用率保持內最大堆大小不錯,但我的系統內存慢慢被吃掉
如果您的堆大小小於32 GB,64位Java運行效率更高,但大多數處理器的理論限制爲256 TB(虛擬內存限制)我創建的最大JVM內存大小爲8 TB。 – 2012-04-15 07:04:16