Hacker News new | past | comments | ask | show | jobs | submit login

I don't know the authors reason but I've personally always avoided refinements after first reading about their performance hit for JRuby code[0].

I read somewhere recently that even for MRI ruby you can take a 40% hit when using refinements (but please take that with a big pinch of salt as I can't find the source right now).

0. http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/...




The source is me: https://gist.github.com/casperisfine/1c46f05cccfa945cd156f44...

Note that this overhead apply as soon as a refinement is defined for a method regardless of wether it's ever active.

That 40% figure is for an empty method. So for "big" methods that are infrequently called it's probably fine, but it should really be avoided in hotspots.


Aha! Excellent, thank you.

For me refinements are a bit like meta-programming; I'm glad they exist but I think there's other ways to get the same result which are easier to live with.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: