1d8e9fea7SSatish Balay #ifndef lint 2*029af93fSBarry Smith static char vcid[] = "$Id: PetscMalloc.c,v 1.8 1997/03/09 18:00:35 bsmith Exp bsmith $"; 3d8e9fea7SSatish Balay #endif 4d8e9fea7SSatish Balay 5173c0623SSatish Balay #include "stdio.h" 6173c0623SSatish Balay #include "petsc.h" 7173c0623SSatish Balay #include "sys.h" 8173c0623SSatish Balay 9173c0623SSatish Balay int main( int argc, char **argv) 10173c0623SSatish Balay { 1147794344SBarry Smith PLogDouble x, y; 1247794344SBarry Smith double value; 1398d6af09SSatish Balay void *arr[1000], *dummy; 14173c0623SSatish Balay int ierr, i, flg, rand1[1000], rand2[1000]; 1577c4ece6SBarry Smith PetscRandom r; 16173c0623SSatish Balay 1777c4ece6SBarry Smith PetscInitialize(&argc, &argv,0,0); 18173c0623SSatish Balay 19*029af93fSBarry Smith ierr = PetscRandomCreate( PETSC_COMM_SELF,RANDOM_DEFAULT,&r); CHKERRQ(ierr); 20173c0623SSatish Balay for (i=0; i<1000; i++) { 2177c4ece6SBarry Smith ierr = PetscRandomGetValue(r, &value); CHKERRQ(ierr); 22173c0623SSatish Balay rand1[i] = (int ) (value* 144327); 2377c4ece6SBarry Smith ierr = PetscRandomGetValue(r, &value); CHKERRQ(ierr); 24173c0623SSatish Balay rand2[i] = (int ) (value* 144327); 25173c0623SSatish Balay } 26173c0623SSatish Balay 2798d6af09SSatish Balay /* Take care of paging effects */ 2898d6af09SSatish Balay dummy = PetscMalloc(100); CHKPTRA(dummy); 2998d6af09SSatish Balay PetscFree(dummy); 300a26283dSSatish Balay x = PetscGetTime(); 3198d6af09SSatish Balay 32173c0623SSatish Balay /* Do all mallocs */ 33173c0623SSatish Balay for (i=0 ; i< 1000; i++) { 34173c0623SSatish Balay arr[i] = PetscMalloc(rand1[i]); CHKPTRA( arr[i]); 35173c0623SSatish Balay } 36173c0623SSatish Balay 37173c0623SSatish Balay x = PetscGetTime(); 38173c0623SSatish Balay 39173c0623SSatish Balay /* Do some frees */ 40173c0623SSatish Balay for (i=0; i< 1000; i+=2) { 41173c0623SSatish Balay PetscFree(arr[i]); 42173c0623SSatish Balay } 43173c0623SSatish Balay 44173c0623SSatish Balay /* Do some mallocs */ 45173c0623SSatish Balay for (i=0; i< 1000; i+=2) { 46173c0623SSatish Balay arr[i] = PetscMalloc(rand2[i]); CHKPTRA( arr[i]); 47173c0623SSatish Balay } 48173c0623SSatish Balay y = PetscGetTime(); 49173c0623SSatish Balay 50173c0623SSatish Balay for (i=0; i< 1000; i++) { 51173c0623SSatish Balay PetscFree(arr[i]); 52173c0623SSatish Balay } 53173c0623SSatish Balay 54c0e5a298SSatish Balay fprintf(stderr,"%-15s : %e sec , with options : ","PetscMalloc",(y-x)/500.0); 55173c0623SSatish Balay if(OptionsHasName(PETSC_NULL,"-trmalloc",&flg),flg) fprintf(stderr,"-trmalloc "); 56173c0623SSatish Balay fprintf(stderr,"\n"); 57173c0623SSatish Balay 5877c4ece6SBarry Smith PetscRandomDestroy(r); 59173c0623SSatish Balay PetscFinalize(); 60173c0623SSatish Balay return 0; 61173c0623SSatish Balay } 62