16

Ruby 2.0 がリリースされました。以下を参照してください。

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

システムを Ruby 2.0 にアップグレードした後、Rails アプリ/インストールにどのような変更を加える必要がありますか?

4

2 に答える 2

16

そこで、アップグレード後に私がしなければならなかったことを次に示します。

Bundler 1.2.x には互換性がありません。まだリリースされていない >= 1.3 にアップグレードするようにというエラーが発生します。したがって、RVM を使用している場合は、2.0 ruby​​ のグローバル gemset にジャンプし、1.3.0 がリリースされるまで 1.3.pre バージョンにアップグレードしてください。また、rubygems api に問題があるようです。私のバンドルのインストールでは、新しい API を使用せず、代わりに古い「インデックスの取得」メソッドを使用していました。これにはもちろん少し時間がかかります。

それを除けば、私のバンドルは問題なくインストールされ、仕様テストの完全なセットはすべて OK で完了しました。レールのロード時間がどれだけ改善されたかを確認するために、いくつかのタイミングテストを行いました。

# 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 のロード時間はすべてのテスト gem で少し重くなりますが、それでもロード時間が 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% の増加。

さらに興味深いのは、Object.new を 5 億回呼び出していることです。

1.9.3 : 129.063s
2.0.0 :  97.234s

オブジェクトの作成時間が約 25% 短縮されました。

于 2013-02-24T20:20:44.317 に答える
6

rails4とruby2.0で新しいプロジェクトを始めました。これが私がやった方法です。

まず、RVMをRuby2.0に設定しました。

次に、バンドラー1.3をインストールしました。

$ gem install bundler

これらのgemと「バンドルインストール」を更新しました。

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
于 2013-03-01T09:49:13.397 に答える