1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
require 'benchmark/ips'
def call(*val)
case val
in [String => body]
1
in [Integer => status]
2
in [Integer, String] => response
3
in [Integer, Hash, String] => response
4
end
end
Benchmark.ips do |bm|
bm.report("first") do |i|
while i > 0
i-=1
call("ok")
end
end
bm.report("second") do |i|
while i > 0
i-=1
call(401)
end
end
bm.report("third") do |i|
while i > 0
i-=1
call(200, "ok")
end
end
bm.report("fourth") do |i|
while i > 0
i-=1
call(201, {}, "created")
end
end
end
|