3 #include <time.h> /* for time() in srand() */
11 size_t an
= 0, un
= 0, ab
= 0, ub
= 0, me
= 0, sp
= 0;
16 if (mpool_init(&mpool
, 23, 3) == MP_ENOMEM
) {
17 fprintf(stderr
, "Not enough memory\n");
21 for (i
= 0; i
< 10000; i
++) {
22 if ((p
[i
] = mpool_alloc(mpool
, S
= (1 << ((rand() % 7))))) == NULL
)
25 /*memset(p[i], 0, S);*/;
27 mpool_free(mpool
, p
[i
]);
31 for (j
= 0; j
< mpool
->nblocks
; j
++)
32 printf("Block %u has length: %u\n", j
, mpool_stat_get_block_length(mpool
, j
));
35 for (j = 0; j < i; j++)
36 mpool_free(mpool, p[j]);
39 mpool_stat_get_nodes(mpool
, &an
, &un
);
40 mpool_stat_get_bytes(mpool
, &ab
, &ub
);
41 me
= mpool_stat_get_merges(mpool
);
42 sp
= mpool_stat_get_splits(mpool
);
43 DPRINTF(("avail nodes = %u\tused nodes = %u\tfree(%%) = %f\n", an
, un
, 100.0 * an
/ (an
+ un
)));
44 DPRINTF(("avail bytes = %u\tused bytes = %u\tfree(%%) = %f\n", ab
, ub
, 100.0 * ab
/ (ab
+ ub
)));
45 DPRINTF(("splits = %u\tmerges = %u\n", sp
, me
));