アクセサ

アクセサのジレンマ

関数呼び出しのオーバーヘッドと,情報の隠蔽
以下は,10億回繰り返して呼び出したときの結果
const   2.12            // ハードコードした数字へのアクセス
const val       2.04    // const宣言した定数変数へのアクセス
val     2.05            // 通常のローカル変数へのアクセス
Hoge.val        2.14    // オブジェクトのメンバ変数へのダイレクトなアクセス
Hoge::getVal()  6.73    // メンバ関数(アクセサ)経由のアクセス
Hoge::IgetVal() 6.43    // インライン化したメンバ関数によるアクセス
→ -O3 を付けたら全て 0秒 になった!!!
-funroll-loops だけでは 0.1秒 ぐらいしか変わらず。
-march=pentium4 だけでも差はなし。
最終更新:2010年01月07日 11:50
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。