powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / хип, пермген, стек. Что это ?
47 сообщений из 47, показаны все 2 страниц
хип, пермген, стек. Что это ?
    #38664525
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Часто люди любят ругаться такими словами. Дайте что-нить почитать, чтоб просветиться.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38664557
bulle_an
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
redwhite90,

Heap - динамически распредляемая область памяти, создаваемая при старте JVM .

Garbage Collector , использующий алгоритм на основе поколений, делит динамически распредляемую память на три - Youth Generation , Tenured Generation , Permanent Generation . Youth Generation делится на Eden Generation две области Survivor Generation . Permanent Generation ( Metaspace в Java 8 ) - соответственно, одна из областей динамически распредляемой памяти, содержащая неудаляемые данные, например, метаданные о создаваемых объектах ( "перманентный" - продолжающийся непрерывно; постоянный). Оставшиеся после работы Garbage Collector объекты перемещаются из поколения Youth в Tenured , а затем в Permanent .

Стек хранит ссылки на объекты, расположен в RAM и доступен процессору через указатель стека.

Почитать можно следующие книги, например:

http://www.amazon.com/Java-Performance-Definitive-Scott-Oaks/dp/1449358454/ref=sr_1_1?s=books&ie=UTF8&qid=1402192373&sr=1-1&keywords=Garbage+Collection+JVM]" Java Performance: The Definitive Guide" by Scott Oaks
http://www.amazon.com/Java-Performance-Charlie-Hunt/dp/0137142528/ref=sr_1_2?s=books&ie=UTF8&qid=1402192373&sr=1-2&keywords=Garbage+Collection+JVM] Java Performance by Charlie Hunt, Binu John
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38664582
DEVcoach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bulle_anОставшиеся после работы Garbage Collector объекты перемещаются из поколения Youth в Tenured , а затем в Permanent .Откуда вы это взяли? :-)
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38664606
bulle_an
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DEVcoach bulle_anОставшиеся после работы Garbage Collector объекты перемещаются из поколения Youth в Tenured, а затем в Permanent.
Откуда вы это взяли? :-) DEVcoach,

Согласен, все это сильное упрощение, которое может быть не совсем точным. Единственно верный ответ вы найдете в исходниках OpenJDK .

Небольшая ремарка - в Permanent Generation располагаются те данные, на которые ссылаются в протяжении всего времени работы приложения. Те классы, которые загружены базовым загрузчиком, загрузчиком расширений и системным. Определения всех классов приложения, в том числе и классов самой JVM - имена классов, информация о пуле констант, массивы объектов и массивы типов, ассоциированных с классом, внутренние объекты, создаваемые JVM , информация используемая для оптимизации. Статические члены, код методов (статических и не статических).
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38664657
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bulle_anСогласен, все это сильное упрощение, которое может быть не совсем точным.

И не только "не совсем точным", но и наглухо не верным. PermGen служит другим задачам, а не подбирает объекты после Tenured.

bulle_anЕдинственно верный ответ вы найдете в исходниках OpenJDK

Это тоже в корне не верно. Поведение GC в Oracle JVM достаточно не плохо документировано. При чем тут OpenJDK, не совсем понятно.

bulle_anНебольшая ремарка - в Permanent Generation располагаются те данные, на которые ссылаются в протяжении всего времени работы приложения.
Смотря что называть "приложением". В любом случае это заблуждение. Классы их PermGen можно выгружать.

bulle_anТе классы, которые загружены базовым загрузчиком, загрузчиком расширений и системным. Определения всех классов приложения, в том числе и классов самой JVM - имена классов, информация о пуле констант, массивы объектов и массивы типов, ассоциированных с классом, внутренние объекты, создаваемые JVM , информация используемая для оптимизации. Статические члены, код методов (статических и не статических).
Слишком много своих домыслов.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38664661
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Часто люди любят ругаться такими словами. Дайте что-нить почитать, чтоб просветиться.
http://www.oracle.com/technetwork/java/javase/memorymanagement-whitepaper-150215.pdf
Вот подборка отличных статей для Hotspot
http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140228.html

