目前处理代码我意识到它曾经多次调用malloc
(大约1000万次调用)并且每次都分配了小块(大约10个字节)。
我稍微更改了代码,而不是调用malloc
1000万次,我现在每次调用malloc
10次分配大块内存(1000万字节)。
通过此更改,我注意到我的代码的峰值内存消耗从~15 GB变为~14 GB。
为什么会这样? malloc
每次调用都会分配一些额外的块吗?
答案 0 :(得分:7)
肯定。因为malloc()
为元数据分配了一些字节数。所以如果多个malloc()导致更多的元数据。
这个link为您提供有关malloc如何分配内存和元数据的更多详细信息。