Report abuse


			
require 'benchmark'

MAX  = 10000
FILE = 'io_test_bench_file.txt'

File.open(FILE, 'w'){ |fh|
   1000.times{ |n|
      fh.puts "This is line: #{n}"
   }
}

(ARGV[0] || 5).to_i.times do
  Benchmark.bm(30) do |x|
     # Class Methods
#     x.report('IO.foreach(file)'){
#        MAX.times{ IO.foreach(FILE){} }
#     }

     x.report('IO.read(file)'){
       file = File.open(FILE)
        MAX.times{ file.read(); file.seek(0) }
        file.close
     }

#     x.report('IO.read(file, 100)'){
#        MAX.times{ IO.read(FILE, 100) }
#     }

#     x.report('IO.read(file, 100, 20)'){
#        MAX.times{ IO.read(FILE, 100, 20) }
#     }
  end
end
File.delete(FILE) if File.exists?(FILE)