Heap она же "куча" это способ управлять памятью. Тривиальный способ работы с объектами в С++, например, - выделить память, записать туда состояние объекта. После использования вызвать деструктор и освободить память. Этот подход является очень медленным. Резервировать и освобождать память на каждый объект отдельно - очень затратно для большого числа объектов.
Поэтому альтернативным подходом является "куча". Это зарезервированная под объекты область памяти процесса, которая управляется каким-то отдельным под-процессом. В случае Java это JVM и её GC. С одной стороны по памяти накладно резервировать сразу большое количество. Зато это даёт хороший прирост производительности. Удаление объектов, например, не стоит почти ничего.

PermGen - особая область кучи, для хранение объектов, которые вряд ли придется удалять. К таким объектам относятся классы, загрузчики и пул строковых констант.

Стек - это такая структура данных ( http://en.wikipedia.org/wiki/LIFO_(computing)). Последний кто попадёт в стек выйдет из него перым. Через стек организована работа процедурных языков. Каждая процедура имеет свои переменные, и вызывает другие процедуры. Переменные, которые принадлежат процедурам, хранятся в стеке. То есть, для того чтобы вызвать другую процедуру, нужно где-то сохранить свои переменные, вызвать под-процедуру, а по выходу из неё как-то восстановить состояние. Так как вызовы под-процедур могут иметь большую вложенность, то очень удобно хранить состояние каждой под-процедуры в стеке. А при выходе из процедуры, восстанавливать переменные из стэка.

Java в стеке хранит только локальные переменные. За что её часто критикуют. C#, например, изначально позволяет хранить на стеке структуры данных. Недавно прошла инфа о том что возможность добавления структур в Java изучается. И есть шанс что в Java 9 они появятся.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38664672
bulle_an
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczbulle_anСогласен, все это сильное упрощение, которое может быть не совсем точным.

И не только "не совсем точным", но и наглухо не верным. PermGen служит другим задачам, а не подбирает объекты после Tenured.

bulle_anЕдинственно верный ответ вы найдете в исходниках OpenJDK
Это тоже в корне не верно. Поведение GC в Oracle JVM достаточно не плохо документировано. При чем тут OpenJDK, не совсем понятно.
bulle_anНебольшая ремарка - в Permanent Generation располагаются те данные, на которые ссылаются в протяжении всего времени работы приложения.
Смотря что называть "приложением". В любом случае это заблуждение. Классы их PermGen можно выгружать.
bulle_anТе классы, которые загружены базовым загрузчиком, загрузчиком расширений и системным. Определения всех классов приложения, в том числе и классов самой JVM - имена классов, информация о пуле констант, массивы объектов и массивы типов, ассоциированных с классом, внутренние объекты, создаваемые JVM , информация используемая для оптимизации. Статические члены, код методов (статических и не статических).
Слишком много своих домыслов.

Спасибо за информацию.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38665337
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
авторHeap она же "куча" это способ управлять памятью. Тривиальный способ работы с объектами в С++, например, - выделить память, записать туда состояние объекта. После использования вызвать деструктор и освободить память. Этот подход является очень медленным. Резервировать и освобождать память на каждый объект отдельно - очень затратно для большого числа объектов.
Поэтому альтернативным подходом является "куча".
В C++ тоже есть куча.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38665345
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪВ C++ тоже есть куча.
Я где-то утверждал что её там нет? В С++, помимо тривиального, доступны разные способы управления памятью для объектов. В том числе и "куча". А что?
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38665353
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczПоэтому альтернативным подходом является "куча". Это зарезервированная под объекты область памяти процесса, которая управляется каким-то отдельным под-процессом.
Всю жизнь под кучей (heap) понимал кусок памяти в котором в произвольном порядке находятся (могут находиться) разнородные объекты. Когда успело смениться определение?
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38665359
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевBlazkowiczПоэтому альтернативным подходом является "куча". Это зарезервированная под объекты область памяти процесса, которая управляется каким-то отдельным под-процессом.
Всю жизнь под кучей (heap) понимал кусок памяти в котором в произвольном порядке находятся (могут находиться) разнородные объекты. Когда успело смениться определение?
Оно точно так же притянуто за уши как и ваше и на документальность не претендует.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38665363
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Я в том смысле, что способ хранения куча, стек, область программы и т.п. - вещи перпендикулярные необходимости выделять память и ее освобождать. Меняется только способ реализации.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38665372
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевЯ в том смысле, что способ хранения куча, стек, область программы и т.п. - вещи перпендикулярные необходимости выделять память и ее освобождать. Меняется только способ реализации.
Вы как-то не так интерпретировали мой коментарий и сами исправляете свою интерпретацию. Я нигде не писал что куча отменяет надобность выделять память.
Есть тривиальный способ выделения памяти перед созданием объекта. И освобождением её после использования объекта. А есть куча - выделение некоторой области памяти заранее под будущие объекты. По-моему это логично и очевидно. Почему вдруг вы решили что наличие кучи вдруг как-то отменяет выделение памяти, мне не понятно. Если с каким-то конкретным тезисом не согласны, так хотя бы цитировали его. Потому что в этой цитате

авторПоэтому альтернативным подходом является "куча". Это зарезервированная под объекты область памяти процесса, которая управляется каким-то отдельным под-процессом.
Я как-то ошибок не наблюдаю.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38665410
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz Этот подход является очень медленным. Резервировать и освобождать память на каждый объект отдельно - очень затратно для большого числа объектов.
Поэтому альтернативным подходом является "куча".
Это чьи слова?

Правильнее IMHO алтернативным подходом является куча, которая управляется каким-то отдельным под-процессом , если брать Ваши слова.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38665422
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевBlazkowicz Этот подход является очень медленным. Резервировать и освобождать память на каждый объект отдельно - очень затратно для большого числа объектов.
Поэтому альтернативным подходом является "куча".
Это чьи слова?
Ошибка в чем?

Сергей Арсеньев Правильнее IMHO алтернативным подходом является куча, которая управляется каким-то отдельным под-процессом , если брать Ваши слова.
М-да. Проехали. Мне вас не понять.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38665497
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczОшибка в чем?
Куча способ расположения данных в памяти, он не может противопоставляться способу выделения/освобожения места в памяти (в той же куче).
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38665795
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38666033
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,

http://habrahabr.ru/post/112676/

тут с картинками :)
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38666043
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PermGen ныне модно называть Metaspace.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38666333
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев,

