14cd03b37SPatrick Sanan #include <petsctime.h>
2b620a312SSatish Balay
main(int argc,char ** argv)3b620a312SSatish Balay int main(int argc, char **argv)
4b620a312SSatish Balay {
5b0a32e0cSBarry Smith PetscLogDouble x, y;
6d3093643SSatish Balay long int i, j, A[100000], ierr;
7b620a312SSatish Balay
8*9566063dSJacob Faibussowitsch PetscCall(PetscInitialize(&argc, &argv, 0, 0));
9b620a312SSatish Balay /* To take care of paging effects */
10*9566063dSJacob Faibussowitsch PetscCall(PetscGetCPUTime(&y));
11b620a312SSatish Balay
12b620a312SSatish Balay for (i = 0; i < 2; i++) {
13*9566063dSJacob Faibussowitsch PetscCall(PetscGetCPUTime(&x));
14b620a312SSatish Balay
15b620a312SSatish Balay /*
16b620a312SSatish Balay Do some work for at least 1 ms. Most CPU timers
17b620a312SSatish Balay cannot measure anything less than that
18b620a312SSatish Balay */
19b620a312SSatish Balay
206f2b61bcSKarl Rupp for (j = 0; j < 20000 * (i + 1); j++) A[j] = i + j;
21*9566063dSJacob Faibussowitsch PetscCall(PetscGetCPUTime(&y));
22b4d8b9abSSatish Balay fprintf(stdout, "%-15s : %e sec\n", "PetscGetCPUTime", (y - x) / 10.0);
23b620a312SSatish Balay }
24b620a312SSatish Balay
25*9566063dSJacob Faibussowitsch PetscCall(PetscFinalize());
26b122ec5aSJacob Faibussowitsch return 0;
27b620a312SSatish Balay }
28