Si vous voulez boucler des centaines de milliers de fois dans le traitement par lots et sélectionner un nombre aléatoire à chaque fois, je me demandais lequel est le meilleur, ʻArray # sample ou
Random # rand`, alors je l'ai vérifié. ..
Mesurer immédiatement ci-dessous
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
Le résultat est
user system total real
Array#sample 0.114216 0.002376 0.116592 ( 0.120891)
Random#rand 0.198875 0.001285 0.200160 ( 0.206403)
Ainsi, ʻArray # sampleétait légèrement plus rapide. Cependant, cette fois, je passe
range, peut-être parce que je fais
to_a` en interne ...
Recommended Posts