使用If语句在ios开发中是否有性能损失?

时间:2012-06-19 07:34:04

标签: ios xcode

我试图调试我的游戏代码。我正在为iOS开发游戏,我的代码使用了大量的IF语句。我想知道使用它们时是否会有非常小的性能损失。

由于

2 个答案:

答案 0 :(得分:2)

当然,分支时会有性能损失。

但如果没有分支,你就无法制定合理的计划。

所以使用if,如果通过分析程序来检测代码中特定位置的问题,请尝试查看是否可以减少分支数量或将它们排除在循环之外。但只要代码仍然清晰,就不要过分关注它。

大多数情况下,许多if的第一个影响是可读性和可维护性。但过早优化通常会对这些主题产生更大的影响。

答案 1 :(得分:2)

这取决于您使用if语句的位置,有一些关于以正确的方式使用if

的表现

我将陈述其中一些

  • 始终使用if最有可能发生在else之前,使用更常见的情况然后使用不太可能的情况
  • 尝试在循环之前使用if, 例如

而不是

BOOL isCase1 = [self isCase1];
for (int i = 0 ; i < 10000 ; i ++)
{
   if(isCase1)
   {
       //do something
   }
   else
   {
      //do some other thing
   }
}

使用此

   BOOL isCase1 = [self isCase1];

   if(isCase1)
   {
       for (int i = 0 ; i < 10000 ; i ++)
       {
       }
   }
   else
   {
       for (int i = 0 ; i < 10000 ; i ++)
       {
       }
   }

如果您确定某些代码导致性能问题改善(不要过早优化您的代码),请不要认为您需要在确定之前提高性能,大部分时间您的性能都会表现良好。

这些是一些案例,还有更多

<强>更新

你可以做的其他一些有用的事情,缓存你的布尔检查声明

例如

而不是

for (int i = 0 ; i < 10000 ; i ++)
{
   if([self isCase1]) //Do some thing
}

使用

//Cache the result inside a variable
BOOL isCase = [self isCase1];
for (int i = 0 ; i < 10000 ; i ++)
{
   if(isCase) //Do some thing
}