linux提供了brk,sbrk系统调用来申请释放内存。
linux系统通过一个指针来管理内存,如图所示堆区向上生长,使用一个指针指向堆顶。每次申请内存,使用系统调用把brk指针向上移动,释放内存就把brk指针向下移动。但是如果不想释放data2直接释放data1,这是做不到的。不需要的数据data1,必须等上面的数据都释放后才能释放。
不需要的内存无法归还给操作系统,这就是内存碎片。
相关文章
- 11-02go语言-面向并发的内存模型
- 11-02resp.Body.Close() 引发的内存泄漏goroutine个数
- 11-02Golang并行处理和内存模型
- 11-02shell脚本检测局域网内存活主机
- 11-02见微知著 带你透过内存看 Slice 和 Array的异同
- 11-02Golang中的append是否会帮助nil类型的变量分配内存?
- 11-02QT + VTK (QVTKWidget)显示点云,内存泄漏的解决方法
- 11-02python – Cython:对于类型化的内存视图,我应该使用np.float_t而不是double
- 11-02C++ 内存泄漏
- 11-02tomcat Valve内存马