Objective-C方法调配性能

Ile*_*ian 8 performance objective-c llvm clang method-swizzling

在Objective-C中使用方法调配时会出现什么性能损失?

哪个(如果有的话)编译器优化被消息调整打败了?

rob*_*off 5

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

编译器无法优化方法调用,因为 Objective-C 允许覆盖任何方法,即使是在运行时(如 swizzling)。因此,无论您是否使用 swizzling,您都已经为此付出了性能代价。