10/06/13 08:48:28
>>13
今のCPUのようにパイプライン段数が深くなったCPUでは、関数ポインタの
呼び出しの時に一度パイプラインをフラッシュして投機実行も破棄してしま
うのでパフォーマンスは落ちる
C++の仮想関数も同じ仕組みを使っているから、パフォーマンスを最大限に
追求する場面では仮想関数はあまり使わない
URLリンク(gigo.retrogames.com)
でも上記のようなURLを見るとあまり関係ないようである
実際Cのqsort()とC++のsort()ではsort()の方が速いが、それは関数ポインタ
による物ではなく、主にデータのコピー方法によるものである
qsort()はバイト単位でコピーするが、sort()はtemplateを使っているので
それぞれのデータ型に最も適した方法でコピーするから速いのである