Issue #10015 has been updated by Adrien Siami.


I've noticed a significant slowdown of a rails app when using ruby 2.2.1 rather than 2.1.5.

A slow page was running in 16 seconds with 2.2.1 where it was running in less than 3 seconds with 2.1.5

I tested this very simple benchmark :

~~~
require 'benchmark'

puts Benchmark.realtime {
  800000.times do
    Dir['/tmp']
  end
}
~~~

it runs in 3.1289695860032225 secs with 2.2.1 and 2.403 secs with 2.1.5

Is this issue still present ?

----------------------------------------
Bug #10015: Performance regression in Dir#[]
https://bugs.ruby-lang.org/issues/10015#change-51953

* Author: Aaron Patterson
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.2.0dev (2014-02-04 trunk 44802) [x86_64-darwin13.0]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
r44802 seems to have introduced a performance regression in Dir#[].

Here is the test program:

~~~ruby
require 'benchmark'

puts Benchmark.realtime {
  glob = "minitest/*_plugin.rb{,.rb,.bundle}"
  $LOAD_PATH.map { |load_path|
    Dir["#{File.expand_path glob, load_path}"]
  }.flatten.select { |file| File.file? file.untaint }
}
~~~

Here is the test time for me:

~~~
$ ruby -v test.rb
ruby 2.2.0dev (2014-02-04 trunk 44801) [x86_64-darwin13.0]
0.000341
$ ruby -v test.rb
ruby 2.2.0dev (2014-02-04 trunk 44802) [x86_64-darwin13.0]
0.009333
~~~

r44801 seems much faster than r44802.



-- 
https://bugs.ruby-lang.org/