У меня есть приложение, которое разбилось с OutOfMemory. Я загрузил файл phd из краха в Eclipse Memory Analyzer. Я быстро определил довольно подозрительный ArrayList с примерно 5 700 000 записей, каждая из которых представляет собой строку с содержимым 16 нулевых байтов (????). Примечание. Я не проверял все записи, а просмотрел несколько меньшую выборку.
Неудивительно, что мне интересно, кто держится за такую глупость, поэтому я щелкнул правой кнопкой мыши по ArrayList и открыл «Путь к корням GC» (со всеми ссылками или с некоторым исключением, похоже, это не имеет значения) .
Открывается новая вкладка и отображается только одна строка, ArrayList, с добавленным суффиксом «Неизвестно».
Итак, мой вопрос в заголовке: почему я не вижу корни GC?
Различные версии задействованных материалов.
Приложение работает на Websphere 8.x на какой-то 1.6 IBM JRE.
Анализатор памяти Eclipse: версия 1.5.0
Diagnostic Tool Framework для Java (для загрузки дампов IBM): 1.10.0.201211161052