>>200
require 'benchmark'
include Benchmark

a = (1..10000).map {rand(10000)}

bm(10) do |b|
b.report("Sort") { a.sort {|x,y| x<=>y} }
b.report("Sort!") { a.sort! {|x,y| x<=>y} }
b.report("Sort by") { a.sort_by {|x| x} }
end

        user    system   total    real
Sort    1.021000  0.000000  1.021000 ( 1.142000)
Sort!    1.052000  0.000000  1.052000 ( 1.091000)
Sort by  0.070000  0.000000  0.070000 ( 0.080000)

破壊的メソッド「だから」動作が速いという理屈にはならない
単純にどれかが最強というようには決められないのがsort