![](/img/trans.png)
[英]Want to increase Java Heap Size to 4GB+: Physical Memory 8 GB, JVM 64-bit
[英]Setting Java Heap Size does not work with 256GB RAM 64-bit machine
我一直在试图找到答案,但是我仍然找不到。
我有一台具有256 GB RAM的64位计算机。
我正在尝试执行链接到MySQL的Java程序。 它需要一个安静的大堆大小,因为几分钟后当我使用VM参数-Xmx1024m
弹出:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
但是,当我尝试将程序VM参数设置为-Xmx2048m
或更大时,它不起作用并说:
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap
我读到-Xmx2048
设置对于64位计算机不是问题,但我真的不知道为什么它在我的计算机上不起作用。
java -version
输出:
wmic OS获得FreePhysicalMemory / Value输出:
FreePhysicalMemory=251663664
WMIC计算机系统获取TotalPhysicalMemory输出:
TotalPhysicalMemory
274811621376
wmic os获取架构输出
OSArchitecture
64-bit
我无法执行systeminfo|find "Memory"
因为它指出了错误的语法。 我不知道为什么。
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
此消息表明Java堆没有足够的空间来做进一步的分配。 似乎您已将Xmx设置为1G,这对于您的应用程序来说是不够的,否则应用程序可能会泄漏占用Java堆空间的内存。
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap
VM初始化期间。 JVM可以执行各种从Heap到JIT模块的初始化。 如果JVM找不到请求的Xmx的连续内存空间,则Java堆在进行初始化时是连续空间,那么将抛出上述错误消息。
这些是虚拟内存分配,因此请不要与物理内存值混淆
请运行命令java -verbose:init -Xmx2048 -version
该命令将告诉JVM初始化时以及失败的步骤。
考虑以管理员身份运行应用程序-只需通过右键单击->以管理员身份运行启动PowerShell控制台。
Windows可能会拒绝为非提升运行的单个进程授予大量内存。
另外-您是否使用Windows Server或Windows的工作站版本? 通常建议将Windows Server用于此类“大型”服务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.