[ROR] benchmark sort

Programming 2014.07.02 17:18

#!/usr/bin/ruby 

require 'benchmark' 

ary = [] 
1000.times { 
 ary << {:bar => rand(1000)} 


n = 500 
Benchmark.bm(20) do |x| 
 x.report("sort")               { n.times { ary.sort{ |a,b| b[:bar] <=> a[:bar] } } } 
 x.report("sort reverse")       { n.times { ary.sort{ |a,b| a[:bar] <=> b[:bar] }.reverse } } 
 x.report("sort_by -a[:bar]")   { n.times { ary.sort_by{ |a| -a[:bar] } } } 
 x.report("sort_by a[:bar]*-1") { n.times { ary.sort_by{ |a| a[:bar]*-1 } } } 
 x.report("sort_by.reverse!")   { n.times { ary.sort_by{ |a| a[:bar] }.reverse } } 
end 



                           user     system      total        real

sort                   0.940000   0.000000   0.940000 (  0.940155)

sort reverse           0.970000   0.000000   0.970000 (  0.969526)

sort_by -a[:bar]       0.390000   0.010000   0.400000 (  0.400547)

sort_by a[:bar]*-1     0.390000   0.000000   0.390000 (  0.391629)

sort_by.reverse!       0.370000   0.000000   0.370000 (  0.373811)


저작자 표시 비영리 변경 금지
신고


티스토리 툴바