Балин... Зачотная вещь!!! pavel@suse64:~/> gcc -g0 -O3 -march=native main.c -ljemalloc
pavel@suse64:~/> time ./a.out
real 0m0.379s
user 0m0.079s
sys 0m0.299s
pavel@suse64:~/> gcc -g0 -O3 -march=native main.c
pavel@suse64:~/> time ./a.out
real 0m1.077s
user 0m0.292s
sys 0m0.780s
#include <stdio.h>
#include <stdlib.h>
#include <jemalloc/jemalloc.h>#define SZ 0xFFFF
int main(void)
{
int i;
int **ARRAY = (int **) malloc(SZ * sizeof(int *));
for (i = 0; i < SZ; i++) {
if (i % 2) {
ARRAY[i] = (int *) malloc(i);
*ARRAY[i] = i;
continue;
}
if (i % 3) {
ARRAY[i] = (int *) calloc(1, i);
*ARRAY[i] = i;
continue;
}
ARRAY[i] = (int *) realloc(ARRAY[i], i);
*ARRAY[i] = i;
}
for (i = 0; i < SZ; i++) {
free(ARRAY[i]);
ARRAY[i] = NULL;
}
free(*ARRAY);
return 0;
}