【发布时间】: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,我将获得最好的性能数字。
【问题讨论】: