malloc vs posix_memalign



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

使用malloc:98.7 mSec
使用posix:86.4 mSec(用于32,64128256512102420484096的数据比对)

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

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

我做了一个简单的测试,当与8个字节对齐时,性能是最好的。默认情况下,malloc使用8字节对齐。我试着用posix_memalign制作对齐更大,但这并不能提高性能。和性能与aligned by 8字节只有很小的区别。

相关内容

  • 没有找到相关文章