malloc和posix_memalign的区别

3
我正在使用瓦片技术开发高效缓存转置算法,注意到当我使用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,我将获得最佳性能数字。
1个回答

1

我做了一个简单的测试,当按照8字节对齐时,性能最好。 malloc默认使用8字节对齐。我尝试使用posix_memalign来增加对齐方式,但这并没有提高性能。而且与8字节对齐相比,性能只有一点点差别。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接