LINUX.ORG.RU
ФорумTalks

Почему у явы такой хреновый GC?


0

0

Почему это я должен ему руками указывать объём кучи? Я ещё понимаю, для сервера с одним-единственным жабопроцессом такое, и то несколько странно это, но уж для десктопа - жуть. Это и есть ваша технология будущего?

Для сравнения, в OCaml сборщик грамотно разделяет объекты на долго- и короткоживущие и грамотно минимизирует используемый объём памяти, а видимых задержек добиться мне так и не удалось.

anonymous

Для сравнения - у OCaml гораздо меньше разнообразие типичной нагрузки на GC. На Java же все пишут кто во что горазд, и потому требуется тонкая настройка GC. Жабский GC можно привести и к тому же в точности виду, который идёт в OCaml, так что если тебе этого и надо - используй такие настройки по умолчанию.

anonymous
()
Ответ на: комментарий от anonymous

> Для сравнения - у OCaml гораздо меньше разнообразие типичной нагрузки на GC.

Ещё один гвоздь в крышку многоязыковых VM.

> Жабский GC можно привести и к тому же в точности виду, который идёт в OCaml.

КАК???

anonymous
()
Ответ на: комментарий от anonymous

> Ещё один гвоздь в крышку многоязыковых VM.

Наличие возможности тонкой оптимизации - никак не "гвоздь в крышку". У Окамла то и такой возможности нет.

> КАК???

http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html

Для нагрузки, типичной для функциональных языков, надо поднять размер young generation (до 16к, например, это как в OCaml). Ну и включить XX:+CMSIncrementalMode

У IBM-овской JVM ещё больше возможностей для тонкой настройки.

anonymous
()

Тут скорее дело в том, что GC с быдлоимперативщиной плохо сочетается.

anonymous
()
Ответ на: комментарий от anonymous

Да нет, неплохо. Проблема в том, что невозможно заранее предсказать, какой будет структура нагрузки, потому это и оставляют на откуп пользователю и профайлерам. Динамически менять настройки GC пока не научились (да и, боюсь, это невозможно теоретически).

anonymous
()
Ответ на: комментарий от anonymous

тащи гвозди для крышек гробов компиляторов с промежуточным представлением (ака любых современных компиляторов)- они позволяют себе транслировать кучу языков в ассемблер единственной архитектуры

anonymous
()
Ответ на: комментарий от anonymous

Компиляторы не навязывают тебе свой GC.

anonymous
()

>Почему это я должен ему руками указывать объём кучи? Я ещё понимаю, для сервера с одним-единственным жабопроцессом такое, и то несколько странно это, но уж для десктопа - жуть. Это и есть ваша технология будущего?

Тебя что, кто-то насильно заставляет указывать объем кучи? Укажи нам этого дядю.

Не понимаю, никогда не указывал java объем кучи

anonymous
()

>в OCaml сборщик грамотно разделяет объекты на долго- и короткоживущие

Я бы посовтетовал лучше ознакомится с предметом и узнать что "Поколенчатый" GC в джаве уже огого как давно.... И к _максимальному_ размеру кучи это не имеет никакгого отношения...

theos ★★★
()
Ответ на: комментарий от anonymous

Зря не указывал, можно производительность поднять раза в два, а то и больше, при грамотной подстройке GC. Читать по вышеприведённой ссылке.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.