Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jvm 如果不使用Xmx会发生什么?_Jvm - Fatal编程技术网

Jvm 如果不使用Xmx会发生什么?

Jvm 如果不使用Xmx会发生什么?,jvm,Jvm,根据JVM的文档,如果使用太大的Xms参数,JVM将无法启动。所以,我问,如果我不使用它会发生什么?是否允许我的虚拟机无限期增长?它是否仅在物理内存耗尽时停止?XMX是最大堆大小 如果我不使用它会发生什么 如果省略,则使用默认值。默认值因JVM版本以及运行它的平台而异。第5版的详细信息 默认情况下,在服务器类计算机上选择以下选项 物理内存的最大堆大小为¼,最大可达1G字节 如果您没有指定-Xmx,那么您将获得操作系统、jvm及其选项和版本的默认分配 考虑到可能会影响值的事情的数量以及浏览文档所

根据JVM的文档,如果使用太大的Xms参数,JVM将无法启动。所以,我问,如果我不使用它会发生什么?是否允许我的虚拟机无限期增长?它是否仅在物理内存耗尽时停止?

XMX是最大堆大小

如果我不使用它会发生什么

如果省略,则使用默认值。默认值因JVM版本以及运行它的平台而异。第5版的详细信息

默认情况下,在服务器类计算机上选择以下选项

物理内存的最大堆大小为¼,最大可达1G字节


如果您没有指定
-Xmx
,那么您将获得操作系统、jvm及其选项和版本的默认分配

考虑到可能会影响值的事情的数量以及浏览文档所需的时间,询问jvm可能会更容易

例如,在我的Linux系统上:

$ java -XX:+PrintFlagsFinal -version 2>&1 | grep -i -E 'heapsize|permsize|version'
uintx AdaptivePermSizeWeight               = 20               {product}
uintx ErgoHeapSizeLimit                    = 0                {product}
uintx InitialHeapSize                     := 66328448         {product}
uintx LargePageHeapSizeThreshold           = 134217728        {product}
uintx MaxHeapSize                         := 1063256064       {product}
uintx MaxPermSize                          = 67108864         {pd product}
uintx PermSize                             = 16777216         {pd product}
java version "1.6.0_24"
由于它默认为
-server
,但使用
-client
我得到:

$ java -client -XX:+PrintFlagsFinal -version 2>&1 | grep -i -E 'heapsize|permsize|version'
uintx AdaptivePermSizeWeight               = 20               {product}
uintx ErgoHeapSizeLimit                    = 0                {product}
uintx InitialHeapSize                     := 16777216         {product}
uintx LargePageHeapSizeThreshold           = 134217728        {product}
uintx MaxHeapSize                         := 268435456        {product}
uintx MaxPermSize                          = 67108864         {pd product}
uintx PermSize                             = 12582912         {pd product}
java version "1.6.0_24"
在我的Windows系统上,我得到:

C:\>java -XX:+PrintFlagsFinal -version 2>&1 | findstr /I "heapsize permsize version"
uintx AdaptivePermSizeWeight               = 20               {product}
uintx ErgoHeapSizeLimit                    = 0                {product}
uintx InitialHeapSize                     := 16777216         {product}
uintx LargePageHeapSizeThreshold           = 134217728        {product}
uintx MaxHeapSize                         := 268435456        {product}
uintx MaxPermSize                          = 67108864         {pd product}
uintx PermSize                             = 12582912         {pd product}
java version "1.6.0_21"
哪些是
-client
设置,并且似乎没有
-server
选项:

C:\>java -server -XX:+PrintFlagsFinal -version 2>&1 | findstr /I "heapsize permsize version"
C:\>java -server -XX:+PrintFlagsFinal -version
Error: no `server' JVM at `C:\jdk\jre\bin\server\jvm.dll'.