1*173c0623SSatish Balay #include "stdio.h" 2*173c0623SSatish Balay #include "petsc.h" 3*173c0623SSatish Balay #include "sys.h" 4*173c0623SSatish Balay 5*173c0623SSatish Balay int main( int argc, char **argv) 6*173c0623SSatish Balay { 7*173c0623SSatish Balay double x, y, value; 8*173c0623SSatish Balay void *arr[1000]; 9*173c0623SSatish Balay int ierr, i, flg, rand1[1000], rand2[1000]; 10*173c0623SSatish Balay SYRandom r; 11*173c0623SSatish Balay 12*173c0623SSatish Balay PetscInitialize(&argc, &argv,0,0,0); 13*173c0623SSatish Balay 14*173c0623SSatish Balay ierr = SYRandomCreate( MPI_COMM_SELF,RANDOM_DEFAULT,&r); CHKERRQ(ierr); 15*173c0623SSatish Balay for (i=0; i<1000; i++) { 16*173c0623SSatish Balay ierr = SYRandomGetValue(r, &value); CHKERRQ(ierr); 17*173c0623SSatish Balay rand1[i] = (int ) (value* 144327); 18*173c0623SSatish Balay ierr = SYRandomGetValue(r, &value); CHKERRQ(ierr); 19*173c0623SSatish Balay rand2[i] = (int ) (value* 144327); 20*173c0623SSatish Balay } 21*173c0623SSatish Balay 22*173c0623SSatish Balay /* Do all mallocs */ 23*173c0623SSatish Balay for (i=0 ; i< 1000; i++) { 24*173c0623SSatish Balay arr[i] = PetscMalloc(rand1[i]); CHKPTRA( arr[i]); 25*173c0623SSatish Balay } 26*173c0623SSatish Balay 27*173c0623SSatish Balay x = PetscGetTime(); 28*173c0623SSatish Balay 29*173c0623SSatish Balay /* Do some frees */ 30*173c0623SSatish Balay for (i=0; i< 1000; i+=2) { 31*173c0623SSatish Balay PetscFree(arr[i]); 32*173c0623SSatish Balay } 33*173c0623SSatish Balay 34*173c0623SSatish Balay /* Do some mallocs */ 35*173c0623SSatish Balay for (i=0; i< 1000; i+=2) { 36*173c0623SSatish Balay arr[i] = PetscMalloc(rand2[i]); CHKPTRA( arr[i]); 37*173c0623SSatish Balay } 38*173c0623SSatish Balay y = PetscGetTime(); 39*173c0623SSatish Balay 40*173c0623SSatish Balay for (i=0; i< 1000; i++) { 41*173c0623SSatish Balay PetscFree(arr[i]); 42*173c0623SSatish Balay } 43*173c0623SSatish Balay 44*173c0623SSatish Balay fprintf(stderr,"%-15s : %e sec , with options : ","PLogEvent",(y-x)/10.0); 45*173c0623SSatish Balay if(OptionsHasName(PETSC_NULL,"-trmalloc",&flg),flg) fprintf(stderr,"-trmalloc "); 46*173c0623SSatish Balay fprintf(stderr,"\n"); 47*173c0623SSatish Balay 48*173c0623SSatish Balay SYRandomDestroy(r); 49*173c0623SSatish Balay PetscFinalize(); 50*173c0623SSatish Balay return 0; 51*173c0623SSatish Balay } 52