在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ JVM最大能使用的內(nèi)存的問題

JVM最大能使用的內(nèi)存的問題

http://blog.csdn.net/youthon/...

這篇文章說Linux上,系統(tǒng)進(jìn)程內(nèi)存最大限制,32位和64位理論上最大都可達(dá)到4G

而另外的文章說,這個(gè)最大限制可以測試,用類似于下面命令:

 java -Xmx503446m -version
 

如果不報(bào)錯(cuò),說明能分配500G左右
我試了一下,

$ java -Xmx603446m -version 
Java HotSpot(TM) 64-Bit Server VM warning: INFO:         
os::commit_memory(0x00007e6915650000, 19773718528, 0) failed; 
error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment 
to continue.
# Native memory allocation (mmap) failed to map 19773718528 
bytes for committing reserved memory.
$ java -Xmx503446m -version 
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

可見500G左右沒問題,600G就不行了

但是這個(gè)遠(yuǎn)超4G了啊,如何理解?

回答
編輯回答
萢萢糖

4G,僅是32位操作系統(tǒng)的限制, 64位不受此限制, 理論上是264.

但最終都要受物理內(nèi)存的限制.超出物理內(nèi)存肯定是不行的.

可配置參數(shù)不代表真的可以分配內(nèi)存, 新jvm允許分配多至512倍的物理/虛擬內(nèi)存.

java -Xmx100000g Demo

在我的機(jī)器上跑得起來, 但實(shí)際是沒有用的. 真分配的時(shí)候還是會 OutOffMemory

2018年4月29日 05:54