Мой проект начал использовать java 8 из java 7.
После перехода на java 8 мы видим, что проблемы, связанные с потреблением памяти, со временем становятся все выше.
Вот те исследования, которые мы сделали:
- Проблемы возникают только после перехода из java7 и из java8
- Поскольку metaspace - единственное, что связано с памятью, которая изменяется от hava 7 до java 8. Мы отслеживали metaspace, и это не увеличилось более чем на 20 МБ.
- Куча также остается непротиворечивой.
Теперь единственный путь - проанализировать, как распределяется память для обработки в java 7 и java 8, в частности, в частную память байтов. Любые мысли или ссылки здесь будут оценены.
ПРИМЕЧАНИЕ. Это приложение javaw представляет собой приложение на основе swing.
ОБНОВЛЕНИЕ 1: проанализировав собственную память с помощью инструмента NMT и создав разницу в памяти, сравниваемую с базой. Мы обнаружили, что куча осталась такой же, но потоки просачивают всю эту память. Так как никаких изменений в куче, я предполагаю, что эта утечка происходит из-за собственного кода.
Так что вызов остается открытым. Любые мысли о как анализировать память, занятую всеми потоками, будут полезны здесь. Ниже приведены снимки, взятые из встроенного отслеживания памяти.
В этом рисунке вы видите, что 88 МБ увеличилось в потоках. Там, где количество рукописей и ресурсов было значительно увеличено.
на этой картинке видно, что в этом Malloc увеличилось 73 МБ. Но здесь нет имени метода.
Поэтому, пожалуйста, бросьте какую-то информацию в понимание этих скриншотов.