0

我正在尝试调试我的游戏代码。我正在为 iOS 开发游戏,我的代码使用了很多 IF 语句。我想知道使用这些时性能是否会受到很小的影响。

谢谢

4

2 回答 2

2

当然,分支时会影响性能。

但是没有分支就无法做出合理的程序。

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

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

于 2012-06-19T07:36:39.130 回答
2

这取决于您在哪里使用 if 语句,以正确的方式使用 if 有一些性能

我会陈述其中的一些

  • 总是在 else 之前使用最有可能发生的 if,先使用更常见的情况,然后使用不太可能发生的情况
  • 尝试在循环之前使用 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
}
于 2012-06-19T07:40:32.680 回答