【问题标题】:Objective-C method swizzling performanceObjective-C 方法调配性能
【发布时间】:2015-07-21 13:19:56
【问题描述】:

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

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

【问题讨论】:

  • 此问题无法生成基于意见的答案。一个知道编译器东西的人可以用事实来回答它。 @pjs and co,停止狩猎点。
  • 我也想知道这个问题的答案。

标签: objective-c performance clang llvm method-swizzling


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 2023-03-29
    • 2012-02-05
    • 1970-01-01
    相关资源
    最近更新 更多