malloc

2020-08-15  本文已影响0人  滩主
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

int main()
{
  char* m0 = sbrk(0);
  printf("sbrk origin:%p\n",m0);

  for (int i=0;i<10;i++) {
    char* p1 = malloc(16);
    char* m1 = sbrk(0);
    printf("sbrk:offset:%d %p %p\n",m1-m0,m1,p1);
    printf("header:%p %d\n",(void*)(*((int*)(p1-8))),*((int*)(p1-4)));
  }
}
image.png

jemalloc的分配malloc(8)
可以看出应该是使用的bitmap 标记是否在用,没有header
而且是直接使用mmap


image.png
上一篇下一篇

猜你喜欢

热点阅读