著者が「高度に最適化されている」と主張するコードのチャンクで作業を始めたところです。ある時点で、彼らはこれを行います:
namespace somename
{
static float array[N];
}
float Someclass::some_function(std::vector<float>& input)
{
// use somename::array in some way
return result;
}
somename::array
永続性コード(私たちがほとんど制御できない)の問題のため、作成者はクラスに含まれていません。some_function
このクラスは、が呼び出されたときに配列に対してO(N ^ 2)操作を実行します。したがってarray
、関数呼び出し内に移動すると、
float Someclass::some_function(std::vector<float>& input)
{
float array[N];
// use somename::array in some way
return result;
}
パフォーマンスの低下を予想するのは合理的ですか?言い換えれば、多くの異なるシステムやコンパイラーで、作成者の最適化(関数内の配列ではなくグローバル配列を使用)がパフォーマンスに役立つことは明らかですか?