V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kelvinaltajiin
V2EX  ›  程序员

大佬进,如何在 IDEA 中导出 heap dump 文件,官网推荐的方法都试过了,没有效果

  •  
  •   kelvinaltajiin · 2023-07-17 16:44:28 +08:00 · 934 次点击
    这是一个创建于 488 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. idea64.exe.vmoptions 如下: -Xms128m -Xmx4096m -XX:ReservedCodeCacheSize=512m -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:CICompilerCount=2 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\tmp -XX:-OmitStackTraceInFastThrow -ea -Dsun.io.useCanonCaches=false -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Dkotlinx.coroutines.debug=off -Dfile.encoding=UTF-8

    2. run/debug configuarions 里面也加上了 -XX:+HeapDumpOnOutOfMemoryError

    3. gradle.properties 也加上了 org.gradle.jvmargs=-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:/heapdump

    上述三种方式都没有效果,没有任何的 hprof 文件生成,google 了一圈没其他办法,在此求助。

    9 条回复    2023-07-20 13:24:34 +08:00
    mitsuizzz
        1
    mitsuizzz  
       2023-07-17 16:53:09 +08:00
    你加的这些不是只有发生错误的时候自动导出的吗,没有错误怎么会生成呢,手动的话
    mitsuizzz
        2
    mitsuizzz  
       2023-07-17 16:54:52 +08:00
    回车快了,用 jmap 命令就可以手动导出
    kelvinaltajiin
        3
    kelvinaltajiin  
    OP
       2023-07-17 16:55:09 +08:00
    @mitsuizzz 代码报了 OOM ,但是没有 heap dump 文件
    kelvinaltajiin
        4
    kelvinaltajiin  
    OP
       2023-07-17 17:00:07 +08:00
    @mitsuizzz jmap 可以自动捕获 OOM 的时候堆状态吗? 目前 OOM 不一定稳定复现
    mitsuizzz
        5
    mitsuizzz  
       2023-07-17 17:12:15 +08:00
    @kelvinaltajiin 上个 2 的配置图看看
    kelvinaltajiin
        6
    kelvinaltajiin  
    OP
       2023-07-18 13:54:10 +08:00
    @mitsuizzz 昨天又捣鼓一天没搞出来。。。。
    ![image]( https://imgur.com/a/iVt9dVH)
    kelvinaltajiin
        7
    kelvinaltajiin  
    OP
       2023-07-18 13:57:23 +08:00
    mitsuizzz
        8
    mitsuizzz  
       2023-07-18 17:58:22 +08:00
    @kelvinaltajiin 看看当前工作目录下有没有生成,实在不行,贴下代码看看
    kelvinaltajiin
        9
    kelvinaltajiin  
    OP
       2023-07-20 13:24:34 +08:00
    @mitsuizzz 折腾两天,最后在 build.gradle 文件里面配置以下才成功生成😂
    test {
    jvmArgs = ['-XX:+HeapDumpOnOutOfMemoryError', '-XX:HeapDumpPath=D:/heapdump']
    }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2602 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:43 · PVG 23:43 · LAX 07:43 · JFK 10:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.