Информация об изменениях

Сообщение Re[47]: gc vs умелые руки от 15.10.2016 13:15

Изменено 15.10.2016 13:17 Evgeny.Panasyuk

Здравствуйте, ·, Вы писали:

EP>>·>Собственно прибавление указателя это и есть способ аллокации в java.

EP>>И ты конечно же понимаешь что это полуправда. Вот только непонятно на кого рассчитанная
EP>>Ибо в данном варианте деалокация практически бесплатная, а в случае GC сборка муссора неимоверно дорогая
·>Сборка мусора она разная бывает. Тут уже упоминали поколения. Сборка молодого поколения практически бесплатна.

Ты видимо не понимаешь что означает "практически бесплатная" деалокация в случае регионов — там за одну простейшую/примитивнейшею O(1) операцию убивается сразу N аллокаций. Никакого обхода живых объектов, никаких отслеживаний изменений старых поколений и прочих page faults.
В этой свете высказывание "·>Сборка молодого поколения практически бесплатна" — это

·>А ещё есть два региона survival space, который например с fragmentation борется.

·>В общем, посоветую тебе почитать подробности про устройство современного gc (разных видов) — увидишь много чего похожего с теми "секретными ингридиентами" в управлении C++ памятью, и уверен что откроешь себе ещё пару интересных идей.

Я читал про устройство самых разных GC, в том числе статьи упомянутых Azul, и даже сам реализовывал копирующий GC. Нет там нигде и близко практически "бесплатной сборки"
Здравствуйте, ·, Вы писали:

EP>>·>Собственно прибавление указателя это и есть способ аллокации в java.

EP>>И ты конечно же понимаешь что это полуправда. Вот только непонятно на кого рассчитанная
EP>>Ибо в данном варианте деалокация практически бесплатная, а в случае GC сборка муссора неимоверно дорогая
·>Сборка мусора она разная бывает. Тут уже упоминали поколения. Сборка молодого поколения практически бесплатна.

Ты видимо не понимаешь что означает "практически бесплатная" деалокация в случае регионов — там за одну простейшую/примитивнейшею O(1) операцию убивается сразу N аллокаций. Никакого обхода живых объектов, никаких отслеживаний изменений старых поколений и прочих page faults.
В этой свете высказывание "·>Сборка молодого поколения практически бесплатна" — это

·>А ещё есть два региона survival space, который например с fragmentation борется.

·>В общем, посоветую тебе почитать подробности про устройство современного gc (разных видов) — увидишь много чего похожего с теми "секретными ингридиентами" в управлении C++ памятью, и уверен что откроешь себе ещё пару интересных идей.

Я читал про устройство самых разных GC, в том числе статьи упомянутых Azul, и даже сам реализовывал копирующий GC. Нет там нигде и близко практически "практически бесплатной" сборки