2011-12-07 24 views
6

Tôi đang sử dụng spork để kiểm tra ứng dụng Sinatra và với Ruby 1.9.2 các thử nghiệm chạy trong khoảng 3,5 giây nhưng trong Ruby 1.8.7 chúng trung bình 1.2 giây. Tôi đã thử Ruby 1.9.3 và thậm chí JRuby nhưng họ đã có một số lỗi với đá quý tôi đang sử dụng. Có cách nào để đưa hiệu suất rspec của Ruby 1.9.2 lên tới 1.8.7 không?Tại sao các thử nghiệm rspec của tôi chạy chậm hơn trong Ruby 1.9.2 so với 1.8.7?

My Gemfile:

source :rubygems 
gem 'sinatra', '1.3.1' 
gem 'thin', '1.3.1' 
gem 'haml', '3.1.4' 
gem 'datamapper', '1.2.0' 
gem 'dm-postgres-adapter', '1.2.0' 
gem 'carrierwave', '0.5.8' 
gem 'carrierwave-datamapper', '0.2.0' 

group :test do 
    gem "dm-sqlite-adapter" 
    gem "spork" 
    gem "rspec" 
    gem "rack-test" 
end 

spec_helper.rb:

require 'rubygems' 
require 'spork' 
require 'sinatra' 
require 'rack/test' 
require 'rspec' 

require File.join(File.dirname(__FILE__), '..', 'app.rb') 
require File.join(File.dirname(__FILE__), '..', 'model/model.rb') 

Spork.prefork do 
    set :environment, :test 
    set :files, "test_files" 
end 

Spork.each_run do 
    RSpec.configure do |config| 
    config.before(:each) { DataMapper.auto_migrate! } 
    config.after(:all) do 
     FileUtils.rm_rf(Dir["#{settings.root}/public/test_files"]) 
    end 
    end 
end 

cảm ơn!

+0

Tôi nghĩ rằng tôi nhớ đọc về một vấn đề hiệu năng liên quan đến cách mô-đun nạp 1.9I MRI. Tôi sẽ xem liệu tôi có thể đào ra liên kết – Magnus

Trả lời

1

Không theo thử nghiệm riêng của rspec: https://gist.github.com/939865. Nó được cho là nhanh hơn. Nó có thể là một cái gì đó chậm hơn trong ngăn xếp của bạn.

Các vấn đề liên quan