So malloc doesn't invoke any syscall?

前端 未结 3 1995
感情败类
感情败类 2021-01-12 17:44

Related code:

  write(-1, \"test\", sizeof(\"test\"));
  void * p = malloc(1024);
  void * p2 = malloc(510);
  write(-1, \"hi\", sizeof(\"hi\"));
         


        
3条回答
  •  佛祖请我去吃肉
    2021-01-12 18:44

    Not every call to malloc invokes a syscall. On my linux desktop malloc allocates a space in 128KB blocks and then distributes the space. So I will see a syscall every 100-200 malloc calls. On freebsd malloc allocates by 2MB blocks. On your machine numbers will likely differ.

    If you want to see syscall on every malloc allocate large amounts of memory (malloc(10*1024*1024*1024))

提交回复
热议问题