我意识到在将类的方法移动到扩展时不应该存在运行时性能差异(如Swift extension和are extensions bad for performance in swift?中所述)。
但是我找不到很多关于运行时性能是否存在差异的文档,方法是将必要的private
属性更改为fileprivate
,这通常是为了允许方法(移动到与课程相同的文件中的扩展名,以便访问它们。
是否有人知道任何性能差异? (我不关心编译时差,我认为在这种情况下不存在,只是运行时。)
答案 0 :(得分:3)
为什么会有这样的差异?这些隐私条款主要是编译器禁止某些类型访问的注释。
运行时的重要收益来自于使用整个模块优化和/或声明您的类final
。这样可以关闭动态调度。