Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/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
Java中的MaxHeapSize_Java_Heap Memory - Fatal编程技术网

Java中的MaxHeapSize

Java中的MaxHeapSize,java,heap-memory,Java,Heap Memory,我在窗口机器中运行命令 java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize 并获得低于MaxHeapSize 2118123520 这是2020MB然而,当我调用Runtime.getRuntime().maxMemory()时,它只给我259522560即247MB 有人能告诉我为什么会出现这种不匹配吗?根据您最后的评论 我正在使用EclipseIDE,没有更改任何设置。您知道

我在窗口机器中运行命令

java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize
并获得低于
MaxHeapSize

2118123520
这是
2020MB
然而,当我调用
Runtime.getRuntime().maxMemory()
时,它只给我
259522560
247MB


有人能告诉我为什么会出现这种不匹配吗?

根据您最后的评论

我正在使用EclipseIDE,没有更改任何设置。您知道如何更改EclipseIDE中的最大堆大小吗

设置在运行配置下找到的VM参数

VM参数通常是改变Java虚拟机(JVM)行为的值。例如,-Xmx256M参数允许Java堆增长到256MB。

有关更多信息,请查看

有人能告诉我为什么会出现这种不匹配吗

Runtime.getRuntime().maxMemory()
调用返回当前JVM的最大堆大小。这由-Xmx命令行选项(例如,对于
java
命令)或特定于平台的默认值决定

您正在运行的命令为您的平台上的-Xmx命令行选项提供了允许的最大值


显然,这些是不同的事情。此外,数字通常是不同的。

我猜您有一台8GB的机器,因此默认值是2GB。运行程序时,您已减小了最大堆大小,因此只能获得约256 MB的内存,因为您已将其设置为256 MB。您是否尝试过使用
-Xmx100m-Xms100m
完美。但我使用的是EclipseIDE,没有更改任何设置。您知道如何更改EclipseIDE中的最大堆大小吗?谢谢-Xmx100m-Xms100m现在为我工作了。