require 'benchmark' class Object def foo(*args, **kw) bar(*args, **kw) end ruby2_keywords def baz(*args) bar(*args) end def bar(*args) args end end h = {a: 1} puts(Benchmark.measure do 100000.times do foo() foo(**h) foo(1) foo(1, **h) end end) puts(Benchmark.measure do 100000.times do baz() baz(**h) baz(1) baz(1, **h) end end)