多次调用malloc会浪费内存吗?

时间:2012-12-04 11:40:02

标签: c memory-management

目前处理代码我意识到它曾经多次调用malloc(大约1000万次调用)并且每次都分配了小块(大约10个字节)。

我稍微更改了代码,而不是调用malloc 1000万次,我现在每次调用malloc 10次分配大块内存(1000万字节)。

通过此更改,我注意到我的代码的峰值内存消耗从~15 GB变为~14 GB。

为什么会这样? malloc每次调用都会分配一些额外的块吗?

1 个答案:

答案 0 :(得分:7)

肯定。因为malloc()为元数据分配了一些字节数。所以如果多个malloc()导致更多的元数据。

这个link为您提供有关malloc如何分配内存和元数据的更多详细信息。