Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- #define X 512
- #define Y 512
- #define Z 512
- #define N 16
- using namespace std;
- inline void set1(int*** a, int x, int y, int z)
- {
- a[x][y][z] = 63;
- }
- inline void set2(int* a, int x, int y, int z)
- {
- a[x * Y * Z + y * Z + z] = 63;
- }
- inline void set3(int* a, int i)
- {
- a[i] = 63;
- }
- inline double dt(clock_t t)
- {
- return (double)(clock() - t) / CLOCKS_PER_SEC * 1000;
- }
- inline void printdt(double dt)
- {
- cout << "dt: " << dt << "ms" << endl;
- }
- inline double avg(double* d, int n)
- {
- double v = 0;
- for (int i = 0; i < n; i++)
- v += d[i];
- v /= n;
- return v;
- }
- int main(int argc, char* argv[])
- {
- clock_t t;
- double* d = new double[N];
- for (int n = 0; n < N; n++)
- {
- int* a = new int[X * Y * Z];
- t = clock();
- for (int i = 0; i < X * Y * Z; i++)
- {
- a[i] = 34;
- }
- d[n] = dt(t);
- delete[] a;
- }
- printdt(avg(d, N));
- for (int n = 0; n < N; n++)
- {
- int* a = new int[X * Y * Z];
- t = clock();
- for (int i = 0; i < X * Y * Z; i++)
- {
- set3(a, i);
- }
- d[n] = dt(t);
- delete[] a;
- }
- printdt(avg(d, N));
- for (int n = 0; n < N; n++)
- {
- int*** a = new int**[X];
- for (int x = 0; x < X; x++)
- {
- a[x] = new int*[Y];
- for (int y = 0; y < Y; y++)
- {
- a[x][y] = new int[Z];
- }
- }
- t = clock();
- for (int x = 0; x < X; x++)
- {
- for (int y = 0; y < Y; y++)
- {
- for (int z = 0; z < Z; z++)
- {
- a[x][y][z] = 34;
- }
- }
- }
- d[n] = dt(t);
- for (int x = 0; x < X; x++)
- {
- for (int y = 0; y < Y; y++)
- {
- delete[] a[x][y];
- }
- delete[] a[x];
- }
- }
- printdt(avg(d, N));
- for (int n = 0; n < N; n++)
- {
- int*** a = new int**[X];
- for (int x = 0; x < X; x++)
- {
- a[x] = new int*[Y];
- for (int y = 0; y < Y; y++)
- {
- a[x][y] = new int[Z];
- }
- }
- t = clock();
- for (int x = 0; x < X; x++)
- {
- for (int y = 0; y < Y; y++)
- {
- for (int z = 0; z < Z; z++)
- {
- set1(a, x, y, z);
- }
- }
- }
- d[n] = dt(t);
- for (int x = 0; x < X; x++)
- {
- for (int y = 0; y < Y; y++)
- {
- delete[] a[x][y];
- }
- delete[] a[x];
- }
- }
- printdt(avg(d, N));
- for (int n = 0; n < N; n++)
- {
- int* a = new int[X * Y * Z];
- t = clock();
- for (int x = 0; x < X; x++)
- {
- for (int y = 0; y < Y; y++)
- {
- for (int z = 0; z < Z; z++)
- {
- a[x * Y * Z + y * Z + z] = 34;
- }
- }
- }
- d[n] = dt(t);
- delete[] a;
- }
- printdt(avg(d, N));
- for (int n = 0; n < N; n++)
- {
- int* a = new int[X * Y * Z];
- t = clock();
- for (int x = 0; x < X; x++)
- {
- for (int y = 0; y < Y; y++)
- {
- for (int z = 0; z < Z; z++)
- {
- set2(a, x, y, z);
- }
- }
- }
- d[n] = dt(t);
- delete[] a;
- }
- printdt(avg(d, N));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement