Я просматриваю несколько руководств по профилировщикам Java (JVisualVM, JProfiler, YourKit) на Youtube, а также на Pluralsight. У меня появилось небольшое представление о том, как проверить дамп кучи и как найти утечку памяти. Но эти все туториалы элементарны.
Мой вопрос таков: когда я анализирую дамп кучи, я вижу только 3 типа объектов char[], java.lang.String and java.lang.Object[]
, которые покрывают почти всю память (всегда более 70%). Но ни один из моего приложения. И точно так же для дампа потока я увидел запрос HTTP-8080 (порт, который я использую), и это привело меня к Runnable()'s run method or Java Concurrent Package
, а не к какому-либо конкретному коду для моего проекта.
Я также обсудил проблему с некоторыми из моих друзей и проанализировал их приложение (которое не сталкивается с проблемами утечки памяти и производительности), но их результаты почти одинаковы.
Не могли бы вы, ребята, помочь понять, как анализировать дамп кучи и дамп потока в JVisualVM для крупномасштабного приложения? Любое видео, блог, что угодно было бы полезно.
Я использую OpenJDK-11, AWS ECS-Docker и Tomcat в качестве веб-сервера.