Page 278 - 6253
P. 278

Додаток В


                                                  Heap і Stack пам'ять в Java.





                    Модель пам'яті в java















                    Є два види пам'яті: куча та стек. Куча складається з статичного контексту і

            самої кучі. Має дві частини: нова і стара. Нова куча складається з двух частин: Eden

            (перша) куча; Survival (виживша) куча.

                    Eden  Space  (heap)  –  в  цій  області  виділяють  пам’ять  під  всі  об'єкти,  які

            створюють  в  пам'яті  програми.  Більша  частина  об'єктів  живе  не  довго  (ітератори,

            тимчасові  об'єкти  і  т.д.)  і  знищуються  зборщиком  мусора  цієї  паміті  без

            переміщення в  інші. Коли ця пам’ять переповнюється, то  minor collection виконує

            швидку  зборку  мусору,  це  займає  мало  часу  і  переміщує  застрарілі  об'єкти  в

            наступну область.

                    Survivor Space (heap) – сюди переміщуються ті об'єкти з попередньої пам'яті,

            які  пережили  хоча  б  одну  зборку  мусора.  Час  від  часу  довгоживучі  обєкти

            переміщаються в Tenured (Old) Space.

                    Tenured  (Old)    Generation  (heap)  –  тут  збираються  довгоживучі  обєкти

            (менеджери  ресурсів  і  т.д.).  Коли  тут  все  заповнюється  –  то  виконується  повна

            зборка мусора.

                    Permanent  Generation  (non-heap)  –  тут  зберігається  метаінформація,  яка

            використовується JVM (які класи використовувалися, методи і т.д.).

                    Java  Heap  (купа)  використовується  Java  Runtime  для  виділення  пам'яті  під

            об'єкти і JRE класи.

                    Створення  нового  об'єкта  також  відбувається  в  купі.  Тут  працює  збирач

            сміття: звільняє пам'ять шляхом видалення об'єктів, на які немає жодних посилань.




                                                              277
   273   274   275   276   277   278   279   280   281   282   283