0
我有一個每秒運行數百次的渲染函數,它告訴我每幀需要多少毫秒來繪製。計算大小遞增的矢量的平均值
我做了一個函數來計算所有幀的當前渲染速度平均值,它使用std :: vector來保存所有前面的幀。
但是,每次運行我的程序時,存儲平均值的矢量都變得很大,並佔用了越來越多的內存,同時使我的程序減慢了近10倍(繪製速度)。
平均功能(請注意,我是一個C++初學者):
double average(std::vector<double> input_vector)
{
double total = 0;
for(unsigned int i = 0; i < input_vector.size(); i++)
{
total += input_vector.at(i);
}
return (total/(double)input_vector.size());
}
有人可以幫我解決這個問題?
謝謝
通過引用傳遞向量而不是值:'double average(std :: vector&input_vector)' - 此代碼每次都會製作整個向量的副本。 Oy公司。 –
另外,使用'operator []'而不是'at'。或者直接使用'std :: accumulate'。這可以在C++ 17 btw中自動並行化。 (還有libstdC++,但這不是你正在使用的。) –
謝謝你的提示。我將來一定會記住他們! – 0x22fe