Ruby 2.1 С Улучшенной Сборкой Мусора


Последняя версия Ruby 2.1 была выпущена с улучшениями, включая повышение производительности, вызванное серьезными изменениями в сборщике мусора.

Другие улучшения включают поддержку уточнений, десятичных и замороженных строковых литералов, а также поддержку именованных захватов в StringScanner.

Поддержка уточнений была улучшена; в предыдущих версиях вы ограничивались применением уточнений к одному файлу Ruby, но теперь они могут применяться в модуле, не затрагивая область верхнего уровня файла. Это спорное изменение, которое не может быть реализовано в других версиях Ruby, поскольку многие разработчики считают, что оно приводит к путанице в коде.

Поддержка именованных захватов была введена для регулярных выражений в Ruby 1.9, но StringScanner не поддерживал ее до этой версии.

Улучшения в захвате мусора в Ruby должны ускорить его использование. Изменения не повлияют на всю сборку мусора, так как не все объекты будут обрабатываться по-разному в новой версии. Вместо этого объекты будут классифицироваться виртуальной машиной как солнечные или тенистые. Солнечные объекты будут обрабатываться сборщиком мусора нового поколения.

Есть хорошее описание изменений в слайдовой колоде, подготовленной разработчиком Ruby Коичи Сасадой для выступления в RubyKaigi. Популярные объекты, такие как массив, Строка, Хэш, объект и число, смогут воспользоваться преимуществами новой системы, и работа над другими объектами будет продолжена, чтобы включить их в область действия сборщика мусора.


Добавить комментарий