プログラミング

C++速度実験!メンバ変数とGetterはどっちが速い?

はじめに

普段からC++で中~大規模なプログラムを書いていると、どうしても気になってくるのが処理速度。この記事では個人的に気になった「メンバ変数アクセスとGetterでのアクセスはどの程度の処理速度差が出るのか」を実験した。

実験条件

実行環境

実験は僕のノートPCで行いましたが、簡単に実行環境を載せておきます。

IDECLion 2017.1.3 © Jetbrains
CPUIntel(R) Core(TM) i7-5500U CPU @ 2.40GHz(4 CPUs)
メモリ8GB

コード

先にソースコードを載せておきます。時間計測はC++11でサポートされているchronoを使っています。また試行回数は10回で、結果はその平均とします。

そして実験は4種類で、メンバ変数を直接参照、Getterで参照に加え、気になったので型を変えて実験しました。

実験結果

実験結果は以下の通り!

実験1([int]メンバ変数を直接参照)0.26400s
実験2([double]メンバ変数を直接参照)0.61150s
実験3([int]メンバ変数をGetter参照)0.33610s
実験4([double]メンバ変数をGetter参照)0.63050s

まとめ

実験結果よりわずかであるがメンバ変数を直接参照したほうが速いことが分かった。ただ想像していたよりも大きな差はなかった。

やっぱり浮動小数点型って処理速度遅いのねー。

[bfcc id="cppex1"]


スポンサードリンク