如何在Java + JNI + C ++进程中查找内存泄漏
如何在Java + JNI + C ++进程中查找内存泄漏
我有一个用Java编写的项目,使用JNI使用C++库。
所有代码都是由我们编写的,所以我拥有所有的源代码。
几个小时后,机器内存就耗尽了,尽管我的进程只是迭代文件,所有与先前文件相关的内存都被删除。
我确定有一些内存泄漏,通常我使用Valgrind,但它似乎无法很好地处理Java,并认为JVM发生了泄漏,即使对于“hello world”Java项目也是如此。
我已经对C++部分(主要流程)进行了单元测试,并在单元测试使用了valgrind,但找不到任何泄漏。这并不能证明什么,因为我可能错过了许多潜在的流程。
我最重要的问题是,我怎么找到我的泄露?
知道是Java还是本地部分在消耗内存,他们在同一个进程中,将非常有帮助。
谢谢。
admin 更改状态以发布 2023年5月19日