From bd28e36b038e8d15462f77cf751261467a219e69 Mon Sep 17 00:00:00 2001 From: phk Date: Sat, 26 Oct 1996 08:22:09 +0000 Subject: Update this to match my version. --- tools/test/malloc/Makefile | 25 ++++++++--------------- tools/test/malloc/main.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++ tools/test/malloc/malloc.c | 43 ---------------------------------------- 3 files changed, 57 insertions(+), 60 deletions(-) create mode 100644 tools/test/malloc/main.c delete mode 100644 tools/test/malloc/malloc.c (limited to 'tools/test') diff --git a/tools/test/malloc/Makefile b/tools/test/malloc/Makefile index 3cf3ee0..0db5977 100644 --- a/tools/test/malloc/Makefile +++ b/tools/test/malloc/Makefile @@ -1,23 +1,14 @@ PROG= malloc +SRCS= main.c malloc.c +.PATH: ${.CURDIR}/../../../lib/libc/stdlib + NOMAN= sorry -libcmalloc: - make clean - make "CFLAGS=-O2" - mv malloc libcmalloc +test: malloc @echo - @csh -x -c "time ./libcmalloc 500000 2000 8192" - @csh -x -c "time ./libcmalloc 50000000 2000 8192" - @csh -x -c "time ./libcmalloc 500000 14000 8192" - @csh -x -c "time ./libcmalloc 20000000 20000 2048" - -gnumalloc: - make clean - make "CFLAGS=-lgnumalloc -O2" - mv malloc gnumalloc - @csh -x -c "time ./gnumalloc 500000 2000 8192" - @csh -x -c "time ./gnumalloc 50000000 2000 8192" - @csh -x -c "time ./gnumalloc 500000 14000 8192" - @csh -x -c "time ./gnumalloc 20000000 20000 2048" + @csh -x -c "time ./malloc 500000 2000 8192" + @csh -x -c "time ./malloc 50000000 2000 8192" + @csh -x -c "time ./malloc 500000 14000 8192" + @csh -x -c "time ./malloc 20000000 20000 2048" .include diff --git a/tools/test/malloc/main.c b/tools/test/malloc/main.c new file mode 100644 index 0000000..4d1d380 --- /dev/null +++ b/tools/test/malloc/main.c @@ -0,0 +1,49 @@ +#include +#include +#include + +u_long NBUCKETS = 2000; +u_long NOPS = 200000; +u_long NSIZE = (16*1024); + +char **foo; + +int +main(int argc, char **argv) +{ + int i,j,k; + + if (argc > 1) NOPS = strtoul(argv[1],0,0); + if (argc > 2) NBUCKETS = strtoul(argv[2],0,0); + if (argc > 3) NSIZE = strtoul(argv[3],0,0); + printf("BRK(0)=%x ",sbrk(0)); + foo = malloc (sizeof *foo * NBUCKETS); + memset(foo,0,sizeof *foo * NBUCKETS); + for (i = 1; i <= 4096; i+=i) { + for (j = 0 ; j < 40960/i && j < NBUCKETS; j++) { + foo[j] = malloc(i); + } + for (j = 0 ; j < 40960/i && j < NBUCKETS; j++) { + free(foo[j]); + foo[j] = 0; + } + } + + for (i = 0 ; i < NOPS ; i++) { + j = random() % NBUCKETS; + k = random() % NSIZE; + foo[j] = realloc(foo[j], k & 1 ? 0 : k); + if (foo[j]) + foo[j][0] = 1; + } + printf("BRK(1)=%x ",sbrk(0)); + for (j = 0 ; j < NBUCKETS ; j++) { + if (foo[j]) { + free(foo[j]); + foo[j] = 0; + } + } + printf("BRK(2)=%x NOPS=%lu NBUCKETS=%lu NSIZE=%lu\n", + sbrk(0),NOPS,NBUCKETS,NSIZE); + return 0; +} diff --git a/tools/test/malloc/malloc.c b/tools/test/malloc/malloc.c deleted file mode 100644 index a865b9e..0000000 --- a/tools/test/malloc/malloc.c +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include -#include - -u_long NBUCKETS = 2000; -u_long NOPS = 200000; -u_long NSIZE = (16*1024); - -char **foo; - -int -main(int argc, char **argv) -{ - int i,j,k; - - if (argc > 1) NOPS = strtoul(argv[1],0,0); - if (argc > 2) NBUCKETS = strtoul(argv[2],0,0); - if (argc > 3) NSIZE = strtoul(argv[3],0,0); - printf("BRK(0)=%x ",sbrk(0)); - foo = malloc (sizeof *foo * NBUCKETS); - memset(foo,0,sizeof *foo * NBUCKETS); - for (i = 0 ; i < NOPS ; i++) { - j = rand() % NBUCKETS; - if (foo[j]) { - free(foo[j]); - foo[j] = 0; - } else { - k = rand() % NSIZE; - foo[j] = malloc(k); - foo[j][0] = 1; - } - } - printf("BRK(1)=%x ",sbrk(0)); - for (j = 0 ; j < NBUCKETS ; j++) { - if (foo[j]) { - free(foo[j]); - foo[j] = 0; - } - } - printf("BRK(2)=%x NOPS=%lu NBUCKETS=%lu NSIZE=%lu\n", - sbrk(0),NOPS,NBUCKETS,NSIZE); - return 0; -} -- cgit v1.1