G
enby!

Роман Елизаров — Почему GC съедает все моё CPU?

Подробнее о Java-конференциях: — весной — JPoint: https://jrg.su/gTrwHx
— осенью — Joker: https://jrg.su/h7yvG4
— — . . . . Роман Елизаров — Почему GC съедает все моё CPU? Java-конференция Joker 2014 Санкт-Петербург, 20 - 21 октября 2014 Что делать, если GC потребляет существенную долю ресурсов системы, но профилировщик CPU не показывает узких мест в приложении, а в снимке памяти активных объектов нет ничего необычного? Как такое может быть? Ответ на вопрос, вынесенный в заголовок, очевиден – где-то в приложении выделяется очень много ненужных объектов, которые живут не долго и сразу уходят в мусор. Особенность заключается в том, что выделение памяти происходит очень быстро и не заметно в общей картине потребления CPU. В итоге, во время сборки мусора информация о виновнике, то есть, о том месте в коде, которое собственно выделило этот мусор, уже потеряна. Как же найти эти места в большом приложении? Для решения этой задачи нами в Devexperts был создан специальный инструмент – AProf. Он позволяет учитывать каждое выделение памяти в коде Java-приложения и запоминать достаточно контекстных данных, чтобы, с одной стороны, можно было найти виновника, а, с другой, делать это на целевой, нагруженной платформе, без заметного её замедления. Из доклада вы узнаете не только о том, как с помощью AProf найти все места в коде вашего приложения, которые создают избыточный мусор, но и о том, как AProf устроен.

Смотрите также