これがマイクロ最適化であることは理解していますが、関数またはメンバー変数のいずれかを宣言すると、非実装static
と比較してパフォーマンスが向上するかどうかに興味がありますか?static
const
コンパイラが最適化するために使用できると読んだことを覚えているのでstatic
、同様の利点があるかどうか疑問に思いました。
これがマイクロ最適化であることは理解していますが、関数またはメンバー変数のいずれかを宣言すると、非実装static
と比較してパフォーマンスが向上するかどうかに興味がありますか?static
const
コンパイラが最適化するために使用できると読んだことを覚えているのでstatic
、同様の利点があるかどうか疑問に思いました。
static
それと非static
変数のセマンティクスが非常に異なることを考えると、宣言できるかどうかはstatic
実際にはパフォーマンスとは何の関係もありません。
また、キャッシュやその他の問題は「いいえ」を意味する場合があります。
構築に時間がかかる場合は、データ用である可能性があります (たとえば、事前に計算されたバッファーやディスクから読み取られたもの)。多くの場合、これはデータが不変である場合にのみ理想的です。
@DeadMGは、メンバー変数を静的に変更するとセマンティクスが完全に変更されることをすでに指摘しています。同じことが静的関数にも当てはまります。
一般に、答えは「いいえ」であり、static
パフォーマンスには役立ちません(また、どちらもconst
役立ちません)が、役立つ1つの方法static
は、静的関数が外部から表示されないため、呼び出す必要がないELF共有ライブラリを使用することです。プロシージャリンケージテーブルを使用します。これにより、共有ライブラリのコードを作成するときに検討する価値のある小さなパフォーマンス上の利点が得られます。