Общая стратегия разрешить утечку памяти Java?

У меня есть метод, чтобы протестировать, допустим ли RegEx, но он просто обертывает regex в Попытку/Выгоду. Я не уверен, существует ли лучший способ сделать это, но я не мог бы найти тот.

6
задан erotsppa 24 September 2009 в 18:51
поделиться

5 ответов

Если вы используете Java от Sun и используете как минимум Java 6 update 10 (т. Е. Самое новое), попробуйте запустить jvisualvm из JDK на том же компьютере, на котором запущена ваша программа, и подключитесь к нему и включите профилирование.

Это, скорее всего, самый простой способ начать работу.

12
ответ дан 8 December 2019 в 03:39
поделиться

When it comes to hunting memory problems, I use SAP Memory Analyzer Eclipse Memory Analyser (MAT), a Heap Dump analysis tool.

The Memory Analyzer provides a general purpose toolkit to analyze Java heap dumps. Besides heap walking and fast calculation of retained sizes, the Eclipse tool reports leak suspects and memory consumption anti-patterns. The main area of application are Out Of Memory Errors and high memory consumption.

Initiated by SAP, the project has since been open sourced and is now know as Eclipse Memory Analyser. Check out the Getting Started page and especially the Finding Memory Leaks section (I'm pasting it below because I fixed some links):

Start by running the leak report to automatically check for memory leaks.

This blog details How to Find a Leaking Workbench Window.

The Memory Analyzer grew up at SAP. Back then, Krum blogged about Finding Memory Leaks with SAP Memory Analyzer. The content is still relevant!

This is probably the best tool you can get (even for money) for heap dump analysis (and memory leaks).

PS: I do not work for SAP/IBM/Eclipse, I'm just a very happy MAT user with positive feedback.

7
ответ дан 8 December 2019 в 03:39
поделиться

Вы можете найти JMX и приложение jconsole, которое поставляется с Java. Вы можете получить интересную статистику прямо из коробки, а добавление простых инструментов к вашим классам может дать гораздо больше.

2
ответ дан 8 December 2019 в 03:39
поделиться

Вам понадобится профилировщик памяти . Я рекомендую попробовать профилировщик Netbeans .

3
ответ дан 8 December 2019 в 03:39
поделиться

Один из подходов состоит в том, чтобы регулярно создавать дампы кучи, а затем изменять количество экземпляров ваших классов, чтобы попытаться определить, какие объекты постоянно создаются, но не собираются.

Другой было бы отключать части вашего приложения, чтобы попытаться сузить круг проблем.

Посмотрите на такие инструменты, как jmap и jhat.

1
ответ дан 8 December 2019 в 03:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: