假设 MS 编译器和 C 函数realloc
,增加分配(可增长缓冲区)以减少浪费的最佳大小是多少。显然,如果在增长缓冲区之间没有其他分配,realloc
则可以处理任何大小,但是对于更大的增长块大小,在增长之间会有许多其他分配,什么大小最好?
我想到了 4096,但我看到的大多数 C 堆管理的方式是使用标题,因此使用 4096 最终需要比页面大小更多的空间(标题的大小),这可能会导致大量浪费下一页。所以总的来说,是否有一种通用的方法可以获取标头的大小并使缓冲区从 4096 向下对齐 16 字节?或者大多数当前 C 库的堆管理器是否处理 4096 特殊问题?
谢谢。