Why Ruby's attr_accessor is faster than getters and setters
omniref.com
omniref.com
I'll take a wild stab at why setting/getting `b` is slower. The author of the code has just inserted another call layer by manually defining the getter and setter in Ruby.
VM_METHOD_TYPE_ATTRSET and VM_METHOD_TYPE_IVAR are the reason attr_accessor is significantly faster than a normal method created with def. These are implemented as pure C functions without creating a new Ruby stack frame, or executing compiled Instruction Sequences inside the VM."
Sorry about that!