Comments 5
Неплохая статья, написанная простым языком.
Но раз это введение, то значит планируется продолжение? Если да, то хотелось бы каких-нибудь примеров утечек памяти из реальной практики. Или как выбрать правильный GC в зависимости от того, какие у меня объекты в программе (например если приложение многопоточное, или очень много мелких маложивущих объектов, или, наоборот, объектов мало, но почти все они тяжёлые синглтоны).
-XX:MetaspaceSize
- минимальный объём памяти для области
Это не так. MetaspaceSize - это порог (a high-water mark), при достижении которого инициируется сборка мусора.
![Расскажите в след как именно располагаются обьекты. Вот например - как понять что за огромный массив? В коде есть массивы - но какой из них где? Расскажите в след как именно располагаются обьекты. Вот например - как понять что за огромный массив? В коде есть массивы - но какой из них где?](https://habrastorage.org/getpro/habr/upload_files/c73/2e8/25e/c732e825e1ba68f87f5d38e8cec0bff2.png)
Спасибо за статью, буду ждать продолжение.
Пара вопросов-замечаний:
Вы пишете, что строковый пул находится в хипе. Но строковый - это лишь один из пулов. Думаю, лучше пояснить, что это касается всех пулов.
На рисунке 3 области Eden, Old и S находятся над хипом, а не в нём, хотя по тексту явно сказано, что эти ребята являются "составляющими хипа". Так что картинка конфузит.
Хорошая статья для новичков, но: есть спицификация JMM - Java Memory Model. Появилась в 5й Java, описывает доступ нескольких потоков к одному объекту. Вот например хорошая статейка: https://devsday.ru/blog/details/818
Что такое Java Process Memory Model - гугл молчит. Нашел статью на русском, полагаю с таким же неверным употреблением: https://coursebook.ru/article/item/6
Поправьте название например на Java Memory Management или структура памяти, иначе сбивает с толку
Введение в Java Process Memory Model