gpt4 book ai didi

c++ - posix_memalign() 需要多少额外内存?

转载 作者:太空狗 更新时间:2023-10-29 21:24:34 25 4
gpt4 key购买 nike

我正在尝试决定是否应该使用 memalign() 而不是 malloc(),因为对齐内存会使我的工作更轻松。我在这里阅读了 GNU 文档 ( http://www.gnu.org/software/libc/manual/html_node/Aligned-Memory-Blocks.html ),其中提到 memalign 函数通过分配一个更大的 block 来工作。 我想知道那个“更大的 block ”的确切值。

逻辑上认为所需的额外内存应该等于所需的对齐值。但我不确定是否有优化。

最佳答案

Posix 是一个标准,而不是一组特定的代码,但我们可以查看 libc 作为示例。

这是 posix_memalign() 最初在该实现中分配的内容。

mem = malloc (size + 2 * alignment);

有了这个漂亮的 ASCII 插图。

    /*
______________________ TOTAL _________________________
/ \
+---------------+-------------------------+--------------+
| | | |
+---------------+-------------------------+--------------+
\____ INIT ____/ \______ RETURNED _______/ \____ END ___/

*/

然后它将分配两端未使用的存储空间返回到堆

这意味着碎片可能会变得更糟,尽管使用的堆内存是相同数量

关于c++ - posix_memalign() 需要多少额外内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15798354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com