GCC での分岐予測の最適化
インテル アーキテクチャは、生成されたコードの分岐予測に影響を与えるメカニズムを提供します。 __builtin_expect() 関数を使用すると、GCC は分岐予測を特定の方向に強制できます。
__builtin_expect() の構文は次のとおりです:
long __builtin_expect (long exp, long c)
ここで:
たとえば、強制するには次の C コードで常に「真」の分岐を取るための分岐予測:
if (normal) { doSomethingNormal(); } else { exceptionalCase(); }
次のステートメントを使用します:
if (__builtin_expect(normal, 1))
使用法を簡略化するために、次のように定義するのが一般的です。マクロ:
#define likely(x) __builtin_expect (!!(x), 1) #define unlikely(x) __builtin_expect (!!(x), 0)
ただし、次の点に注意することが重要です:
以上がGCC で分岐予測の最適化を強化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。