Бывает так, что при анализе потребления памяти приложения, разные инструменты продьюсят разные данные на первый взгляд противоречащие друг другу. Особенно это касается процессов ОС где задействован нетривиальный рантайм, как например в случае Java.
Доклад о том, как правильно анализировать память Java приложений и на какие вопросы в каких инструментах нужно искать ответы.
Разберем на практическом кейсе как устроена память процесса ОС в рамках физической RAM, как ОС виртуализирует память процессов, и как с этим всем работает JVM со своей стороны. Станет понятно, почему цифры, которые репортят NMT, VisualVM или Jconsole могут отличатся друг от друга. Поговорим о том, почему стандартных RSS, PSS и USS может быть недостаточно, и что с этим делать.