Take the 2-minute tour ×

On Ruby 1.8.7 a fresh Rails 2.3.5 environment loads in 4.325 seconds, but on Ruby 1.9.1p378 it takes 15.701s - does anyone have any ideas why?

This is on a 32-bit single core laptop running Ubuntu.

share|improve this question
You can try this benchmark for yourself by creating a fresh rails application and running: time script/runner "puts 'Finished loading'" –  Logan Koester Apr 15 '10 at 17:03

2 Answers 2

I'm seeing the same problem as you. On my machine with an SSD, it's 0.7s vs 1.2s for a completely new Rails 2.3.5 project, with REE vs. 1.9.1. On a larger rails project, the difference is more pronounced: It's something like 20s vs. 10s.

This leads me to suspect this is an I/O related issue. Running with a patched require and load:

module Kernel
  alias :load_without_tracing :load
  alias :require_without_tracing :require

  def load(filename, wrap=false)
    puts "loading #{filename}"
    load_without_tracing(filename, wrap)
  def require(string)
    puts "requiring #{string}"

says that it's loading a lot of code. This may be what we're seeing. If 1.9.1 pessimized the loading of text files (encodings in strings would be a likely candidate), this would explain the difference in load times we're seeing.

Why it would be a factor of >3 on your machine and <2 on mine, I can only guess, however. Maybe a scenario like this is a good candidate to report to the MRI development mailing list.

share|improve this answer

Most probably you have some specific issues. I have the same setup 32bit Ubuntu, Rails 2.3.5 and I don't have any problems neither with ruby1.9.1p378 neither with ruby1.9.1p243.

Which application server do you use? Mongrel, Passanger... you can try with a different one than the current and check its startup speed.

share|improve this answer
Strange. It actually doesn't matter what application server I use, I have the same problem with script/runner :-/ –  Logan Koester Apr 17 '10 at 19:59

Your Answer


