Ruby Enterprise Edition - это сервер-ориентированный дистрибутив официального интерпретатора Ruby, включающий в себя также различные дополнительные улучшения. Несмотря на то, что он появился совсем недавно, нынешняя версия по сравнению с предыдущей содержит довольно много улучшений.
Основные изменения:
- в качестве основы используется Ruby 1.8.7-p174 (предыдущий REE был основан на Ruby 1.8.6);
- интегрирован набор патчей MBARI от Брента Романа (Brent Roman):
- более эффективный сборщик мусора (как результат сокращено потребление памяти и увеличена скорость работы приложений);
- вместо применяемого в Ruby неэффективного (линейный по временной сложности) алгоритма переключения контекстов между потоками и процедурами продолжения используется алгоритм, сложность которого ограничена сверху величиной O(1);
- в классы Method, UnboundMethod и Proc добавлены методы __file__ и __line__, что упрощает проверку больших кусков кода, в которых активно используется метапрограммирование. Эти методы описаны в REE manual;
- опционально интегрирован патч от Джо Дамато и Амана Гупта (Joe Damato & Aman Gupta), реализующий переключение контекстов без копирования (zero-copy context switching), что в некоторых ситуациях позволяет ускорить работу потоков примерно в 10 раз (поскольку сейчас у данного патча имеются проблемы с работой на 64-битных платформах, zero-copy context switching отключено по умолчанию, и для его включения необходимо при установке REE указать опцию --fast-threading).
Прочие небольшие изменения:
- в процессе сборки REE использовалась оптимизация размера получаемого бинарника (опция -Os);
- аллокатор tmalloc теперь версии 1.3;
- RubyGems 1.3.5;
- Debian-пакеты устанавливают файлы в /usr/local (то есть теперь не нужно устраивать шаманство с бубном^Wпеременной $PATH, чтобы заставить его работать по-человечески).
Данный релиз проходил бета-тестирование в Twitter, в результате чего, как сообщается, производительность ресурса возросла примерно на 30%. Тем не менее, бета-тестирование еще не завершено. В настоящий момент ожидаются результаты тестирования от 37signals и Novell.
>>> Подробности