Подтвердить что ты не робот

Установленный драгоценный камень намного медленнее, чем источник

Запуск установленного драгоценного камня намного медленнее, чем запуск его локального источника.

Установленный драгоценный камень:

$ time wmctile switch_to Thunderbird

real  0m0.682s
user  0m0.491s
sys 0m0.091s

Локальный источник:

$ time ./work/wmctile/bin/wmctile switch_to Thunderbird

real  0m0.197s
user  0m0.118s
sys 0m0.064s

Почему? Может быть, из-за RVM, или это "особенность" рубиновых камней в целом? Есть ли способ ускорить его?

EDIT: сгенерированный файл bin

$ which wmctile
/home/some_user_name/.rvm/gems/ruby-2.1.2/bin/wmctile

$ cat $( which wmctile )
#!/usr/bin/env ruby_executable_hooks
#
# This file was generated by RubyGems.
#
# The application 'wmctile' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0"

if ARGV.first
  str = ARGV.first
  str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
  if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
    version = $1
    ARGV.shift
  end
end

gem 'wmctile', version
load Gem.bin_path('wmctile', 'wmctile', version)
4b9b3361

Ответ 1

RVM помещает правильные каталоги для вашей версии Ruby и gemset в путь, когда установлен rvm ruby. Моя ПУТЬ начинается с этого:

/Users/kbennett/.rvm/gems/ruby-2.3.0/bin
/Users/kbennett/.rvm/gems/[email protected]/bin
/Users/kbennett/.rvm/rubies/ruby-2.3.0/bin
/Users/kbennett/.rvm/bin

Итак, я думаю, что это ОС, а не сама Ruby, которая несет ответственность за задержку. Вы можете проверить это, поместив простой файл оболочки script в этот каталог gem bin и вызвав его с и без его абсолютного местоположения, чтобы узнать, получаете ли вы ту же разницу.