2017-08-01 70 views
1

我知道在将类的方法移至扩展时不应该存在运行时性能差异(如Swift extensionare extensions bad for performance in swift?中回答的那样)。Swift:private/fileprivate运行时性能

但我找不到很多关于运行时性能是否有差异的文档,通过将必要的private属性更改为fileprivate,通常需要这些属性才能允许方法(移动到相同文件中的扩展名类),以访问它们。

有人知道任何性能差异? (我不在乎编译时间差异,我认为在这种情况下不存在,只是运行时。)

+1

你有没有过早优化的危险? – matt

+0

我同意@matt。此外,我希望两者之间的* runtime *性能很小,因为构建的二进制文件是一个单元。 – dfd

+0

可能吗?无论如何,我想知道答案,因为它可能对“优化时间”有用......谢谢! – nbloqs

回答

3

为什么会有这样的差异?这些隐私条款大多只是编译器禁止某些访问的注释。

运行时的重要收益来自使用整体模块优化和/或声明您的类final。这允许关闭动态调度。

+0

谢谢@matt。你知道是否可以链接到某些苹果公司关于这种类型的运行时性能问题的文档,或者与其他人使用仪器或类似软件进行测量?我只是好奇... – nbloqs