【发布时间】:2012-06-27 03:07:46
【问题描述】:
glibc 的 malloc 实现支持 'malloc_trim()' 调用,它允许应用程序将未使用的(即释放的内存块)释放回系统(实现细节:通过调用带有负数的 sbrk() 来减少程序的数据段争论)。但是,此功能仅适用于主竞技场。在多线程程序中,有多个存储释放块的区域。为什么这个调用也不会从其他 arena 释放内存?
【问题讨论】:
-
可能是因为从分配的不同区域释放内存不是一个好主意......它也只能从堆顶释放内存。