качество и надёжность с 2008 года

8 (800) 200-25-11

Техническая поддержка support@komtet.ru —

круглосуточно и без выходных дней

load-whois

Онлайн-касса

для интернет-магазина

Подключите ваш интернет-магазин

к онлайн-кассе в соответствии с 54-ФЗ

Главная Техническая библиотека Фреймворки Ruby on Rails Вышла новая версия Ruby Enterprise Edition (1.8.7-20090928)

Вышла новая версия Ruby Enterprise Edition (1.8.7-20090928)

Новая версия интерпретатора Ruby Enterprise Edition

Новая версия интерпретатора Ruby Enterprise Edition уже прошла тестирование в проекте Twitter и показала в среднем 30-процентное увеличение производительности по сравнению с предыдущей версией. Последняя версия базируется на Ruby 1.8.7-p174, в отличие предыдущих, построенных на версии 1.8.6. Версия 1.8.7 интерпретатора Ruby получила в последнее время широкое распространение, например, разработчики Ruby On Rails в новой версии 3.0 отказываются от поддержки более ранний версий интерпретатора.

Основные изменения

Использование патчей MBARI для интерпретатора Ruby позволило уменьшить использование оперативной памяти. Основные улучшения перечислены ниже.

Работа со стеком

Алгоритм распознавания в стеке указателей на объекты, подлежащие удалению («cборщик мусора») Ruby 'консервативно' сканирует стек, то есть если элемент в стеке похож на адрес валидного объекта Ruby, то элемент не удаляется. Из-за особенностей реализации интерпретатора Ruby и оптимизации на этапе компиляции в стеке скапливалось большое количество данных, похожих на указатели. Патч дает возможность удалить объекты, которые ранее не были бы удалены.

Интерпретатор Ruby использует неэффективный, линейный алгоритм выделения пространства в стеке при переключении между потоками. Этот алгоритм заменен на алгоритм c временем выполнения O(1).

Метапрограммирование

Добавлены методы __file__ и __line__ в классы Method, UnboundMethod и Proc для более эффективного использования возможностей метапрограммирования, которое базируется на интроспекции.

Многопоточноcть

Реализовано легковесное переключение между контекстами (zero-copy context switching). В версии 1.8 интерпретатора Ruby при переключении между потоками происходило копирование всего стека потока. В новой версии стеки потоков хранятся в разных адресных пространствах и переключаются изменением значения указателя стека, что позволило добиться 10-кратного увеличения производительности. Те кто использует Mogrel, смогут оценить преимущества такого решения, а использующие Phusion Passenger не смогут ощутить разницы, т. к. его ядро обработки запросом не многопоточно.

Другое

  • Ruby Enterprise Edition компилируется с ключами оптимизации размера (-Os);
  • Используется версия 1.3 библиотеки tcmalloc;
  • Используется менеджер пакетов RubyGems версии 1.3.5;
  • Менеджер пакетов Debian теперь помещает файлы в /usr/local, из-за чего отпадает необходимость модифицировать переменную окружения $PATH.
Подготовлено по материалам: blog.phusion.nl

Другие документы на эту тему

Ruby on Rails

Благодаря своим многочисленным преимуществам, Ruby on Rails или RoR «растёт» от версии к версии. Хостинг КОМТЕТ размещает проекты Клиентов на Ruby on Rails, следит за обновлениями как языка программирования Ruby, так и фреймворка Rails. Доступен запуск проектов на нескольких версиях фреймворка. Статьям по Ruby on Rails отведён этот раздел сайта хостинга КОМТЕТ.

Виртуальный хостинг Perl/PHP/Python/Ruby

Тарифные планы «Виртуальный хостинг» — от размещения статических HTML-страниц, до поддержки PHP, Python, CGI скриптов (Shell, Perl), SSI, Ruby. В рамках тарифных планов предоставляется доступ к серверам баз данных MySQL или PostgreSQL.

Клиентам — домены в подарок!
Бесплатный тест виртуального хостинга
Перенос сайта — бесплатно
Все акции
На сайте КОМТЕТ используются cookie-файлы, данные о IP-адресе и местоположении посетителей. Если, прочитав это сообщение, вы остаетесь на нашем сайте, это означает, что вы не возражаете против использования этих технологий.