C++ examples for Data Type:time
Exploring the Performance Impacts of Memory Access Patterns
#include <chrono> #include <iostream> using namespace std; const int NUM_ROWS{ 10000 }; const int NUM_COLUMNS{ 1000 }; int elements[NUM_ROWS][NUM_COLUMNS]; int* pElements[NUM_ROWS][NUM_COLUMNS]; int main(int argc, char* argv[]) { for (int i{ 0 }; i < NUM_ROWS; ++i) {/*from w ww. j ava 2 s . c o m*/ for (int j{ 0 }; j < NUM_COLUMNS; ++j) { elements[i][j] = i*j; pElements[i][j] = new int{ elements[i][j] }; } } auto start = chrono::high_resolution_clock::now(); for (int i{ 0 }; i < NUM_ROWS; ++i) { for (int j{ 0 }; j < NUM_COLUMNS; ++j) { const int result{ elements[j][i] }; } } auto end = chrono::high_resolution_clock::now(); auto difference = end - start; cout << "Time taken for j then i: " << chrono::duration_cast<chrono::microseconds>(difference).count() << " microseconds!" << endl; start = chrono::high_resolution_clock::now(); for (int i{ 0 }; i < NUM_ROWS; ++i) { for (int j{ 0 }; j < NUM_COLUMNS; ++j) { const int result{ elements[i][j] }; } } end = chrono::high_resolution_clock::now(); difference = end - start; cout << "Time taken for i then j: " << chrono::duration_cast<chrono::microseconds>(difference).count() << " microseconds!" << endl; start = chrono::high_resolution_clock::now(); for (int i{ 0 }; i < NUM_ROWS; ++i) { for (int j{ 0 }; j < NUM_COLUMNS; ++j) { const int result{ *(pElements[i][j]) }; } } end = chrono::high_resolution_clock::now(); difference = end - start; cout << "Time taken for pointers with i then j: " << chrono::duration_cast<chrono::microseconds>(difference).count() << " microseconds!" << endl; return 0; }