19ee40678SPoul-Henning Kamp #include <stdlib.h> 29ee40678SPoul-Henning Kamp #include <stdio.h> 39ee40678SPoul-Henning Kamp #include <unistd.h> 49ee40678SPoul-Henning Kamp 59ee40678SPoul-Henning Kamp u_long NBUCKETS = 2000; 69ee40678SPoul-Henning Kamp u_long NOPS = 200000; 79ee40678SPoul-Henning Kamp u_long NSIZE = (16*1024); 89ee40678SPoul-Henning Kamp 99ee40678SPoul-Henning Kamp char **foo; 109ee40678SPoul-Henning Kamp 119ee40678SPoul-Henning Kamp int 129ee40678SPoul-Henning Kamp main(int argc, char **argv) 139ee40678SPoul-Henning Kamp { 149ee40678SPoul-Henning Kamp int i,j,k; 159ee40678SPoul-Henning Kamp 169ee40678SPoul-Henning Kamp if (argc > 1) NOPS = strtoul(argv[1],0,0); 179ee40678SPoul-Henning Kamp if (argc > 2) NBUCKETS = strtoul(argv[2],0,0); 189ee40678SPoul-Henning Kamp if (argc > 3) NSIZE = strtoul(argv[3],0,0); 199ee40678SPoul-Henning Kamp printf("BRK(0)=%x ",sbrk(0)); 209ee40678SPoul-Henning Kamp foo = malloc (sizeof *foo * NBUCKETS); 219ee40678SPoul-Henning Kamp memset(foo,0,sizeof *foo * NBUCKETS); 229ee40678SPoul-Henning Kamp for (i = 1; i <= 4096; i+=i) { 239ee40678SPoul-Henning Kamp for (j = 0 ; j < 40960/i && j < NBUCKETS; j++) { 249ee40678SPoul-Henning Kamp foo[j] = malloc(i); 259ee40678SPoul-Henning Kamp } 269ee40678SPoul-Henning Kamp for (j = 0 ; j < 40960/i && j < NBUCKETS; j++) { 279ee40678SPoul-Henning Kamp free(foo[j]); 289ee40678SPoul-Henning Kamp foo[j] = 0; 299ee40678SPoul-Henning Kamp } 309ee40678SPoul-Henning Kamp } 319ee40678SPoul-Henning Kamp 329ee40678SPoul-Henning Kamp for (i = 0 ; i < NOPS ; i++) { 339ee40678SPoul-Henning Kamp j = random() % NBUCKETS; 349ee40678SPoul-Henning Kamp k = random() % NSIZE; 359ee40678SPoul-Henning Kamp foo[j] = realloc(foo[j], k & 1 ? 0 : k); 369ee40678SPoul-Henning Kamp if (foo[j]) 379ee40678SPoul-Henning Kamp foo[j][0] = 1; 389ee40678SPoul-Henning Kamp } 399ee40678SPoul-Henning Kamp printf("BRK(1)=%x ",sbrk(0)); 409ee40678SPoul-Henning Kamp for (j = 0 ; j < NBUCKETS ; j++) { 419ee40678SPoul-Henning Kamp if (foo[j]) { 429ee40678SPoul-Henning Kamp free(foo[j]); 439ee40678SPoul-Henning Kamp foo[j] = 0; 449ee40678SPoul-Henning Kamp } 459ee40678SPoul-Henning Kamp } 469ee40678SPoul-Henning Kamp printf("BRK(2)=%x NOPS=%lu NBUCKETS=%lu NSIZE=%lu\n", 479ee40678SPoul-Henning Kamp sbrk(0),NOPS,NBUCKETS,NSIZE); 489ee40678SPoul-Henning Kamp return 0; 499ee40678SPoul-Henning Kamp } 50