Eclipse (MAT): высокая загрузка памяти из-за String / StringBuilder / Char [] - PullRequest
0 голосов
/ 21 апреля 2020

Я использую wildfly-9.0.1.Final на сервере. Выделенная память составляет 20 ГБ с флагом UseG1G C и UseStringDeduplication (с пороговым значением по умолчанию).

Я подозреваю, что сервер использует слишком много памяти. Когда я анализирую heapdump с помощью снятия отметки: опция «держать недоступный объект». enter image description here

Когда я Когда я анализирую с проверкой: опция «держать недоступный объект» enter image description here Я также выполнил часть запроса финализатора, но не повезло. Я проверяю гистограмму для char [] [], я думаю, что String / StringBuilder поддерживаются char [] для хранения данных. enter image description here

Вопрос / Наблюдение

  1. Какая опция мне нужна для анализа heapdump с / без сохранения недоступного объекта?
  2. Я считаю, что недоступный объект будет удален в следующем цикле G C.
  3. Is там любой запрос / метод Итак, я узнал, какой объект ссылался на эти большие номера. String / String / StringBuilder / Char [] (при использовании сохранить недоступный объект)?
  4. Я наблюдаю, как система повышения памяти этого типа не может освободить заметное количество памяти.
  5. Я проверил состояние потока финализатора в threaddump это было ОЖИДАНИЕ. Это нормально, правда?

Может кто-нибудь подсказать мне для дальнейшего устранения неполадок.

...