有哪些工具可用于跟踪Java应用程序中由Opencv JNI库分配的内存。
在我的java dropwizard服务器中,我使用了JNI opencv绑定。当服务器启动时,java堆内存似乎不会增加超过1 GB,它会定期由GC释放。但是巨大的(4-5 GB)内存正在被添加到java进程中,不确定它来自哪里。
如何跟踪JNI库中分配的内存并识别是否有泄漏。
发布于 2020-10-02 03:56:18
查找从JNI库分配的内存泄漏比查找堆上的内存泄漏要痛苦一些。您可能会对工具jemalloc感兴趣,因为它可以帮助隔离本机内存分配中大量分配的来源。然后,您可以使用jeprof工具生成一个图形,以可视化发生大量分配的堆栈。
看看这些文章,这些文章的问题与你的非常相似:
他们详细介绍了寻找由JNI库(即内存不在堆上)导致的内存泄漏的过程。
https://stackoverflow.com/questions/64117731
复制相似问题