Ker*_*ido 2 c++ delegates function objective-c
我听说在Objective-C中调用处理程序(委托等)比在C++中调用虚函数更快.这是真的吗?如果是这样,怎么会这样?
AFAIK,虚拟功能调用起来并不慢.至少,这是我对调用虚函数时会发生什么的理解:
vtbl.uintptr_t.call指示.不幸的是,我不知道Objective-C所以我很难比较性能.但至少,虚函数调用的机制看起来并不那么慢,对吧?静态函数调用以外的其他东西怎么能更快?
当然,这完全取决于实现.我不知道Obj-C方法调用是否比虚函数调用"更快",但它肯定可以在球场上 - 这里有关于SO的机制的讨论:
和Mike Ash在这里有更多:
http://www.mikeash.com/pyblog/friday-qa-2009-03-20-objective-c-messaging.html
最重要的是,可以缓存选择器,如果您正在调用的选择器在运行时缓存,则调度按虚函数调用的操作顺序进行.
也: