Uruchamianie zainstalowanego klejnotu jest znacznie wolniejsze niż uruchomienie lokalnego odpowiednika źródła.Zainstalowany klejnot o wiele wolniejszy od źródła
gem zainstalowane:
$ time wmctile switch_to Thunderbird
real 0m0.682s
user 0m0.491s
sys 0m0.091s
źródło lokalny:
$ time ./work/wmctile/bin/wmctile switch_to Thunderbird
real 0m0.197s
user 0m0.118s
sys 0m0.064s
Dlaczego? Czy to możliwe z powodu RVM, czy też jest to "cecha" klejnotów rubinowych? Czy istnieje sposób na przyspieszenie?
EDIT: wygenerowany plik 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)
Jestem pewna, że w RVM jest trochę narzutów na szukanie aktualnej wersji ruby, lokalizowanie pliku binarnego i wykonywanie go. Dlaczego nie tylko alias 'wmctile' w twoim bash_profile do źródła? – Anthony
Jest to rozproszony klejnot przeznaczony dla innych użytkowników, który miałby tylko klejnot, a nie jego źródło. – mreq
@JesseSielaff To jest czysty rubin. Problem pojawia się w wygenerowanym pliku, '/ usr/bin/env ruby_executable_hooks' wydaje się być dość wolny. Edytowałem odpowiedź ze źródłem wygenerowanego pliku bin. – mreq