gpt4 book ai didi

java - JVM 崩溃 hs_err_pidXXXX.log 文件已创建。但是没有生成 hprof 文件

转载 作者:行者123 更新时间:2023-11-29 07:52:24 24 4
gpt4 key购买 nike

我的应用程序(桌面应用程序)通过以下异常

java.lang.OutOfMemoryError: requested 4096000 bytes for GrET in C:\BUILD_AREA\jdk6_12\hotspot\src\share\vm\utilities\growableArray.cpp. Out of swap space?

出现上述错误的可能原因是什么。

这里是设置的jvm参数

虚拟机参数:

jvm_args: -Dsun.net.inetaddr.ttl=10 vfprintf 退出中止 -Xms5242880 -Xmx1711276032 -XX:NewSize=2621440 -XX:MaxNewSize=855638016 -XX:+HeapDumpOnOutOfMemoryError -Dsun.rmi.dgc。服务器.gcInterval= 60000 -Dsun.rmi.dgc.client.gcInterval=60000 -Djava.security.properties=wigan.java.security -Xss512K

---------------- 系统 ----------------

操作系统:Windows NT 6.1 Build 7601 Service Pack 1

CPU:总共 24 个(每个 CPU 16 个内核,每个内核 2 个线程)系列 6 模型 13 步进 7,cmov,cx8,fxsr,mmx,sse,sse2,sse3,ssse3,ht

内存:4k 页,物理 4194303k(4194303k 空闲),交换 4194303k(4194303k 空闲)

vm_info:用于 windows-x86 JRE (1.6.0_12-b04) 的 Java HotSpot(TM) Server VM (11.2-b01),由“java_re”于 2009 年 1 月 17 日 09:52:33 使用 MS VC++ 7.1 构建

我在 jvm 参数中添加了 -XX:+HeapDumpOnOutOfMemoryError,但是 jvm 没有转储堆,我从来没有找到任何 .hprof 文件。为什么?

是否必须在创建 hs_err_pidXXXX.log 文件时同时创建 hprof 文件?

最佳答案

当 OutOfMemoryError 伴随着“Out of swap space?”时尝试在 native 级别分配资源时发生错误。在您的情况下,内部 C++ 过程似乎无法分配所需的内存。这似乎是未创建堆转储的原因:当在 native 级别失败时,VM 的内置错误处理可能没有机会接管 - 而不是 java 级别的错误,例如用完(java-)堆空间。

默认情况下,Windows NT 用户空间是 2GB,因为你的 Java 堆已经是 1.7GB,所以没有多少空间留给非堆内存,你的应用程序似乎在那里碰到了天花板。

有两种方法可以尝试修复错误:

  • 减少你的 Xmx 以允许更多的非堆内存
  • 尝试设置/3GB 引导参数(不确定您的 Windows 版本是否支持此参数)以将系统空间减少到 1GB,从而将用户空间增加到 3GB

关于java - JVM 崩溃 hs_err_pidXXXX.log 文件已创建。但是没有生成 hprof 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20137892/

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