L'esecuzione di una gemma installata è molto più lenta rispetto all'esecuzione della controparte di origine locale.Gemma installata molto più lenta della sorgente
gemma installata:
$ time wmctile switch_to Thunderbird
real 0m0.682s
user 0m0.491s
sys 0m0.091s
sorgente locale:
$ time ./work/wmctile/bin/wmctile switch_to Thunderbird
real 0m0.197s
user 0m0.118s
sys 0m0.064s
Perché? Potrebbe essere a causa di RVM, o è questa una "caratteristica" di gemme di rubino in generale? C'è un modo per accelerarlo?
EDIT: file generato 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)
Sono sicuro che c'è un sovraccarico in RVM per capire la tua versione attuale di ruby, localizzare il file binario ed eseguirlo. Perché non basta l'alias 'wmctile' nel tuo bash_profile all'origine? – Anthony
È una gemma distribuita destinata ad essere utilizzata da altri utenti, che avrebbe solo la gemma, non la fonte. – mreq
@JesseSielaff È puro rubino. Il problema sembra essere nel file generato, '/ usr/bin/env ruby_executable_hooks' sembra essere piuttosto lento. Ho modificato la risposta con la fonte del file bin generato. – mreq