为什么较小的alloc不会改变malloc_info,而更大的则不会改变

时间:2018-01-17 22:42:59

标签: c memory-management malloc

今天我和malloc_info一起玩,我发现了一些非常奇怪的行为。 malloc_info大小不会随着我调用的malloc的大小线性增长。它跳转到malloc的不同参数,并且有一些魔术数字不断出现。我猜这可能是某种优化,通过c来分块,而不是实际使用它们。

一些有趣的魔术数字

大多数不要求大量内存的malloc调用都会发生

<aspace type="total" size="135168"/>。与malloc(1500)

一样

<system type="current" size="270336"/>适用于略大一些的。就像malloc(1500在循环中调用100次一样。

但有趣的是,malloc(1000)在循环中调用了100次,再次给出了幻数135168。所以它似乎是在1000到1500之间的一些任意切断,在一个循环中被称为100次。

任何人都可以对这种奇怪的行为有所启发吗?我正在执行用64位兼容函数替换旧mallinfo的任务

0 个答案:

没有答案