начиная с java 8 - PermGen исчез :)
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38666771
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,

нет - его переименовали и ввели другие умолчания. :)
И да - теперь он может уменьшаться.
А главное преимущество Metadata space это - Enable future improvements that were limited by PermGen.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38667122
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев,

главное что утечки класслоудеров теперь спрятали :) раньше текли в ограниченном объеме ,который и назывался Permanent Generation, а теперь текут в хипе , где памяти больше :)
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38667127
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1раньше текли в ограниченном объеме ,который и назывался Permanent Generation, а теперь текут в хипе , где памяти больше :)
Нет. Не в хипе, а в metaspace, который вне хипа.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781590
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прочитал статью: http://ggenikus.github.io/blog/2014/05/04/gc/

На вопрос как GC обнаруживате мусор ответ такой?

Там написано,что JVM использует Tracing подход для очистки памяти. И есть 4 корневых точки:

http://ggenikus.github.io/blog/2014/05/04/gc/ Локальные переменные и параметры методов
Java Потоки
Статические переменные
Ссылки из JNI

Как GC очищает память от мусора?

http://ggenikus.github.io/blog/2014/05/04/gc/ Сборщики мусора HotSpot VM используют подход “Generational Garbage Collection”
...
В HotSpot VM реализовано четыре сборщика мусора основанных на идее “Generational Garbage Collection”:
Serial GC
Parallel GC
CMS GC
G1 GC

Но ничего не написано по предназначение кадждого из сборщиков мусора.

