Objective C message dispatch mechanism

Posted by Dolphin on Stack Overflow See other posts from Stack Overflow or by Dolphin
Published on 2009-06-11T16:21:20Z Indexed on 2010/03/13 19:15 UTC
Read the original article Hit count: 509

Filed under:
|

I am just staring to play around with Objective C (writing toy iPhone apps) and I am curious about the underlying mechanism used to dispatch messages. I have a good understanding of how virtual functions in C++ are generally implemented and what the costs are relative to a static or non-virtual method call, but I don't have any background with Obj-C to know how messages are sent. Browsing around I found this loose benchmark and it mentions IMP cached messages being faster than virtual function calls, which are in turn faster than a standard message send.

I am not trying to optimize anything, just get deeper understanding of how exactly the messages get dispatched.

  • How are Obj-C messages dispatched?
  • How do Instance Method Pointers get cached and can you (in general) tell by reading the code if a message will get cached?
  • Are class methods essentially the same as a C function (or static class method in C++), or is there something more to them?

I know some of these questions may be 'implementation dependent' but there is only one implementation that really counts.

© Stack Overflow or respective owner

Related posts about objective-c

Related posts about Performance