require 'benchmark'

def bench_args_cat(bm)
  bm.report("control, x = 1, 2") {
    100000.times {
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
      x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2; x = 1, 2
    }
  }
  bm.report("100k * 100 x = 1, *2") {
    100000.times {
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
      x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2; x = 1, *2
    }
  }
end

if $0 == __FILE__
  (ARGV[0] || 10).to_i.times { Benchmark.bm(30) {|bm| bench_args_cat(bm)} }
end