Подразумевается, что каждый из них придуман для своей корневой точки?
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781609
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Но ничего не написано по предназначение кадждого из сборщиков мусора.
Подразумевается, что каждый из них придуман для своей корневой точки?
Нет. Это разные алгоритмы, каждый со своими плюсами и минусами.
https://blogs.oracle.com/jonthecollector/entry/our_collectors
Serial - самый старый способ сборки мусора. Он однопоточный. Его проблема в огромных паузах, когда JVM останавливает все свои потоки для сборки мусора. При этом он является самым высокопроизводительным. Не плохо подходит для задач массовой обработки.
Длинные паузы (stop-the-world) в JVM это большая проблема как для GUI, так и для серверных приложений. Поэтому следующим шагом стала разработка алгоритмов для уменьшения этих пауз.
Parallel - это тот же алгоритм что и Serial, но оптимизированый для многопоточного выполнения - больше потоков работает - короче пауза.
CMS - это более новый алгоритм, который позволяет свести паузы к минимуму или даже избавится от них в определенных условиях.
Основная проблема CMS и остальных алгоритмов в том что они сканируют все живые объекты. И это становится нереально тяжелым процессом, когда живых объектов в JVM 4Гб и более.
Поэтому был разработан новый алогоритм G1 - который сегментирует кучу и позволяет делать сборку в отдельных сегментах. Тем самым влияние размера кучи и количество живых объектов на паузы уменьшает.

Каждый же новый алгоритм GC является более сложным, что приводит к дополнительному уменьшению производительности. Поэтому-то serial и является самым "производительным".
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781618
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

ок. по алгоритмам прошлись. А используется какой? выбирается в runtime или зависит от версии jvm или ещё как-то?
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781642
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и кстати tenured это новое название old generation?
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781653
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90ок. по алгоритмам прошлись. А используется какой? выбирается в runtime или зависит от версии jvm или ещё как-то?
Ну, либо алгоритм задаётся параметрами. Либо выбирается в зависимости от версии, размера кучи, серверной\клиентской JVM и пр.
Например вот:
http://www.techpaste.com/2012/02/20/default-jvm-settings-gc-jit-java-heap-sizes-xms-xmx-operating-systems/#more-3569
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781655
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90и кстати tenured это новое название old generation?
Во-первых назавание не новое совсем.
http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
Во-вторых, грубо-говоря, да. Но точные названия могут отличатся в разных алгоритмах.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781688
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

спасибо, с этим разобрались.

Ещё такой вопрос:

С точки зрения GC память делится на

young generation
old/tenured generation
permgen/metaspace

С точки зрения способа и хранения и соответствия внешнему источнику(RAM, жёсткий диск...) данных(чувствую, что неправильно выразился - поправьте пожалуйста) память можно поделить на:

heap
stack



Есть ли связь между этими классификациями?

я вот из ваших первых ответов вижу пока только:
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781691
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

спасибо, с этим разобрались.

Ещё такой вопрос:

С точки зрения GC память делится на

young generation
old/tenured generation
permgen/metaspace

С точки зрения способа и хранения и соответствия внешнему источнику(RAM, жёсткий диск...) данных(чувствую, что неправильно выразился - поправьте пожалуйста) память можно поделить на:

heap
stack



Есть ли связь между этими классификациями?

я вот из ваших первых ответов вижу пока только:

BlazkowiczPermGen - особая область кучи, для хранение объектов, которые вряд ли придется удалять. К таким объектам относятся классы, загрузчики и пул строковых констант.

что про
авторold/tenured generation
permgen/metaspace
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781699
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90С точки зрения GC память делится на
young generation
old/tenured generation
permgen/metaspace

Это сегментирование кучи, а не памяти. Если называть вещи конктреными именами, а не обобщеными, то в этих классификациях появится смысл.

redwhite90С точки зрения способа и хранения и соответствия внешнему источнику(RAM, жёсткий диск...) данных(чувствую, что неправильно выразился - поправьте пожалуйста) память можно поделить на:

При чем здесь Java?

redwhite90heap
stack

Что с ними?

redwhite90Есть ли связь между этими классификациями?

они все имеют отношение к компьютерам и слову "память"?
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781705
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

авторЭто сегментирование кучи, а не памяти.
Ок. а GC чистит только heap получается?

