在64位平臺上可以爲java分配的堆空間的最大數量是多少?它是無限的嗎?64位Java的最大內存
回答
理論上2 ,但可能有限制(顯然)
根據this FAQ它是隻受內存和交換空間在本地系統上的限制:
在64位虛擬機,你有64位的可尋址性,從而導致最大Java堆大小僅受系統提供的物理內存和交換空間量的限制。另請參見爲什麼我無法使用32位JVM獲得更大的堆?
另外請記住,您需要通過命令行設置最大堆。沒有-Xmx命令。沒有它根據相同的FAQ,Java在64位機器上使用64mb + 30%= 83.2mb作爲默認最大堆。
java -Xmx1000g myClass
在我的機器上正常工作。但它似乎還沒有支持't'修飾符,所以你不能指定最大內存的TB數量:)
1000g爲你工作?我認爲'java'會在接受這個選項之前驗證是否有足夠的內存。 – asgs 2016-10-02 09:40:07
如果你可以將宇宙中的每個原子變成RAM的一個字節,你可以在64位地址空間中分配它。
其實,這有點誇大其詞。
宇宙中有10^80個原子(根據WolframAlpha),在64位系統中有2^64個字節的地址空間,所以你只能在每個5×10^60個原子中尋址1個。但是如果你有18個qintillion字節的RAM,你可能需要一些量子黑洞來供電。
@Stephen,我在您發表評論前編輯了答案。 WolframAlpha規則! – 2010-01-19 13:34:47
不想等待完整的收集! – overthink 2010-01-19 13:53:41
你需要266位索引宇宙中的每個原子 – 2010-01-19 14:45:54
理論上它在2^63
和2^64
字節之間。
在實踐中,它受限於機器上可用的物理內存和交換空間量。而物理內存又受到芯片組(即物理內存地址總線上的地址引腳數量)和主板(即DIMM插槽的數量和尺寸)的限制。
對於AMD64,目前的規格預見了40-52個地址引腳。此外,他們還支持NUMA體系結構,其中每個處理器都有一塊其他處理器只能間接訪問的內存塊。 – MSalters 2010-01-19 14:49:01
這可能取決於您的虛擬機正在運行的系統。如果您運行的是AMD x64體系結構,則當前運行的處理器的地址空間使用48位,而不是64位。這導致理論最大值大約爲256 TB。 (請參閱http://en.wikipedia.org/wiki/X86-64)
我不是虛擬機專家,但是任何現代操作系統通常都會提供與物理RAM和可用虛擬內存一樣多的內存。 也許多數民衆贊成什麼虛擬機將傳遞到您的應用程序取決於其配置。
AMD相關手冊指出虛擬地址空間實際上是64位(章節2.2.1,AMD64體系結構程序員手冊,v3.14,2007年9月) – MSalters 2010-01-19 14:47:10
- 1. 64位Windows10中每個java進程的最大內存量?
- 2. 64位jvm上的Java內存不足
- 3. linux 64位內存空間大小?
- 4. Tomcat 7 64位最大內存使用率
- 5. 64位Linux機器上最大可能的共享內存大小
- 6. 64位內存分配
- 7. Groovy 64位內存消耗
- 8. 以64位掃描內存?
- 9. 64位機內存分配
- 10. Long,Double和64位內存
- 11. XslCompiledTransform.Transform 64位內存問題
- 12. 64位Windows上的32位JVM最大內存大小沒有預期的那麼大
- 13. 64位Windows上的應用程序可用的最大內存是多少
- 14. Java 32位和64位優化模式(-XX:-UseCompressedOops)內存開銷
- 15. 寄存器長度,內存大小和32/64位計算(MIPS)
- 16. 在Windows 10 64位運行64位JVM中使用Java進程的最大堆大小
- 17. 你可以給java的最大內存?
- 18. Java -Xmx,系統上的最大內存
- 19. 32位服務器最大內存
- 20. 64位java 1.7是否忽略最小堆大小標誌?
- 21. .NET 3.5SP1 64位內存模型與32位內存模型
- 22. 瞭解最大JVM堆大小 - 32位和64位
- 23. Linux內核的虛擬內存大小佔用48GB內存,64位機器的大小是多少?
- 24. 低內存系統上的64位和32位Ubuntu - 爲什麼Ubuntu 64位會吃我的內存?
- 25. 如果在Windows 7 64位上最大堆大小設置爲> 1G(儘管擁有最新的64位Jre
- 26. Spring引導在64位JVM上使用大量內存
- 27. .NET CLR最小內存分配(32/64位)
- 28. Java進程佔用的內存大於其最大堆大小
- 29. 64位CentOs上的Tomcat 6的最大堆大小?
- 30. 64位內存地址不適合Win32(64?)的API WriteProcessMemory?
爲什麼你認爲它是無限的? – 2010-01-19 13:40:37