diff options
Diffstat (limited to 'benchmark/malloc_bench.cc')
-rw-r--r-- | benchmark/malloc_bench.cc | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/benchmark/malloc_bench.cc b/benchmark/malloc_bench.cc new file mode 100644 index 0000000..e5e0d38 --- /dev/null +++ b/benchmark/malloc_bench.cc @@ -0,0 +1,93 @@ +#include <stdlib.h> +#include <stdio.h> + +int main(void) +{ + long long i = 1LL<<(28-4); + size_t sz = 32; + printf("i = %lld\n", i); + for (;i>0;i--) { + void *p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + p = malloc(sz); + if (!p) { + abort(); + } + free(p); + sz = ((sz | reinterpret_cast<size_t>(p)) & 511) + 16; + } + return 0; +} |