繁体   English   中英

设置Java堆大小不适用于256GB RAM 64位计算机

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM