From: Love U Ruby Date: 2013-06-29T05:59:31+09:00 Subject: Re: Best practice to use Enumerable#Sort and Enumerable#Sort_by John W Higgins wrote in post #1113860: > The #sort_by block tells the engine which field to use when sorting an > item. > The #sort block gets called with the 2 items being compared and the > block > should return how the items compare (-1, 0, 1). Thanks for your feed back. Why #sort_by here is faster? require 'benchmark' a = [ { "id"=>1, "popularity"=>7.77030797174916, "title"=>"Another film", }, { "id"=>2, "popularity"=>2.7703074916, "title"=>"A film", }, { "id"=>3, "popularity"=>9.77030797174916, "title"=>"A third film", } ] Benchmark.bm(100) do |b| b.report("Sort") { a.sort{|h1,h2| h1["popularity"] <=> h2["popularity"]} } b.report("Sort by") { a.sort_by{|h| h["popularity"]} } end user system total real Sort 0.000000 0.000000 0.000000 ( 0.000041) Sort by 0.000000 0.000000 0.000000 ( 0.000019) -- Posted via http://www.ruby-forum.com/.