Настройка Rails для Ruby 2.0


Выпущен Ruby 2.0, см.:

Http://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is-released/

Какие изменения в моем приложении Rails / установке я должен ожидать после обновления моей системы до Ruby 2.0?

2 16

2 ответа:

Итак, вот что мне пришлось сделать после обновления.

Бандлер 1.2.x не совместим, это вызывает ошибку, говорящую обновить до >= 1.3, который еще не выпущен. Поэтому, если вы используете RVM, перейдите в свой глобальный набор драгоценных камней для Рубина 2.0 и обновите его до 1.3.предварительные версии до 1.3.0 выпустили. Кроме того, похоже, что с api rubygems что-то не так. Мой пакет установки не использовал новый API, вместо этого делать старый метод "fetch index", который, конечно, занимает немного времени. длиннее.

Кроме того, мой пакет устанавливался чисто,и мой полный набор тестов спецификации был завершен со всеми ОК. Я провел некоторые временные тесты, чтобы увидеть, насколько улучшилось время загрузки рельсов.

# Using 1.9.3-p327

RSpec Time: 24.87s
Wall Time : 34.40s
Load Time :  9.53s

# Using 2.0.0-p0

RSpec Time: 22.49s (90.4%)
Wall Time : 26.89s (78.2%)
Load Time :   4.4s (46.2%)

Очевидно, что время загрузки для rspec немного тяжелее со всеми камнями тестирования, но все же более чем на 50% падение времени загрузки и 10% падение времени выполнения теста приятно.

Я сделал аналогичный тест, используя rails runner 'puts User.count', который пропустил бы тестовую загрузку.

1.9.3 : 7.27s
2.0.0 : 3.36s (46.2%)

Опять же, хорошая капля более 50% :)

Здесь я как бы сбиваюсь с пути... новые игрушки делают это, я думаю, но похоже, что единственное изменение, которое я должен был сделать, было обновление до предрелизного пакета.

Вот еще один тест различных итераторов

$ rvm 1.9.3-p327,2.0.0-p0 --verbose do ruby test.rb
ruby-1.9.3-p327: ruby 1.9.3p327 (2012-11-10 revision 37606) [i686-linux] 
       user     system      total        real
for    0.610000   0.000000   0.610000 (  0.607189)
times  0.580000   0.000000   0.580000 (  0.587303)
upto   0.590000   0.000000   0.590000 (  0.585730)
each   0.590000   0.000000   0.590000 (  0.593494)
ruby-2.0.0-p0: ruby 2.0.0p0 (2013-02-24 revision 39474) [i686-linux] 
       user     system      total        real
for    0.590000   0.000000   0.590000 (  0.582743)
times  0.560000   0.000000   0.560000 (  0.565961)
upto   0.560000   0.000000   0.560000 (  0.562400)
each   0.570000   0.000000   0.570000 (  0.573469)

Предельный, около 4-5% прироста.

Еще интереснее это, вызывание объекта.новые 500 миллионов раз

1.9.3 : 129.063s
2.0.0 :  97.234s

Примерно на 25% сократилось время создания объекта.

Я начал новый проект с rails 4 и ruby 2.0. Вот как я это сделал.

Во-первых, я установил RVM на Ruby 2.0.

Затем устанавливается bundler 1.3:

$ gem install bundler

Обновил эти драгоценные камни и "bundle install".

gem 'rails',     :git => 'git://github.com/rails/rails.git'
gem 'journey',   :git => 'git://github.com/rails/journey.git'
gem 'arel',      :git => 'git://github.com/rails/arel.git'

group :assets do
  gem 'sass-rails',   :git => 'git://github.com/rails/sass-rails.git'
  gem 'coffee-rails', :git => 'git://github.com/rails/coffee-rails.git'
end