看啥推荐读物
专栏名称: ImportNew
伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
今天看啥  ›  专栏  ›  ImportNew

从 JVM heap dump 里查找没有关闭文件的引用

ImportNew  · 公众号  · Java  · 2018-07-19 12:00
(点击上方公众号,可快速关注)来源:Hengyunabc ,hengyunabc.github.io/jvm-heap-dump-find-fd/背景最近排查一个文件没有关闭的问题,记录一下。哪些文件没有关闭是比较容易找到的,查看进程的fd(File Descriptor)就可以。但是确定fd是在哪里被打开,在哪里被引用的就复杂点,特别是在没有重启应用的情况下。在JVM里可以通过heap dump比较方便地反查对象的引用,从而找到泄露的代码。以下面简单的demo为例,Demo会创建一个临时文件,并且没有close掉:import java.io.File;import java.io.FileInputStream;import java.io.IOException;public class Test { public static void main(String[] args) throws IOException { File tempFile = File.createTempFile("test", "ttt"); FileInputStream fi = new FileInputStream(tempFile); System.in.read(); }}通过文件名查找对 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照