我刚刚开始使用作者声称“高度优化”的一大段代码。在某些时候,他们会这样做:
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;
}
预期性能下降是否合理?换句话说,跨许多不同的系统和编译器,作者的优化(使用全局数组而不是函数内部的数组)是否明显有助于提高性能?