2013-12-18 6 views
2

У меня есть java heapdump, который я открыл в Memory Analyzer. Есть ли какой-нибудь способ анализатора памяти (мат) для запросов на открытые дескрипторы файлов? Я хотел бы точно определить, какой класс открыл файл и содержит активную ссылку на файл.Найти открытые файлы в Java heapdump с помощью анализатора памяти

+0

Не было бы проще заменить реализацию java.io на ту, которая отслеживает открытые файлы так, как вы хотите, и перезапустить программу? – AJMansfield

+0

Я могу посмотреть на это, если я не могу использовать запущенную VM или heapdump для идентификации открытых файлов. –

+0

Вы можете искать экземпляры 'FileDescriptor', но я никогда не имел большого успеха с этим. Обычно это гораздо полезнее: http://file-leak-detector.kohsuke.org/ –

ответ

1

Я не сделал этого (так открыто для пылания), но, я считаю, что yourkit file probe должен иметь возможность отслеживать открытые соединения - в запущенном Java-процессе.

Как я уже сказал, не сделано, но я сделал что-то подобное с утечками jdbc и зондом базы данных, и он работает с событиями (например, треки на основе соответствующих вызовов методов). Вы должны увидеть трассировку стека, где открываются и закрываются (если это похоже на зонд базы данных).

YourKit - это платное приложение, но вы можете его пробовать.

0

Посмотрите на File Leak Detector, java-агент, который вы прикрепляете к процессу Java.

Смежные вопросы