gpt4 book ai didi

java - 将 native 函数调用关联到 Java 方法

转载 作者:行者123 更新时间:2023-11-30 02:11:05 25 4
gpt4 key购买 nike

我们遇到了 Java 进程的 native 内存泄漏问题。

按照众多资源(如( http://www.evanjones.ca/java-native-leak-bug.html )中的建议将 JVM 与 jemalloc 链接起来后,我们能够将根本原因归结为 zlib 库中的 inflateInit2_ 和 updatewindow 调用。

我们如何将这些从 native 空间的调用关联到 JVM 方法?我们已经尝试查看堆栈跟踪(希望幸运)以及火焰图,但这些并没有多大帮助。

最佳答案

ZipInputStream/JarInputStream是此类内存泄漏的典型来源,例如,当 Class.getResourceAsStream使用后不会关闭。

创建堆转储以查看谁持有 java.util.zip.Inflater对象。

<小时/>

async-profiler 最近获得了对 Linux 上 native 内存泄漏分析的支持。以下命令将分析 <SEC> 的 native 分配秒并创建一个包含组合 Java + native 堆栈的 FlameGraph 报告:

./profiler.sh -e malloc -d <SEC> -o malloc.svg <PID>

关于java - 将 native 函数调用关联到 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50107119/

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