reverse_each
yöntemini kullanıyorum, bunun yerine bir diziyi geriye doğru kaydırmam gerektiğinde reverse.each
numaralı telefonu arıyorum. Bu yüzden bazı kıyaslamalar yaptım ve görünüşe göre reverse_each
reverse.each
'dan çok daha hızlı.Neden Array.reverse_each, Array.reverse.each öğesinden daha hızlı
- Bu,
reverse.each
'u kullanırken yinelemeden önce bir ters dizi oluşturmayla ilişkili bir zaman unsuru olduğundan bu mu? Bununla birlikte (aşağıda) 10 milyon iterasyon büyüklüğü 4. dizisi ve daha fazla veya daha az kalır stabil bağımsız dizinin büyüklüğü bu zaman farkıTIME(reverse) + TIME(each) - TIME(reverse.each) ~ 1.2 seconds
benim örnekte
. 100 elemente kadar test ettim.
- Bu bir ikinci fark nedir?
require 'benchmark'
number = 10000000
arr = (1..4).to_a
Benchmark.bm(13) do |x|
x.report("reverse.each") { number.times { arr.reverse.each {|x| x} } }
x.report("reverse_each") { number.times { arr.reverse_each {|x| x} } }
x.report("reverse") { number.times { arr.reverse } }
x.report("each") { number.times { arr.each {|x| x} } }
end
Aynı a Daha hızlı, daha hızlı :) +1 – apneadiving