Wenn Sie hunderttausende Male in der Stapelverarbeitung eine Schleife ausführen und jedes Mal eine Zufallszahl auswählen möchten, habe ich mich gefragt, welche besser ist, "Array # sample" oder "Random # rand", also habe ich sie überprüft. ..
Messen Sie sofort unten
range = (1..10000)
array = range.to_a
num = 1000000
Benchmark.bm 10 do |r|
r.report 'Array#sample' do
num.times do
array.sample
end
end
r.report 'Random#rand' do
num.times do
rand(range)
end
end
end
Ergebnis ist
user system total real
Array#sample 0.114216 0.002376 0.116592 ( 0.120891)
Random#rand 0.198875 0.001285 0.200160 ( 0.206403)
"Array # sample" war also etwas schneller. Da ich diesmal jedoch die Reichweite überschreite, kann dies daran liegen, dass ich intern "to_a" mache ...
Recommended Posts