Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 Objective-C 中使用方法调配时会产生哪些性能损失?
如果有的话,哪些编译器优化会因消息混合而失败?
Swizzling 使 Objective-C 运行时刷新其方法缓存。如果您在程序中尽早进行所有调配,这可能不会产生明显的影响。
编译器无法优化方法调用,因为 Objective-C 允许重写任何方法,即使在运行时(与 swizzling 一样)。所以无论你是否使用它,你都已经付出了 swizzling 的性能代价。