#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++) {
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++) {
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++) {
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++) {
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++) {
}
}
-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++) {
return *r = *r * 1103515245 + 12345;
}
+static int N;
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);
}
-