From: adrien.siami@... Date: 2015-03-27T23:20:34+00:00 Subject: [ruby-core:68660] [Ruby trunk - Bug #10015] Performance regression in Dir#[] 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/