Hi, I’ve started a Rails 3 project using Ruby 1.9.2 and Rspec 2 and my
test suite is now growing and I’m not happy with the amount of time it
is tooking to run. I did a benchmark of it with Ruby Enterprise
Edition 1.8.7 2011.03 and it ran much more faster(5x) than Ruby 1.9.2.
Is it expected or there is something I’m missing? To see the results,
Gemfile and spec_helper.rb please check the gist
Unfortunately I don’t have a Rails project handy that builds on both
1.8 and 1.9, but here are the results for a pure Ruby project: https://gist.github.com/939981
As you can see, the build times are nearly identical across 1.8.7,
REE, 1.9.2 and 1.9.3-dev (I’m using RSpec 2.6.0.rc2).
Are you seeing the build slow down in direct correlation to the number
of tests you’re running? What I’ve seen is that the delay is constant
and a function of the number of files being required and not the
number of tests, so the more tests you have, the closer the build
times should be on 1.8.7 and 1.9.2.
Of course, this can make running a single spec on 1.9.2 irritatingly
slow - one of the projects at my workplace that has a largish codebase
had to start using spork after upgrading to 1.9.2 because what used to
be an acceptable delay to run a single spec on 1.8.7 became excessive
Are you perhaps seeing http://is.gd/6aINHC ? We’ve moved several Rails
projects to 1.9.2 over the last few months and we’ve found our builds
running slower on all (we use RSpec too).
I’m not sure if the problem is the startup time. Does the startup time
affects results of rspec --profile?
I’ve found the problem. The gem meta_where
(https://github.com/ernie/meta_where) is doing something wrong in ruby
1.9.2, just removing it from my Gemfile and my suite is running fast
Thank you guys, I’ll open a issue on the meta_where project.
I’d very much appreciate any pointers as to what I might be “doing
wrong” that only affects RSpec under 1.9.2. I’m at a loss, offhand,
especially since regular application performance doesn’t seem to be
Squeel is also affected, apparently, and it uses RSpec for testing
internally, running 672 examples in under 4 seconds. Maybe it’s
something that only occurs when being tested inside a Rails app
If anyone has any information, or a sample app/tests that clearly
demonstrate the issue, it’d be much appreciated.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.