当前位置:   article > 正文

malloc函数_手撕虚拟内存(7)——多次调用malloc会发生什么?

多次malloc

2c347f60f809937f00a86b73b96b453c.png
原文:Hack the Virtual Memory: malloc, the heap & the program break - Holberton
翻译:RobotCode俱乐部

如果我们多次调用malloc会发生什么?

#include 

b5002665c96456773e12d2ef915a1b1f.png

如上图可见,malloc不是每次调用时,都使用系统调用 brk。(再一次说明了,封装函数与系统调用是不一样的

第一次,malloc为程序创建一个新空间(堆)(通过增加程序中断位置)。接下来的时间,malloc使用相同的空间给我们的程序“新的”内存块。这些“新”内存块是以前使用brk分配的内存的一部分。这样,malloc就不必每次调用时都使用syscalls (brk),从而使malloc——以及使用malloc的程序——更快。它还允许malloc和free优化内存的使用。(译者注:这就是为什

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/969195
推荐阅读
相关标签
  

闽ICP备14008679号