我們正在編寫一些將數據寫入數組的方法(myFunc)。該數組必須是類的一個字段(MyClass)。 實施例:C++:填充數組的時間太長
class MyClass {
public:
MyClass(int dimension);
~MyClass();
void myFunc();
protected:
float* _nodes;
};
MyClass::MyClass(int dimension){
_nodes = new float[dimension];
}
void MyClass::myFunc(){
for (int i = 0; i < _dimension; ++i)
_nodes[i] = (i % 2 == 0) ? 0 : 1;
}
方法myFunc的被稱爲近10000倍,它需要鄰近9-10秒(與其他方法)。
但是,如果我們定義爲myFunc的:
void MyClass::myFunc(){
float* test = new float[_dimension];
for (int i = 0; i < _dimension; ++i)
test[i] = (i % 2 == 0) ? 0 : 1;
}
我們PROGRAMM工作更快 - 它需要近2-3秒(如果它是接近10000次卡列斯)。
在此先感謝!
您使用的編譯器是什麼,目標平臺是什麼? – 2013-04-21 08:20:58
目標平臺是Windows x64,編譯器是x86_64-v64-mingw32 4.7.0 – Damir 2013-04-21 08:21:52
這沒有任何意義。你看過彙編程序的功能嗎?我看不出有什麼區別,只有一個測試在堆上,另一個在堆棧上。 – SinisterMJ 2013-04-21 08:23:13