5回复
2年前
【赏金25元】windows java 堆外内存泄漏
运行在工控机(i5-6200u 8g内存)的java程序发现内存泄漏,找不到方法查找泄漏原因。
参考上面截图,程序在运行一段时间后,在任务管理器观察内存不断增长,但通过工具查看堆内内存正常,用jconsole和NMT jcmd等方法查看的堆外内存也在正常范围,亦添加了-XX:MaxDirectMemorySize=1024M。
但在监控堆与非堆之外有未知模块内存泄漏,导致工控机整体内存溢出。
怀疑是JNA调用了DLL引起的内存泄漏,但项目程序引用DLL较多,没有工具不好逐个排查。
已经尝试过用JProfiler,NMT等方法查看堆内堆外内存,但观察结果都在正常范围内,找不到相关泄漏的模块。
网上查到的工具都是linux平台的,请问Windows平台下是否有其他内存分析工具,或者是否有其他思路可以帮忙查出问题?
1265 阅读