仕事で Linux C++ プログラム設計の問題が発生しました。
関数 f() は 2 つの場所で呼び出されます。インラインとして宣言されています。
1 番目の場所では、f() が 10000 回呼び出されます。呼び出しのオーバーヘッドを減らすために、手動でインライン化 (f() 本体を呼び出し元にコピー) する必要があります。その効果は結果によって確認されています。
2 番目の場所では、1 番目とは異なる目的で f() が 1 回だけ呼び出されます。
さらなる作業のために、f() 内でいくつかの変更を加えることができます。手動でインライン化する場合は、f() 本体の 2 番目の場所に同じ変更を加えて、1 番目と 2 番目の f() が常にまったく同じになるようにする必要があります。
このように1位と2位の同期を取るのは難しい。
デバッグには gdb を使用する必要があるため、マクロは使用しません。
__attribute__ ((always_inline))
当社のシステムではサポートされていません。