1 2 #include <petscsys.h> 3 #include <petsctime.h> 4 5 int main(int argc,char **argv) 6 { 7 PetscLogDouble x,y; 8 PetscLogEvent e1; 9 PetscBool flg; 10 11 PetscCall(PetscInitialize(&argc,&argv,0,0)); 12 PetscLogEventRegister("*DummyEvent",0,&e1); 13 /* To take care of the paging effects */ 14 PetscCall(PetscTime(&x)); 15 PetscCall(PetscLogEventBegin(e1,&x,0,0,0)); 16 PetscCall(PetscLogEventEnd(e1,&x,0,0,0)); 17 18 PetscCall(PetscTime(&x)); 19 /* 10 Occurrences of the dummy event */ 20 PetscCall(PetscLogEventBegin(e1,&x,0,0,0)); 21 PetscCall(PetscLogEventEnd(e1,&x,0,0,0)); 22 PetscCall(PetscLogEventBegin(e1,&x,&y,0,0)); 23 PetscCall(PetscLogEventEnd(e1,&x,&y,0,0)); 24 PetscCall(PetscLogEventBegin(e1,&y,0,0,0)); 25 PetscCall(PetscLogEventEnd(e1,&y,0,0,0)); 26 PetscCall(PetscLogEventBegin(e1,&x,0,0,0)); 27 PetscCall(PetscLogEventEnd(e1,&x,0,0,0)); 28 PetscCall(PetscLogEventBegin(e1,&x,&y,0,0)); 29 PetscCall(PetscLogEventEnd(e1,&x,&y,0,0)); 30 PetscCall(PetscLogEventBegin(e1,&y,0,0,0)); 31 PetscCall(PetscLogEventEnd(e1,&y,0,0,0)); 32 PetscCall(PetscLogEventBegin(e1,&x,0,0,0)); 33 PetscCall(PetscLogEventEnd(e1,&x,0,0,0)); 34 PetscCall(PetscLogEventBegin(e1,&x,&y,0,0)); 35 PetscCall(PetscLogEventEnd(e1,&x,&y,0,0)); 36 PetscCall(PetscLogEventBegin(e1,&y,0,0,0)); 37 PetscCall(PetscLogEventEnd(e1,&y,0,0,0)); 38 PetscCall(PetscLogEventBegin(e1,&x,&e1,0,0)); 39 PetscCall(PetscLogEventEnd(e1,&x,&e1,0,0)); 40 41 PetscCall(PetscTime(&y)); 42 fprintf(stderr,"%-15s : %e sec, with options : ","PetscLogEvent",(y-x)/10.0); 43 44 PetscCall(PetscOptionsHasName(NULL,"-log",&flg)); 45 if (flg) fprintf(stderr,"-log "); 46 PetscCall(PetscOptionsHasName(NULL,"-log_all",&flg)); 47 if (flg) fprintf(stderr,"-log_all "); 48 PetscCall(PetscOptionsHasName(NULL,"-log_view",&flg)); 49 if (flg) fprintf(stderr,"-log_view "); 50 PetscCall(PetscOptionsHasName(NULL,"-log_mpe",&flg)); 51 if (flg) fprintf(stderr,"-log_mpe "); 52 53 fprintf(stderr,"\n"); 54 55 PetscCall(PetscFinalize()); 56 return 0; 57 } 58