背景介绍:
我正在开发一个需要运行数月并使用动态分配的系统。
问题:
我听说内存碎片化会减慢 new
和 malloc
运算符的速度,因为它们需要在内存中查找一个“空洞”,而不是在堆中直接“向前走”。
我读了以下问题:什么是内存碎片化?
但回答中没有涉及性能问题,只提到分配大块内存时失败的情况。
那么内存碎片化是否会使 new
分配内存所需时间更长?
如果是,会增加多少时间? 我如何知道 new
在堆中查找内存时遇到了“困难”?
我曾尝试找出GCC用于查找内存中“空洞”的数据结构/算法。 但是没有找到任何合理的解释。