gpt4 book ai didi

c++ - kcachegrind 显示我的 memcpy 未对齐

转载 作者:搜寻专家 更新时间:2023-10-31 00:32:10 25 4
gpt4 key购买 nike

使用 g++ 编译一个使用 memcpy 的函数,在 kcachegrind 中它显示为使用 __memcpy_sse2_unaligned

memcpy 有办法使用对齐版本吗?

更新 1:这就是我创建两个缓冲区的方式

int* dstArr = new int [0x10000];
int* srcArr = new int [0x10000];

最佳答案

名称 __memcpy_sse2_unaligned 并不代表您认为的那样。事实上,它只是 memcpy 的一个版本,它使用 SSE2 进行未对齐访问(在现代/大型 CPU 上,未对齐访问的惩罚通常低于在软件中强制对齐的惩罚)。

您的编译器认为它没有优化如此大的 memcpy 本身的智慧,并且 amd64 ABI 不提供 promise 对齐的 memcpy 符号(如 __aeabi_memcpy4__aeabi_memcpy8 在 ARMEABI 中)。

关于c++ - kcachegrind 显示我的 memcpy 未对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32168142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com