读一个布尔比读一个字符串更快吗?

时间:2017-08-15 11:45:06

标签: ios performance uiviewcontroller

我有一个非常基本的数组,它附加一个值,具体取决于用户是按一个按钮还是另一个按钮。一个函数将在我的应用程序的viewDidLoad()方法中调用,并将根据数组中的值执行一个函数(它将根据我正在查看的索引而有所不同,显然,但我们只关注第一个指数)。我可以使用“是”/“否”,String或者使用true / false,bool来附加数组。由于功能相对简单,我认识到这可能没什么大不了的,但我想为什么不尽我所能优化。让if(或switch)语句检查bool比较比string比较更快吗?或者是相反的方式?

3 个答案:

答案 0 :(得分:3)

性能更好的做bool比较,因为它恰好比较1个值(例如0 = 0或0 = 1),因为字符串必须比较字符串中的每个字符以找到匹配或不匹配。

TL:DR bool比率比字符串比较快

答案 1 :(得分:1)

因为读取布尔值本质上是二元选项,例如True / False,而不是比较,所以它比进行字符串比较更快。虽然在这种情况下它只是边缘化,但读取布尔值以进行更大规模的计算肯定是有益的。

答案 2 :(得分:1)

要回答您提出的问题 - 是的,比较bool比比较字符串更有效。

要回答您应该问的问题 - 针对您遇到瓶颈的情况优化性能,优化其他地方的简单性/可读性/可维护性。如果您不知道该部分是否是瓶颈,请了解如何衡量它。

在这种特殊情况下,有效和简单的情况可能是相同的,但是这个问题是错误的 - 不要在不重要的情况下尝试优化性能。