Report abuse

require 'benchmark'

class Symbol
  def to_proc
    Proc.new { |*args| args.shift.__send__(self, *args) }
  end
end

BIG_ARRAY = [:abcdef] * 100000

Benchmark.bmbm do |x|
  x.report do
    BIG_ARRAY.map(&:to_s)
  end

  x.report do
    BIG_ARRAY.map { |e| e.to_s }
  end
end

$ ruby -v
ruby 1.8.6 (2008-03-03 patchlevel 114) [i686-darwin9.2.0]
$ ruby iter.rb 
Rehearsal ------------------------------------
   0.220000   0.010000   0.230000 (  0.232931)
   0.080000   0.000000   0.080000 (  0.088338)
--------------------------- total: 0.310000sec

       user     system      total        real
   0.200000   0.000000   0.200000 (  0.197506)
   0.050000   0.000000   0.050000 (  0.065803)