【问题标题】:malloc vs posix_memalignmalloc 与 posix_memalign
【发布时间】:2014-11-12 13:56:18
【问题描述】:

我正在开发一种使用平铺的高效缓存转置算法,我注意到当我使用malloc 分配内存时,我得到的性能比使用posix_memalign 时更差。更具体地说:

使用 malloc:98.7 毫秒
使用 posix:86.4 毫秒(用于 32、64、128、256、512、1024、2048、4096 的数据对齐)

我正在分配一个 32 位整数数组。

我无法解释为什么 posix-x(其中 4096>x>32 和 x 是数据对齐方式)总是为这个数据对齐值范围提供或多或少相同的效率。在我的算法中,我正在预取缓存行(64 字节),所以我希望对于 x=64,我将获得最好的性能数字。

【问题讨论】:

    标签: alignment malloc posix


    【解决方案1】:

    我做了一个简单的测试,当对齐8字节时,性能最好。 malloc 默认使用 8 个字节对齐。我试过posix_memalign 对齐更大,但这并不能使性能更好。和性能 与 8 字节对齐只有一点区别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 2011-03-23
      • 1970-01-01
      • 2012-01-03
      • 2018-08-01
      • 2011-01-21
      • 1970-01-01
      相关资源
      最近更新 更多