From: SASADA Koichi Date: 2013-08-14T00:30:08+09:00 Subject: [ruby-core:56603] Re: [ruby-trunk - Feature #8781][Open] Use require_relative() instead of require() if possible (2013/08/13 19:25), Trans wrote: > > FYI: with Akira (Matsuda-san), we compare performance of require and > require_relative to load thousands of files. > > Without Bundler, require_relative is good performance. > However, with Bundler, require_relative does not help so much. > Maybe most of Ruby user == Rails programmer use Bundler. > > > Does anyone know why performance degrades with Bundler? > > Also, I have wondered before about require_relative performance. In my > tests it seemed like it was slower than it should be. That was about a > year ago. Has any work been done to optimize it --is there room to > optimize it? I'm sorry, it was a bad description. This is not a degration of "require_relative()" with bundler. Performance improvement of "require()" with Bundler. Test do: (1) require some gems (2-1) require many files (2-2) require_relative many files We compared (2-1) and (2-2). require() require_relative() without Bundler about 7sec about 1~2sec with Bundler about 1~2sec about 1~2sec (* prepare a Gemfile) # test code: # require 'bundler/setup' # with Gemfile or not require 'haml' require 'psych' require 'atomic' require 'RedCloth' require 'rspec' N = 5_000 unless File.exist?("test-files") Dir.mkdir("test-files") N.times{|i| open("test-files/test#{i}.rb", 'w') } end $: << Dir.pwd + "/test-files" p [$:.size, $:] N.times{|i| # require_relative "test-files/test#{i}" require "test#{i}" } -- // SASADA Koichi at atdot dot net