Objective-C方法旋转性能

Objective-C method swizzling performance

提问人:Ilea Cristian 提问时间:7/21/2015 最后编辑:O. JonesIlea Cristian 更新时间:3/14/2016 访问量:391

问:

在 Objective-C 中使用方法旋转时会出现哪些性能损失?

哪些(如果有的话)编译器优化会因消息抖动而失败?

Objective-C 性能 Clang LLVM 方法-swizzling

评论

7赞 Tudor Luca 7/22/2015
这个问题不能产生基于意见的答案。一个了解编译器东西的人可以用事实来回答它。@pjs和同事,停止狩猎点。
4赞 Andra Todorescu 7/22/2015
我也想知道这个问题的答案。

答:

5赞 rob mayoff 3/7/2016 #1

Swizzling 使 Objective-C 运行时刷新其方法缓存。如果你在程序中尽早完成所有的旋转,这可能不会产生明显的影响。

编译器无法执行太多优化方法调用的操作,因为 Objective-C 允许重写任何方法,即使在运行时也是如此(如 swizzling)。因此,无论您是否使用它,您都已经付出了旋转的性能代价。