1

この最適化の質問は、最後の日私を悩ませてきました。

私のプログラム(単純なローグライクゲーム)では、ビット単位のフラグを使用して、マップオブジェクトの属性を格納します。たとえば、それらがソリッドであるか、レンダリングされているかなどです。ただし、ポリモーフィズムを使用して適切な値を返すことはできました。

私の質問は、リンクリストループで使用した場合、他の方法よりも大幅に速いか遅いかということです。また、一方が他方よりも優れた実践ですか?

コードの例:

XMapObject *List = ListStart;

while(List != NULL)
{
    if(List->MapObjectFlags & MAPOBJECTFLAG_RENDER)
      OR
    if(List->Render())
    {
        return List->Type;
    }
    else
    {
        List = List->Next;
    }
}

bool XMapObject::Render()
{
     return 1;
}

ありがとう。

4

1 に答える 1

1

ビット演算は、仮想関数呼び出しよりも常に高速です。

于 2010-09-17T02:15:26.863 に答える