Я думал об автоматическом обнаружении утечки памяти для Java-программы. Основным алгоритмом является создание JUnits, которые содержат следующую логику:
Call System.gc() several times
Determine initial heap memory consumption using either Runtime class or JMX
Loop
Do something that exercises program under test
End loop
Call System.gc() several times
Determine final heap memory consumption
Compare initial and final memory numbers
Цикл используется для проверки того, что память ползает с небольшими приращениями.
Необходимо различать ожидаемые и неожиданные увеличения использования памяти.
Это не действительно unit test. Но структура JUnit удобна в использовании.
Считаете ли вы, что этот подход действительно? Считаете ли вы, что этот подход будет успешным при идентификации утечек памяти? Вы когда-нибудь делали что-то подобное?