Add a benchmark and results for method calls with missing arguments

This commit is contained in:
R. Tyler Croy 2014-10-26 17:22:56 -07:00
parent 790130dccc
commit 5d2376a1e7
2 changed files with 42 additions and 0 deletions

View File

@ -0,0 +1,27 @@
require_relative 'bench_helper'
class MissingArgs
include Typedeaf
def method_with_params(buffer)
buffer.size + rand + rand
end
define :typedeaf_with_params, buffer: String do
buffer.size + rand + rand
end
end
blk = lambda do |buffer|
buffer.size + rand + rand
end
p = MissingArgs.new
Benchmark.ips do |x|
x.report('typedeaf method') { begin; p.typedeaf_with_params; rescue; end; }
x.report('normal method') { begin; p.method_with_params; rescue; end; }
x.report('a simple proc') { begin; blk.(); rescue; end; }
x.compare!
end

View File

@ -0,0 +1,15 @@
As of: 790130d
Calculating -------------------------------------
typedeaf method 2292 i/100ms
normal method 2889 i/100ms
a simple proc 2594 i/100ms
-------------------------------------------------
typedeaf method 27691.2 (±12.6%) i/s - 137520 in 5.057106s
normal method 34595.8 (±12.9%) i/s - 170451 in 5.028954s
a simple proc 31650.1 (±15.4%) i/s - 155640 in 5.058063s
Comparison:
normal method: 34595.8 i/s
a simple proc: 31650.1 i/s - 1.09x slower
typedeaf method: 27691.2 i/s - 1.25x slower