使用finalize进行Java内存泄漏检测
作者:互联网
好的,我已经在网上阅读了很多关于finalize()方法的文章以及我们无法真正依赖它的事实……
对,很清楚(我猜)
但是当内存泄漏发生时,在VisualVM内部越来越深之前,我可以使用finalize方法作为主要的调试工具吗?
(一个很小的日志消息,比如finalize中的“object released”和构造函数中的“object created”)
解决方法:
您希望跟踪被保留的对象,而不是那些被释放的对象(这是finalize显示给您的).更重要的是,您想知道为什么保留对象,即保留它们的引用路径.我建议使用VisualVM作为开始,如果堆很大或问题不明确,可能会使用商业分析器.
当资源尚未确定清除时,我使用finalize()进行日志记录.也就是说它应该已经接近()了.
标签:finalizer,java,debugging,memory-leaks 来源: https://codeday.me/bug/20190831/1776076.html