gpt4 book ai didi

java - 设置 Java 堆大小不适用于 256GB RAM 64 位机器

转载 作者:IT王子 更新时间:2023-10-28 23:36:31 28 4
gpt4 key购买 nike

我一直在努力寻找这个问题的答案,但还是找不到。

我有一台具有 256 GB RAM 的 64 位机器。

我正在尝试执行一个链接到 MySQL 的 Java 程序。它需要一个安静的大堆大小,因为当我在几分钟后使用 VM 参数 -Xmx1024m 时会弹出:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

但是,当我尝试通过-Xmx2048m或更大的设置程序VM参数时,它不起作用并说:

Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap

我读到设置 -Xmx2048 对于 64 位机器来说不是问题,但我真的不知道为什么它在我的机器上不起作用。

java -version 输出: enter image description here

wmic OS 获取 FreePhysicalMemory/Value 输出:

FreePhysicalMemory=251663664

wmic computersystem 获取 TotalPhysicalMemory 输出:

TotalPhysicalMemory
274811621376

wmic os 获取 osarchitecture 输出

OSArchitecture
64-bit

我无法执行 systeminfo|find "Memory",因为它说语法错误。我也不知道为什么。

最佳答案

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

此消息表明 java 堆没有足够的空间来进行进一步的分配。您似乎已设置为 1G 的 Xmx,这对于您的应用程序来说是不够的否则应用程序可能会泄漏占用java堆空间的内存。

Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap

在虚拟机初始化期间。 JVM 执行从堆到 JIT 模块的各种初始化。如果 JVM 找不到请求的 Xmx 的连续内存空间然后将抛出上述错误消息。

这些是虚拟内存分配,所以请不要与物理内存值混淆

请运行命令java -verbose:init -Xmx2048 -version

此命令将告诉 JVM 在初始化时经历的步骤以及失败的步骤。

关于java - 设置 Java 堆大小不适用于 256GB RAM 64 位机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28293649/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com