関数の呼び出しコスト

function-performance.png

C++の場合

速い順で並べるとこうなる。

Member Call(メンバー関数呼出し)> Static Call(静的関数呼び出し) > Pointer Member Call(ポインタを使ってのメンバー呼出し)> Virtual Call(仮想関数呼出し)

仮想関数呼び出しだけ飛び抜けて遅いです。
オブジェクト指向は便利だけど、使いドコロに要注意!

引数の注意

オブジェクトを値渡しをしてはいけない オブジェクトの一時的コピーが作成されるから。これが非常にコストがかかる。
オブジェクトは必ず参照として渡すこと
最新のハードウェアを使用している場合、参照またはポインタのサイズは大体32bitである


performance

サポートサイト Wikidot.com performance