From: Motohiro KOSAKI <kosaki.motohiro@...>
Date: 2011-07-21T14:02:38+09:00
Subject: [ruby-core:38299] [Ruby 1.9 - Bug #3924] Performance bug (in require?)


Issue #3924 has been updated by Motohiro KOSAKI.

Target version changed from 1.9.3 to 1.9.x

I've switched the target version to 1.9.x. This issue is absolutely important, but sadly it's too late. ;-)

----------------------------------------
Bug #3924: Performance bug (in require?)
http://redmine.ruby-lang.org/issues/3924

Author: Carsten Bormann
Status: Assigned
Priority: Normal
Assignee: Yuki Sonoda
Category: core
Target version: 1.9.x
ruby -v: -


=begin
 Running irb < /dev/null in 1.9.2 causes 3016 calls to lstat64.
 
 For instance, there is a sequence of 28 repetitions each of lstat calls to all 6 non-empty path prefixes of /opt/local/lib/ruby1.9/1.9.1/irb.rb -- a total of 170 lstats apparently just to load this file; another set of lstats then occurs later for another 18 (times 6) times.  Clearly, something is running amok in the calling sequence rb_require_safe -> realpath_rec -> lstat.
 
 Another example: Running a simple test with the baretest gem causes 17008 calls to lstat.  According to perftools.rb, 80 % of the 1.2 seconds of CPU is used in Kernel#gem_original_require (and another 12 in GC, some of which may be caused by this).
=end



-- 
http://redmine.ruby-lang.org