正在阅读一个布尔比阅读一个字符串更快?
问题描述:
我有一个非常基本的数组,附加一个值取决于用户是否点击一个按钮或另一个。一个函数将在我的应用程序的viewDidLoad()
方法中调用,并将根据数组中的值执行一个函数(它会根据我正在查看的索引而有所不同,但我们只关注第一个索引)。我可以在数组中添加“是”/“否”,String
s,或者使用true/false,bool
s。由于功能相对简单,我认识到这可能没有什么大不了的,但我认为为什么不尽可能地进行优化。 if
(或switch
)语句检查bool
比较比string
比较检查是否更快?或者是周围的其他方式?正在阅读一个布尔比阅读一个字符串更快?
答
由于它比较了1个值(例如0 = 0或0 = 1),因此字符串必须比较字符串中的每个字符以找到匹配或不匹配,所以执行bool比较会更好。
TL:DR布尔比较比字符串比较
答
更快,因为读一个boolean基本上是二元期权,e.g真/假,而不是一个比较,它比做一个字符串比较快。虽然在这种情况下它只是边际,但为更大的计算读取布尔值肯定会有好处。
答
要回答你问的问题 - 是的,比较bool
比比较字符串更高效。
要回答你应该问的问题 - 优化,你有瓶颈的性能,优化的简单/可读性/可维护性其他任何地方。如果你不知道这部分是否是瓶颈,请学习如何测量它。
在这种特定情况下的高效和简单的情况下可以是相同的,但是非常的问题是误导 - 不要试图优化性能的地方都无所谓。
添加从问题内容推导出的'android'和'java'标记。 – Thomas
删除了'android'和'java'标签,因为它似乎是一个iOS开发问题。 –