I still don't know "why" even after reading this. The highlighted block of C doesn't tell me anything and neither does the comment on it. As far as I can tell, this is just a benchmark with no explanation.
"Why attr_reader and attr_writer are faster than def
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."
I'll go edit the post to make it more clear that you need to follow the links through the code to get the actual answer... it's more involved than a single snippet.
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.
Really enjoying this "Please sign in to save view settings" modal box that pops up when I try to move the divider between the post and the source code. Who thought that was a good idea?
At least it does it when you perform an action. It could have just popped in your face after 10 seconds... Either way, it's obnoxious and makes me want to not use that site.