gpt4 book ai didi

objective-c - 通过 "self."访问属性是否比直接访问 ivar 慢?

转载 作者:行者123 更新时间:2023-12-04 05:42:10 26 4
gpt4 key购买 nike

例如,如果我有一个属性 index和一个 ivar _index , 使用 self.index 会更慢吗? , [self index][self setIndex:] ?

最佳答案

使用访问器会产生开销,至少是方法调用。

也就是说,猜测和证明是不同的东西。开销可能很大,也可能不大。在任何情况下,分析应用程序将显示 CPU 时间花费在哪里以及应该优化什么。我严重怀疑在直接 ivars 上使用访问器会影响任何应用程序,应该避免使用访问器。

原子和复制属性会慢得多,这些选择会产生更大的影响,应该更仔细地考虑。在适当的时候使用它们。

但答案在于分析您的应用程序。

编辑:

访问器有很多好处:封装、客户端、派生类和类本身之间的代码一致性、覆盖、在需要时调试属性访问、只读访问检查……有很多很好的理由来支付少量的性能价格。所有好的理由并不总是足够好。 ;)

如果访问器成为问题,我会说 Objective-C 类可能不是该工作的合适选择。 C++ 类有更多的机会变得更快:非虚拟方法、内联方法、基于堆栈的实例......

关于objective-c - 通过 "self."访问属性是否比直接访问 ivar 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11154178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com