今天我和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
的任务