1

これがマイクロ最適化であることは理解していますが、関数またはメンバー変数のいずれかを宣言すると、非実装staticと比較してパフォーマンスが向上するかどうかに興味がありますか?static

constコンパイラが最適化するために使用できると読んだことを覚えているのでstatic、同様の利点があるかどうか疑問に思いました。

4

3 に答える 3

7

staticそれと非static変数のセマンティクスが非常に異なることを考えると、宣言できるかどうかはstatic実際にはパフォーマンスとは何の関係もありません。

また、キャッシュやその他の問題は「いいえ」を意味する場合があります。

于 2012-05-29T21:47:37.710 に答える
1

構築に時間がかかる場合は、データ用である可能性があります (たとえば、事前に計算されたバッファーやディスクから読み取られたもの)。多くの場合、これはデータが不変である場合にのみ理想的です。

于 2012-05-29T21:47:20.613 に答える
0

@DeadMGは、メンバー変数を静的に変更するとセマンティクスが完全に変更されることをすでに指摘しています。同じことが静的関数にも当てはまります。

一般に、答えは「いいえ」であり、staticパフォーマンスには役立ちません(また、どちらもconst役立ちません)が、役立つ1つの方法staticは、静的関数が外部から表示されないため、呼び出す必要がないELF共有ライブラリを使用することです。プロシージャリンケージテーブルを使用します。これにより、共有ライブラリのコードを作成するときに検討する価値のある小さなパフォーマンス上の利点が得られます。

于 2012-05-29T23:02:06.970 に答える