ゲームコードをデバッグしようとしています。iOS 用のゲームを開発していますが、コードで多くの IF ステートメントを使用しています。これらを使用すると、パフォーマンスにわずかな影響があるかどうかを知りたい.
ありがとう
もちろん、分岐時にはパフォーマンス ヒットがあります。
しかし、分岐がなければまともなプログラムは作れません。
したがってif
、 を使用し、プログラムのプロファイリングによってコード内の特定の場所に問題が検出された場合は、分岐の数を減らすか、ループから除外できるかどうかを確認してください。ただし、コードが明確である限り、あまり注意を払わないでください。
ほとんどの場合、多数の最初の影響はif
読みやすさと保守性です。しかし、時期尚早の最適化は、多くの場合、これらのトピックに大きな打撃を与えます。
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
}