Bug #7778

Irb loading generates 17x more open/stat system calls when a locale is set

Added by Lukas Zapletal almost 3 years ago. Updated almost 3 years ago.

Assignee:Keiju Ishitsuka
ruby -v:ruby 2.0.0dev (2013-01-07 trunk 38733) [x86_64-linux] Backport:



I did just found out that when I have a locale set (e.g. cs_CZ in my case), irb does some extra finding for rb/so files which are being required. That slows down loading time and if you have many rubygems, loading can be really slow.

$ LC_ALL=cs_CZ strace irb < /dev/null 2>&1 | grep ENOENT | wc -l

$ LC_ALL=C strace irb < /dev/null 2>&1 | grep ENOENT | wc -l

$ time LC_ALL=cs_CZ irb < /dev/null
real 0m0.262s
user 0m0.165s
sys 0m0.023s

$ time LC_ALL=C irb < /dev/null
real 0m0.084s
user 0m0.066s
sys 0m0.014s

Tested on stable 1.9.3 and also on 2.0 RC1. All the same.


#1 Updated by Koichi Sasada almost 3 years ago

  • Category set to lib
  • Assignee set to Keiju Ishitsuka
  • Target version set to next minor

Is it only for irb?
Same as Ruby command?

#2 Updated by Keiju Ishitsuka almost 3 years ago

Irb search directories of RUBY_PATH for irb message locale files, if LC_ALL etc. is set.

Therefore, this is not a bug.

#3 Updated by Keiju Ishitsuka almost 3 years ago

  • Status changed from Open to Rejected

Also available in: Atom PDF