авторЕсли называть вещи конктреными именами, а не обобщеными, то в этих классификациях появится смысл.

назовите пожалуйста эти конкретные имена;) не совсем понял о чем речь.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781713
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Ок. а GC чистит только heap получается?

Ну, да. Только не понятно как теперь metaspace очищается. Он, ведь, вне кучи.

redwhite90назовите пожалуйста эти конкретные имена;) не совсем понял о чем речь.
Мне тоже сложно понять о чем речь, когда с разговора о сегментировании кучи приплетается вопрос о разделении панями на оперативную и постоянную.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781728
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczredwhite90Ок. а GC чистит только heap получается?

Ну, да. Только не понятно как теперь metaspace очищается. Он, ведь, вне кучи.


Собственно да, поэтому я и спросил. Говорят, что metaspace is garbage collected.( http://stackoverflow.com/a/24075360/2674303)

https://blogs.oracle.com/poonam/entry/about_g1_garbage_collector_permanent In JDK 8, classes metadata is now stored in the native heap and this space is called Metaspace.

Новое слово native heap

авторМне тоже сложно понять о чем речь, когда с разговора о сегментировании кучи приплетается вопрос о разделении панями на оперативную и постоянную.

Я просто не знал, что это сегментирование кучи) Теперь знаю.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781975
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот кстати картинка по теме:

...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38781997
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
redwhite90,

redwhite90Новое слово native heap
space*
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38782007
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну всмысле а они называют это native heap.


Как интересно теперь называть обычный heap чтобы не запутаться.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38782010
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90ну всмысле а они называют это native heap.
Как интересно теперь называть обычный heap чтобы не запутаться.
Java Heap
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38782029
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тупой вопрос, а что такое "native heap" ? Что понимается под "native", в смысле, вместо GC, работают через обычные C-ные malloc/free ? Нафига ?
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38782041
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38782042
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevТупой вопрос, а что такое "native heap" ? Что понимается под "native", в смысле, вместо GC, работают через обычные C-ные malloc/free ? Нафига ?
Чтобы хранить там служебные данные JVM, которые в Java куче хранить смысла нет. Во-первых потому-что пользовательский код их слабо контролирует. Во-вторых потому что наличие их в Java куче сказывается на производительность. И в-третих потому что нативную кучу проще увеличивать, чем Java heap.
Во что это выльется со временем, сказать сложно.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38785293
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
ещё вопросик:
BlazkowiczПоэтому был разработан новый алогоритм G1 - который сегментирует кучу и позволяет делать сборку в отдельных сегментах.

То есть до появления этого алгоритма не было такиз понятий как Old/young generation и permgen?
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38785311
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90BlazkowiczПоэтому был разработан новый алогоритм G1 - который сегментирует кучу и позволяет делать сборку в отдельных сегментах.
То есть до появления этого алгоритма не было такиз понятий как Old/young generation и permgen?
Нет. Возможно, я не достаточно точно выразился.
Сегментация кучи на поколения, существовала ещё в Java 1.3. Про более ранние версии не скажу точно.
G1 сегментирует кучу на карты (cards), позволяя сканировать отдельные карты на предмет объектов, которые нужно переместить. Таким образом нет необходимости сканировать ВСЕ живые объекты в куче, как это делают другие алгоритмые в случае полной сборки.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38785315
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
ааа, карты - про них читал.


а не расскажете с какой целью вообще изначально была введена сегментация на поколения?
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38785335
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90а не расскажете с какой целью вообще изначально была введена сегментация на поколения?
С тем что логично предположить что долгоживущие объекты будут жить ещё долго и их сканировать нужно только в случае крайней необходимости.
А молодые объекты с большой долей вероятности скоро умрут, поэтому есть смысл их просканировать в первую очередь.
...
Рейтинг: 0 / 0
хип, пермген, стек. Что это ?
    #38785411
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще можно применять разные алгоритмы. Например копирующие алгоритмы работают очень быстро при условии, что большинство объектов уже не нужно.
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / хип, пермген, стек. Что это ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]