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: 537
objective-c
|Performance
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