如果我有许多函数调用
对于这种情况,使用足够大小的缓冲区好还是每次调用
我对 GNU C 库很感兴趣,但回答其他实现也很有用。
malloc()
来分配小尺寸的空间(通常最高 500 字节),并在完成后释放。那么,malloc()
是否会重新组合相邻块,还是会继续分割较大的块导致碎片化?对于这种情况,使用足够大小的缓冲区好还是每次调用
malloc()
较好?我对 GNU C 库很感兴趣,但回答其他实现也很有用。
malloc
,分配一个巨大的“堆”并使用它)。如果你搜索一下,就会发现有很多免费的分配算法。 - Some programmer dudemalloc
算法确实很好,但它会出现碎片。我的意思是,如果碎片可能成为一个问题,那么就要找到一种可以“整理”堆以完全避免碎片的算法。但在日常使用中,即使对于许多服务器类型的程序,标准的malloc
也是可以的。 - Some programmer dude