【发布时间】:2013-04-03 21:20:17
【问题描述】:
我正在尝试决定是否应该使用 memalign() 而不是 malloc(),因为对齐的内存会使我的工作更轻松。我在这里阅读了 GNU 文档 (http://www.gnu.org/software/libc/manual/html_node/Aligned-Memory-Blocks.html),其中提到 The function memalign works by allocating a somewhat larger block. 我想知道那个“更大的块”的确切值。
逻辑上认为所需的额外内存应该等于所需的对齐值。但我不确定是否对此进行了优化。
【问题讨论】:
-
你可以编写一个泄漏内存的玩具程序,然后在 valgrind 下运行它(或者看看
mtrace是否适用于这些调用) -
@Useless:尝试了以下方法:void *m; posix_memalign(&m, 512, 1024); valigrind 说它丢失了 1024。我尝试了不同的对齐方式,如 8、16、32 和不同的内存大小,如 512、1024,它说的是一样的。所以不需要额外的内存?
-
@Useless:DrewDormann 刚刚确认了
标签: c++ memory-management posix