#include "StdAfx.h" #include "TestCode.h" CTestCode::CTestCode(void) { } CTestCode::~CTestCode(void) { } DWORD CTestCode::ArrayAccessByIndex(const int repeat, const int arraySize) { ASSERT(arraySize > 0); ASSERT(repeat > 0); int* data = new int[arraySize]; m_Dummy.resize(arraySize); // 배열 초기화 for(int i = 0; i < arraySize; ++i) { data[i] = i; } // 시작 시간 기록 DWORD start = GetTickCount(); for(int j = 0; j < repeat; ++j) { int max = data[0]; int min = data[0]; int sum = 0; for(int i = 0; i < arraySize; ++i) { max = max(data[i], max); min = min(data[i], min); sum += data[i]; } m_Dummy.push_back(max + min + sum); } // 종료 시간 기록 DWORD end = GetTickCount(); return end - start; } DWORD CTestCode::ArrayAccessByPtr(const int repeat, const int arraySize) { ASSERT(arraySize > 0); ASSERT(repeat > 0); int* data = new int[arraySize]; int* it = data; int* itE = data + arraySize; m_Dummy.resize(arraySize); // 배열 초기화 for(int i = 0; i < arraySize; ++i, ++it) { *it = i; } // 시작 시간 기록 DWORD start = GetTickCount(); for(int j = 0; j < repeat; ++j) { int max = data[0]; int min = data[0]; int sum = 0; for(it = data; it != itE; ++it) { max = max(*it, max); min = min(*it, min); sum += *it; } m_Dummy.push_back(max + min + sum); } // 종료 시간 기록 DWORD end = GetTickCount(); return end - start; }