Ролики, которые хабровчане годами советуют друг другу в комментариях. Неофициальный проект.
Доклад Андрея Паньгина на конференции Joker 2018 о том, из чего складывается память Java-процесса помимо кучи: метаспейс, стеки потоков, кеш скомпилированного кода, внутренние структуры JVM и нативные буферы. Он объясняет, почему процесс занимает заметно больше, чем задано в -Xmx, и какими инструментами это измерять.
Советуют как глубокий разбор того, почему Java-процессу нужно намного больше памяти, чем размер кучи