Skip to content

Conversation

yogeshjain999
Copy link

Add benchmarks to understand when to define method explicitly, forward method with def_delegator or use SimpleDelegator.

@yogeshjain999
Copy link
Author

Hey guys, any updates on this ?

@nirvdrum
Copy link
Collaborator

nirvdrum commented Apr 9, 2021

I just tried running this locally and the benchmark doesn't work with Ruby 2.7. It looks like you need to add require 'delegate'.

@yogeshjain999
Copy link
Author

@nirvdrum Thanks, fixed it.

It seem the difference between forwarded and delegated method has been increased in ruby >= 2.7.

Warming up -------------------------------------- method 307.381k i/100ms forwarded method 228.038k i/100ms delegated method 110.079k i/100ms Calculating ------------------------------------- method 3.103M (± 0.9%) i/s - 15.676M in 5.052459s forwarded method 2.299M (± 1.2%) i/s - 11.630M in 5.059510s delegated method 1.102M (± 0.9%) i/s - 5.614M in 5.095893s Comparison: method: 3102988.8 i/s forwarded method: 2298988.2 i/s - 1.35x (± 0.00) slower delegated method: 1101769.4 i/s - 2.82x (± 0.00) slower
Copy link

@krtschmr krtschmr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
3 participants