我试图调试我的游戏代码。我正在为iOS开发游戏,我的代码使用了大量的IF语句。我想知道使用它们时是否会有非常小的性能损失。
由于
答案 0 :(得分:2)
当然,分支时会有性能损失。
但如果没有分支,你就无法制定合理的计划。
所以使用if
,如果通过分析程序来检测代码中特定位置的问题,请尝试查看是否可以减少分支数量或将它们排除在循环之外。但只要代码仍然清晰,就不要过分关注它。
大多数情况下,许多if
的第一个影响是可读性和可维护性。但过早优化通常会对这些主题产生更大的影响。
答案 1 :(得分:2)
这取决于您使用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
}