C++で配列に値を割り当てるのにどれくらいの時間がかかるのでしょうか。
Iは、配列ARR = 0を割り当て、ARR> 20C++配列値の代入時刻
#include<iostream>
#include <windows.h>
using namespace std;
#define N 100000000
int arr[N] = { 0, };
int main(){
int d;
int *data;
data = arr;
double start = GetTickCount();
for(int i = 0; i < N; i++){
if (data[i] > 20){ //All data is zero
// d = data[i];
data[i] = 10;
}
}
double end = GetTickCount();
cout << (end - start)/(double)1000 << endl;
return -1;
}
場合次いで、ARRの値を変更するコードすべてのデータがより少ないので、私は、ARRするために割り当てられたデータが存在しないと思う をテスト20、
ですので、計算時間は0に近いはずですが、計算時間は0.188秒です。
理由は何ですか?
的環境:Visual Studioの2013コミュニティ
コンパイルオプション(optimaztion):/O2(0.188s)、/Ox(0.141)
最適化を有効にしましたか? – nwp
@nwp彼はデフォルトに比べて、彼をオフにする必要があると思います。 – kabanus
@kabanusすべてのコンパイラとIDE私は、実行時のパフォーマンスではなく、デバッグ用に最適化することをデフォルトで知っています。 – nwp