Ruby初心者スレッドPart7
■ このスレッドは過去ログ倉庫に格納されています
0451デフォルトの名無しさん
2006/08/24(木) 14:21:46ソースを見たところ、bをHashにしてa.eachで突き合わせてるようす。
時間はhashメソッドの実装にもよるかもと思って試したらよくわからない結果になった。
@CoreDuo T2600, ruby-1.8.5-preview5 on Cygwin 1.5.21-2
user system total real
Fixnum 0.234000 0.016000 0.250000 ( 0.238000)
Float 873.125000 0.156000 873.281000 (888.061000)
String 0.704000 0.000000 0.704000 ( 0.703000)
LongString 0.516000 0.000000 0.516000 ( 0.494000)
Object 0.531000 0.000000 0.531000 ( 0.536000)
require 'benchmark'
class Hoge
def hogehoge;end
@value = rand
end
def mklary(dir, size)
Dir[File.join(dir,'*.*')].sort{rand(2)<=>1}[0, size].map{|fn| IO.read(fn)}
end
Benchmark.bm(0) do |job|
j = "job.report(t) {a - b}"; al = 1000000; bl = 500000
t="Fixnum"; a = (1..al).to_a; b = (1..bl).to_a; eval(j)
t="Float"; a = (1..al).map{rand}; b = (1..bl).map{rand}; eval(j)
t="String"; a = (1..al).map{|i| i.to_s}; b = (1..bl).map{|i| i.to_s}; eval(j)
t="LongString"; a = mklary('/usr/bin',500); b = mklary('/usr/bin',250); eval(j)
t="Object"; a = (1..al).map{Hoge.new}; b = (1..bl).map{Hoge.new}; eval(j)
end
■ このスレッドは過去ログ倉庫に格納されています