8

在 Objective-C 中使用方法调配时会产生哪些性能损失?

如果有的话,哪些编译器优化会因消息混合而失败?

4

1 回答 1

5

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

编译器无法优化方法调用,因为 Objective-C 允许重写任何方法,即使在运行时(与 swizzling 一样)。所以无论你是否使用它,你都已经付出了 swizzling 的性能代价。

于 2016-03-07T00:46:25.587 回答