Bug #7778

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

Added by Lukas Zapletal about 1 year ago. Updated about 1 year ago.

[ruby-core:51829]
Status:Rejected
Priority:Normal
Assignee:Keiju Ishitsuka
Category:lib
Target version:next minor
ruby -v:ruby 2.0.0dev (2013-01-07 trunk 38733) [x86_64-linux] Backport:

Description

Hello,

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.

$ LCALL=csCZ strace irb < /dev/null 2>&1 | grep ENOENT | wc -l
5195

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

$ time LCALL=csCZ 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.

History

#1 Updated by Koichi Sasada about 1 year 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 about 1 year ago

Irb search directories of RUBYPATH for irb message locale files, if LCALL etc. is set.

Therefore, this is not a bug.

#3 Updated by Keiju Ishitsuka about 1 year ago

  • Status changed from Open to Rejected

Also available in: Atom PDF