タグ付けされた質問 「likely-unlikely」

10
Linuxカーネルの可能性のある/可能性の低いマクロはどのように機能し、それらの利点は何ですか?
私はLinuxカーネルのいくつかの部分を調べていて、次のような呼び出しを見つけました。 if (unlikely(fd < 0)) { /* Do something */ } または if (likely(!err)) { /* Do something */ } 私はそれらの定義を見つけました: #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) 最適化のためのものであることは知っていますが、どのように機能しますか?そして、それらを使用することでどのくらいのパフォーマンス/サイズの減少が期待できますか?そして、少なくともボトルネックコード(もちろん、ユーザー空間では)の面倒(そしておそらく移植性を失うこと)に値します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.