bench: pass N as argument, update readme
[libc-test] / src / malloc / bench.c
index 28ae66d..3cc33d2 100644 (file)
@@ -4,7 +4,7 @@
 #include <pthread.h>
 #include "test.h"
 
-void bench_malloc_sparse() {
+void bench_malloc_sparse(int N) {
        void *p[N];
        size_t i;
        for (i=0; i<sizeof p/sizeof *p; i++) {
@@ -15,7 +15,7 @@ void bench_malloc_sparse() {
                if (i%150) free(p[i]);
 }
 
-void bench_malloc_bubble() {
+void bench_malloc_bubble(int N) {
        void *p[N];
        size_t i;
        for (i=0; i<sizeof p/sizeof *p; i++) {
@@ -26,7 +26,7 @@ void bench_malloc_bubble() {
                free(p[i]);
 }
 
-void bench_malloc_tiny1() {
+void bench_malloc_tiny1(int N) {
        void **p = malloc(N * sizeof *p);
        size_t i;
        for (i=0; i<N; i++) {
@@ -38,7 +38,7 @@ void bench_malloc_tiny1() {
        free(p);
 }
 
-void bench_malloc_tiny2() {
+void bench_malloc_tiny2(int N) {
        void **p = malloc(N * sizeof *p);
        size_t i;
        for (i=0; i<N; i++) {
@@ -50,7 +50,7 @@ void bench_malloc_tiny2() {
        free(p);
 }
 
-void bench_malloc_big1() {
+void bench_malloc_big1(int N) {
        void *p[N];
        size_t i;
        for (i=0; i<sizeof p/sizeof *p; i++) {
@@ -61,7 +61,7 @@ void bench_malloc_big1() {
        }
 }
 
-void bench_malloc_big2() {
+void bench_malloc_big2(int N) {
        void *p[N];
        size_t i;
        for (i=0; i<sizeof p/sizeof *p; i++) {
@@ -88,6 +88,7 @@ static unsigned rng(unsigned *r)
        return *r = *r * 1103515245 + 12345;
 }
 
+static int N;
 
 static void *stress(void *arg)
 {
@@ -116,26 +117,27 @@ static void *stress(void *arg)
        return 0;
 }
 
-void bench_malloc_thread_stress() {
+void bench_malloc_thread_stress(int n) {
        struct foo foo[SH_COUNT] = {{0}};
        pthread_t td1, td2;
        void *res;
 
+       N = n;
        pthread_create(&td1, 0, stress, foo);
        pthread_create(&td2, 0, stress, foo);
        pthread_join(td1, &res);
        pthread_join(td2, &res);
 }
 
-void bench_malloc_thread_local() {
+void bench_malloc_thread_local(int n) {
        struct foo foo1[SH_COUNT] = {{0}};
        struct foo foo2[SH_COUNT] = {{0}};
        pthread_t td1, td2;
        void *res;
 
+       N = n;
        pthread_create(&td1, 0, stress, foo1);
        pthread_create(&td2, 0, stress, foo2);
        pthread_join(td1, &res);
        pthread_join(td2, &res);
 }
-