|
|
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Часто люди любят ругаться такими словами. Дайте что-нить почитать, чтоб просветиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2014, 01:21 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2014, 06:17 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
bulle_anОставшиеся после работы Garbage Collector объекты перемещаются из поколения Youth в Tenured , а затем в Permanent .Откуда вы это взяли? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2014, 11:02 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
DEVcoach bulle_anОставшиеся после работы Garbage Collector объекты перемещаются из поколения Youth в Tenured, а затем в Permanent. Откуда вы это взяли? :-) DEVcoach, Согласен, все это сильное упрощение, которое может быть не совсем точным. Единственно верный ответ вы найдете в исходниках OpenJDK . Небольшая ремарка - в Permanent Generation располагаются те данные, на которые ссылаются в протяжении всего времени работы приложения. Те классы, которые загружены базовым загрузчиком, загрузчиком расширений и системным. Определения всех классов приложения, в том числе и классов самой JVM - имена классов, информация о пуле констант, массивы объектов и массивы типов, ассоциированных с классом, внутренние объекты, создаваемые JVM , информация используемая для оптимизации. Статические члены, код методов (статических и не статических). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2014, 13:28 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
bulle_anСогласен, все это сильное упрощение, которое может быть не совсем точным. И не только "не совсем точным", но и наглухо не верным. PermGen служит другим задачам, а не подбирает объекты после Tenured. bulle_anЕдинственно верный ответ вы найдете в исходниках OpenJDK Это тоже в корне не верно. Поведение GC в Oracle JVM достаточно не плохо документировано. При чем тут OpenJDK, не совсем понятно. bulle_anНебольшая ремарка - в Permanent Generation располагаются те данные, на которые ссылаются в протяжении всего времени работы приложения. Смотря что называть "приложением". В любом случае это заблуждение. Классы их PermGen можно выгружать. bulle_anТе классы, которые загружены базовым загрузчиком, загрузчиком расширений и системным. Определения всех классов приложения, в том числе и классов самой JVM - имена классов, информация о пуле констант, массивы объектов и массивы типов, ассоциированных с классом, внутренние объекты, создаваемые JVM , информация используемая для оптимизации. Статические члены, код методов (статических и не статических). Слишком много своих домыслов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2014, 16:14 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
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 они появятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2014, 16:33 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Blazkowiczbulle_anСогласен, все это сильное упрощение, которое может быть не совсем точным. И не только "не совсем точным", но и наглухо не верным. PermGen служит другим задачам, а не подбирает объекты после Tenured. bulle_anЕдинственно верный ответ вы найдете в исходниках OpenJDK Это тоже в корне не верно. Поведение GC в Oracle JVM достаточно не плохо документировано. При чем тут OpenJDK, не совсем понятно. bulle_anНебольшая ремарка - в Permanent Generation располагаются те данные, на которые ссылаются в протяжении всего времени работы приложения. Смотря что называть "приложением". В любом случае это заблуждение. Классы их PermGen можно выгружать. bulle_anТе классы, которые загружены базовым загрузчиком, загрузчиком расширений и системным. Определения всех классов приложения, в том числе и классов самой JVM - имена классов, информация о пуле констант, массивы объектов и массивы типов, ассоциированных с классом, внутренние объекты, создаваемые JVM , информация используемая для оптимизации. Статические члены, код методов (статических и не статических). Слишком много своих домыслов. Спасибо за информацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2014, 17:26 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторHeap она же "куча" это способ управлять памятью. Тривиальный способ работы с объектами в С++, например, - выделить память, записать туда состояние объекта. После использования вызвать деструктор и освободить память. Этот подход является очень медленным. Резервировать и освобождать память на каждый объект отдельно - очень затратно для большого числа объектов. Поэтому альтернативным подходом является "куча". В C++ тоже есть куча. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2014, 14:20 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪВ C++ тоже есть куча. Я где-то утверждал что её там нет? В С++, помимо тривиального, доступны разные способы управления памятью для объектов. В том числе и "куча". А что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2014, 14:26 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПоэтому альтернативным подходом является "куча". Это зарезервированная под объекты область памяти процесса, которая управляется каким-то отдельным под-процессом. Всю жизнь под кучей (heap) понимал кусок памяти в котором в произвольном порядке находятся (могут находиться) разнородные объекты. Когда успело смениться определение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2014, 14:32 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевBlazkowiczПоэтому альтернативным подходом является "куча". Это зарезервированная под объекты область памяти процесса, которая управляется каким-то отдельным под-процессом. Всю жизнь под кучей (heap) понимал кусок памяти в котором в произвольном порядке находятся (могут находиться) разнородные объекты. Когда успело смениться определение? Оно точно так же притянуто за уши как и ваше и на документальность не претендует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2014, 14:37 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Я в том смысле, что способ хранения куча, стек, область программы и т.п. - вещи перпендикулярные необходимости выделять память и ее освобождать. Меняется только способ реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2014, 14:43 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевЯ в том смысле, что способ хранения куча, стек, область программы и т.п. - вещи перпендикулярные необходимости выделять память и ее освобождать. Меняется только способ реализации. Вы как-то не так интерпретировали мой коментарий и сами исправляете свою интерпретацию. Я нигде не писал что куча отменяет надобность выделять память. Есть тривиальный способ выделения памяти перед созданием объекта. И освобождением её после использования объекта. А есть куча - выделение некоторой области памяти заранее под будущие объекты. По-моему это логично и очевидно. Почему вдруг вы решили что наличие кучи вдруг как-то отменяет выделение памяти, мне не понятно. Если с каким-то конкретным тезисом не согласны, так хотя бы цитировали его. Потому что в этой цитате авторПоэтому альтернативным подходом является "куча". Это зарезервированная под объекты область памяти процесса, которая управляется каким-то отдельным под-процессом. Я как-то ошибок не наблюдаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2014, 14:52 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz Этот подход является очень медленным. Резервировать и освобождать память на каждый объект отдельно - очень затратно для большого числа объектов. Поэтому альтернативным подходом является "куча". Это чьи слова? Правильнее IMHO алтернативным подходом является куча, которая управляется каким-то отдельным под-процессом , если брать Ваши слова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2014, 15:31 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевBlazkowicz Этот подход является очень медленным. Резервировать и освобождать память на каждый объект отдельно - очень затратно для большого числа объектов. Поэтому альтернативным подходом является "куча". Это чьи слова? Ошибка в чем? Сергей Арсеньев Правильнее IMHO алтернативным подходом является куча, которая управляется каким-то отдельным под-процессом , если брать Ваши слова. М-да. Проехали. Мне вас не понять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2014, 15:45 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОшибка в чем? Куча способ расположения данных в памяти, он не может противопоставляться способу выделения/освобожения места в памяти (в той же куче). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2014, 16:38 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
PermGen ныне модно называть Metaspace. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2014, 10:49 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, начиная с java 8 - PermGen исчез :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2014, 13:54 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Atum1, нет - его переименовали и ввели другие умолчания. :) И да - теперь он может уменьшаться. А главное преимущество Metadata space это - Enable future improvements that were limited by PermGen. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2014, 18:31 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, главное что утечки класслоудеров теперь спрятали :) раньше текли в ограниченном объеме ,который и назывался Permanent Generation, а теперь текут в хипе , где памяти больше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 09:21 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Atum1раньше текли в ограниченном объеме ,который и назывался Permanent Generation, а теперь текут в хипе , где памяти больше :) Нет. Не в хипе, а в metaspace, который вне хипа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2014, 09:26 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Прочитал статью: 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 Но ничего не написано по предназначение кадждого из сборщиков мусора. Подразумевается, что каждый из них придуман для своей корневой точки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 11:37 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
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 и является самым "производительным". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 11:49 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, ок. по алгоритмам прошлись. А используется какой? выбирается в runtime или зависит от версии jvm или ещё как-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 11:55 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
и кстати tenured это новое название old generation? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 12:06 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 12:13 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
redwhite90и кстати tenured это новое название old generation? Во-первых назавание не новое совсем. http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html Во-вторых, грубо-говоря, да. Но точные названия могут отличатся в разных алгоритмах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 12:17 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо, с этим разобрались. Ещё такой вопрос: С точки зрения GC память делится на young generation old/tenured generation permgen/metaspace С точки зрения способа и хранения и соответствия внешнему источнику(RAM, жёсткий диск...) данных(чувствую, что неправильно выразился - поправьте пожалуйста) память можно поделить на: heap stack Есть ли связь между этими классификациями? я вот из ваших первых ответов вижу пока только: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 12:41 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо, с этим разобрались. Ещё такой вопрос: С точки зрения GC память делится на young generation old/tenured generation permgen/metaspace С точки зрения способа и хранения и соответствия внешнему источнику(RAM, жёсткий диск...) данных(чувствую, что неправильно выразился - поправьте пожалуйста) память можно поделить на: heap stack Есть ли связь между этими классификациями? я вот из ваших первых ответов вижу пока только: BlazkowiczPermGen - особая область кучи, для хранение объектов, которые вряд ли придется удалять. К таким объектам относятся классы, загрузчики и пул строковых констант. что про авторold/tenured generation permgen/metaspace ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 12:42 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
redwhite90С точки зрения GC память делится на young generation old/tenured generation permgen/metaspace Это сегментирование кучи, а не памяти. Если называть вещи конктреными именами, а не обобщеными, то в этих классификациях появится смысл. redwhite90С точки зрения способа и хранения и соответствия внешнему источнику(RAM, жёсткий диск...) данных(чувствую, что неправильно выразился - поправьте пожалуйста) память можно поделить на: При чем здесь Java? redwhite90heap stack Что с ними? redwhite90Есть ли связь между этими классификациями? они все имеют отношение к компьютерам и слову "память"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 12:45 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторЭто сегментирование кучи, а не памяти. Ок. а GC чистит только heap получается? авторЕсли называть вещи конктреными именами, а не обобщеными, то в этих классификациях появится смысл. назовите пожалуйста эти конкретные имена;) не совсем понял о чем речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 12:49 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
redwhite90Ок. а GC чистит только heap получается? Ну, да. Только не понятно как теперь metaspace очищается. Он, ведь, вне кучи. redwhite90назовите пожалуйста эти конкретные имена;) не совсем понял о чем речь. Мне тоже сложно понять о чем речь, когда с разговора о сегментировании кучи приплетается вопрос о разделении панями на оперативную и постоянную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 12:57 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
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 авторМне тоже сложно понять о чем речь, когда с разговора о сегментировании кучи приплетается вопрос о разделении панями на оперативную и постоянную. Я просто не знал, что это сегментирование кучи) Теперь знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 13:04 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
redwhite90, redwhite90Новое слово native heap space* ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 15:58 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
ну всмысле а они называют это native heap. Как интересно теперь называть обычный heap чтобы не запутаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 16:06 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
redwhite90ну всмысле а они называют это native heap. Как интересно теперь называть обычный heap чтобы не запутаться. Java Heap ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 16:07 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Тупой вопрос, а что такое "native heap" ? Что понимается под "native", в смысле, вместо GC, работают через обычные C-ные malloc/free ? Нафига ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 16:17 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevТупой вопрос, а что такое "native heap" ? Что понимается под "native", в смысле, вместо GC, работают через обычные C-ные malloc/free ? Нафига ? Чтобы хранить там служебные данные JVM, которые в Java куче хранить смысла нет. Во-первых потому-что пользовательский код их слабо контролирует. Во-вторых потому что наличие их в Java куче сказывается на производительность. И в-третих потому что нативную кучу проще увеличивать, чем Java heap. Во что это выльется со временем, сказать сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 16:23 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, ещё вопросик: BlazkowiczПоэтому был разработан новый алогоритм G1 - который сегментирует кучу и позволяет делать сборку в отдельных сегментах. То есть до появления этого алгоритма не было такиз понятий как Old/young generation и permgen? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 13:16 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
redwhite90BlazkowiczПоэтому был разработан новый алогоритм G1 - который сегментирует кучу и позволяет делать сборку в отдельных сегментах. То есть до появления этого алгоритма не было такиз понятий как Old/young generation и permgen? Нет. Возможно, я не достаточно точно выразился. Сегментация кучи на поколения, существовала ещё в Java 1.3. Про более ранние версии не скажу точно. G1 сегментирует кучу на карты (cards), позволяя сканировать отдельные карты на предмет объектов, которые нужно переместить. Таким образом нет необходимости сканировать ВСЕ живые объекты в куче, как это делают другие алгоритмые в случае полной сборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 13:26 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, ааа, карты - про них читал. а не расскажете с какой целью вообще изначально была введена сегментация на поколения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 13:29 |
|
||
|
хип, пермген, стек. Что это ?
|
|||
|---|---|---|---|
|
#18+
redwhite90а не расскажете с какой целью вообще изначально была введена сегментация на поколения? С тем что логично предположить что долгоживущие объекты будут жить ещё долго и их сканировать нужно только в случае крайней необходимости. А молодые объекты с большой долей вероятности скоро умрут, поэтому есть смысл их просканировать в первую очередь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 13:38 |
|
||
|
|

start [/forum/search_topic.php?author=_program_seeker&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 568ms |
| total: | 866ms |

| 0 / 0 |
