2013-12-18 51 views
2

我有一個java存儲分析器中打開的heapdump。內存分析器(mat)有沒有辦法查詢打開的文件句柄?我想確切地確定哪個類打開了文件並保存了對文件的活動引用。使用內存分析器在Java堆轉儲中找到打開的文件

+0

將一個跟蹤打開的文件以你想要的方式替換爲'java.io'的實現是不是更容易,然後重新運行該程序? – AJMansfield

+0

如果我不能使用正在運行的虛擬機或heapdump來識別打開的文件,我可以看看。 –

+0

您可以查找「FileDescriptor」的實例,但我從來沒有取得過很多成功。這通常更有幫助:http://file-leak-detector.kohsuke.org/ –

回答

1

我沒有做到這一點(所以開放燃燒),但是,我相信yourkit file probe應該能夠跟蹤打開的連接 - 在運行的Java進程中。

正如我所說,沒有做到這一點,但我已經做了類似於jdbc泄漏和數據庫探測的東西,它對事件(例如基於各自方法調用的軌道)有效。您應該能夠看到打開和關閉的堆棧跟蹤(如果它類似於數據庫探針)。

YourKit是一款支付應用程序,但您可以試用它。

相關問題