[Rubygems-developers] [ rubygems-Feature Requests-27612 ] faster bins

noreply at rubyforge.org noreply at rubyforge.org
Tue Dec 22 12:38:44 EST 2009


Feature Requests item #27612, was opened at 2009-12-22 17:38
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=578&aid=27612&group_id=126

Category: None
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Roger Pack (rogerdpack)
Assigned to: Nobody (None)
Summary: faster bins

Initial Comment:
I was wondering if there would be any acceptance of a patch that would make binaries faster if a default gem version is specified.

If we assume that gem paths don't change [and they shouldn't], then we can get this type of speedup

1.9.1p376

2.25s originally

  0.08 ruby startup itself
  1.93 for Gem.binpath
  0.28 to actually load the file

goes down to 

0.37s
  0.08 ruby startup [includes gem prelude]
  0.29 execute

1.8.6

0.92 originally

  0.75 require rubygems
  0.09375 execute

goes down to 0.26
 0.03 gem prelude for 1.8
 0.08 execute


Here is something like what the bins would look like [in windows, but hey].

1.8

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
  version = $1
  ARGV.shift
  require 'rubygems'
  gem 'whichr', version
  load Gem.bin_path('whichr', 'whichr', version)
else
  require 'gem_prelude'
  load "c:/ruby18/lib/ruby/gems/1.8/gems/whichr-0.3.2/bin/whichr"
end

1.9

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
  version = $1
  ARGV.shift
  require 'rubygems'
  gem 'whichr', version
  load Gem.bin_path('whichr', 'whichr', version)
else
  load "C:/installs/ruby19_mingw/lib/ruby/gems/1.9.1/gems/whichr-0.3.2/bin/whichr"
end

Thoughts?
Thanks.
-r

----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=578&aid=27612&group_id=126


More information about the Rubygems-developers mailing list