コマンドの実行コストはrubyより重いかもしれない。
何かのアプリケーションを実行しているときに、そのアプリケーションのプロセス番号を調べるようなことがしたかった。
rubyプロセス番号を抽出するときに、ruby上でした方がいいのかコマンドのgrepでした方がいいのか分からなかった。なので調べてみた。(元のコードでは見つけたプロセス番号をputsで表示していたのですが、ベンチマークを取るときにはプロセス番号を返すようにしました><)
#linuxのコマンドを使った方 def f(process="xmms") return("kill #{$& if `ps -A | grep #{process}` =~ /\d+/}") end #rubyの正規表現を使った方 def g(process="xmms") `ps -A`.each_line do |e| if e=~/(\d+).+#{process}/ return("kill #{$1}") end end end #条件に当てはまる文を見つけたら、止めてしまうのは仕様です。 #(たぶん、その方が使い易いと思う) require 'benchmark' Benchmark.bmbm do |x| n=100 x.report("f"){n.times{f}} x.report("g"){n.times{g}} end