Какая сборка мусора лучше, MRI 2.2 или Rubinius 2.5.3

MRI 2.2 имеет некоторые большие улучшения с GC начиная с 2.1, а именно добавочный GC, и теперь он собирает символы.

Один парень исправил утечку памяти, просто обновив МРТ, см. Этот пост в блоге

Мы перешли на Рубиниус некоторое время назад, и одна из причин была в том, что мы думали, что у него превосходная сборка мусора.

Похоже, что Рубиниус не собирает символы мусора, смотрите эту проблему. Это все еще так и символы GC-ing являются большим улучшением?

Я читал о параллельном GC в Rubinius, который, по-видимому, решает ту же проблему, что и инкрементальный GC MRI, то есть устраняет длительные паузы GC. Я также видел это описание поколения GC в Rubinius также. Тем не менее, я не знаю, как сравнить MRI GC с RBX GC.

Так кто-нибудь знает, что лучше?

1 ответ

Решение

Похоже, что Рубиниус не собирает символы мусора, смотрите эту проблему. Это все еще так и символы GC-ing являются большим улучшением?

Рубиниус в настоящее время не собирает мусор Символы. Мы добавим это в конце концов, но сейчас есть более неотложные вопросы (например, поддержка LLVM 3.6/MCJIT).

Будут ли символы, являющиеся GC'd, улучшением, зависит от вашего приложения. Если указанное приложение создает много символов, которые используются редко, то, конечно, это может сэкономить вам память. Лучший способ понять это - измерить использование памяти до / после переключения на GC, который собирает символы.

Так кто-нибудь знает, что лучше?

GC Рубиниуса стремится делать меньше и короче паузы (это не является 100% одновременным, что означает, что он все еще делает паузу все время от времени) и стремится быть точным (то есть он точно знает, что собирать вместо пропущенных объектов). Приводит ли это к превосходной сборке мусора снова, зависит от типа приложения, которое вы используете.

Другие вопросы по тегам