1
моего приложения Java, всегда нужно больше и больше памяти (начиная с ~ 40MB, через 2 дня около 140MB)утечки памяти Java
я использовал
./jmap -histo 17364 | head -10
num #instances #bytes class name
----------------------------------------------
1: 1814362 68884536 [C
2: 1813805 29020880 java.lang.String
3: 1604 9989632 [B
4: 1333 266184 [I
5: 5769 250376 [Ljava.lang.Object;
6: 2410 235720 java.lang.Class
7: 2982 119280 java.util.HashMap
, чтобы получить ощущение того, что выделяет эту память , Есть ли способ обнаружить, в котором действительный класс java использует эти char-массивы и строки?
Вы можете попытаться использовать профилировщик. Также измените настройки GC по причине увеличения объема памяти, как вы запускаете приложение? – kunpapa
Попробуйте VisualVm. https://visualvm.java.net/ – KostasC
Старт может состоять в том, чтобы искать места, где используется «новая строка» или «новый символ []». Затем проверьте, могут ли быть утечки ссылок на них. Но профилировщик, как предлагает кунпапа, - ваш лучший шанс. – Fildor