Главная » Uncategorized » Виды памяти в Java.

Виды памяти в Java.

https://autofei.wordpress.com/2012/04/12/diagram-for-java-memory-structure-and-garbage-collection/

Вся память для JVM:
— Heap Mem(КУЧА) — хранилище для Джава объектов
— НЕ-Heap-memory(НЕКУЧА) — использ-ся Джавой для хранения загруженных классов
и других мета-данных. Строковый пул, или множество строк в куче?*, etc
— Сам код JVM, внутр структуры JVM, загруженный код агента, данные etc

 

gc_s

в КУЧЕ — две части:New generation и Old generation память.
В New generation: Eden для new Object, два Survivor пространства(from и  to) одного и того же размера- там хранятся выжившие объекты после GC.
в Old generation: тут долгоживущие объекты

 

*???располагается в области памяти, именуемой Java Heap – куча, в которой хранятся все переменные, созданные программно вашим приложением.???

Without configuration, a client JVM uses this calculation for the spaces:

Heap = Tenured + Young
Tenured = 2 x Young
Young = Survivor x 2 + Eden

Итак, память процесса различается на heap (куча) и non-heap (стек) память, и состоит из 5 областей (memory pools, memory spaces):
1• Eden Space (heap) – в этой области выделятся память под все создаваемые из программы объекты. Большая часть объектов живет недолго (итераторы, временные объекты, используемые внутри методов и т.п.), и удаляются при выполнении сборок мусора это области памяти, не перемещаются в другие области памяти. Когда данная область заполняется (т.е. количество выделенной памяти в этой области превышает некоторый заданный процент), GC выполняет быструю (minor collection) сборку мусора. По сравнению с полной сборкой мусора она занимает мало времени, и затрагивает только эту область памяти — очищает от устаревших объектов Eden Space и перемещает выжившие объекты в следующую область.
2• Survivor Space (heap) – сюда перемещаются объекты из предыдущей, после того, как они пережили хотя бы одну сборку мусора. Время от времени долгоживущие объекты из этой области перемещаются в Tenured Space.
3• Tenured (Old) Generation (heap) — Здесь скапливаются долгоживущие объекты (крупные высокоуровневые объекты, синглтоны, менеджеры ресурсов и проч.). Когда заполняется эта область, выполняется полная сборка мусора (full, major collection), которая обрабатывает все созданные JVM объекты.
4• Permanent Generation (non-heap) – Здесь хранится метаинформация, используемая JVM (используемые классы, методы и т.п.). В частноси
5• Code Cache (non-heap) — эта область используется JVM, когда включена JIT-компиляция, в ней кешируется скомпилированный платформенно — зависимый код.
2016-07-10-052407_1198x647_scrotvisual-gc

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s