社区
汇编语言
帖子详情
关于memcpy的优化问题
ggknight
2006-01-05 02:47:02
项目里有很多memcpy操作,用sse指令改写
mov eax, src
mov edx, dest
mov xmm0, [eax]
mov xmm1, [eax+16]
mov [edx],xmm0
mov [edx+16], xmm1
用vtune测试,有些地方变快了,但有些地方却慢了很多,疑惑中........
...全文
174
7
打赏
收藏
关于memcpy的优化问题
项目里有很多memcpy操作,用sse指令改写 mov eax, src mov edx, dest mov xmm0, [eax] mov xmm1, [eax+16] mov [edx],xmm0 mov [edx+16], xmm1 用vtune测试,有些地方变快了,但有些地方却慢了很多,疑惑中........
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BadEnglish
2006-01-07
打赏
举报
回复
用movdqa如果没对齐就会非法操作的。
不过memcpy不是这样优化的,值得考虑的因素主要是和CPU缓存管理有关的问题,INTEL有资料专门讲这个问题。
ggknight
2006-01-06
打赏
举报
回复
上面写错了,movaps xmm0,[eax]
已经将内存16对齐了
在该段汇编代码中并没有用到mmx,应该不存在切换问题吧
蒋晟
2006-01-06
打赏
举报
回复
在有些CPU中从SSE切换到MMX的时候很慢
日立奔腾浪潮微软松下联想
2006-01-06
打赏
举报
回复
就用movesq就好了,这种东西还能优化到什么程度。
luozn
2006-01-06
打赏
举报
回复
mov eax, src
mov edx, dest
movaps xmm0, [eax]
movaps xmm1, [eax+16]
movaps [edx],xmm0
movaps [edx+16], xmm1
luozn
2006-01-06
打赏
举报
回复
mov eax, src
mov edx, dest
movaps xmm0, [eax]
movaps xmm1, [eax+16]
mov [edx],xmm0
mov [edx+16], xmm1
看看反汇编成啥了。有问题吧,即使正确,不满才怪。
zara
2006-01-05
打赏
举报
回复
是由于内存地址对齐的因素造成的?
memcpy
优化
---性能大幅提升几倍
。虽然因为硬件限制没有达到AMD文档中所说
memcpy
函数300%的性能提升,但在我机器上实测也有%175-%200的明显性能提升(此数据可能根据机器情况不同)。
DPDK中的
memcpy
性能
优化
及思考.pdf
DPDK中的
memcpy
性能
优化
及思考.pdf
nvtlibc.rar
优化
linux系统
memcpy
,及memset
优化
linux系统
memcpy
,及memset,这两个命令占比系统非常高,现用汇编来
优化
简单分析针对ARM平台的C语言程序的编译
问题
我们知道在C语言编译时,有那么几个常用的
优化
编译选项,分别是-O0,-O1,-O2,-O3以及-Os。之前一直觉得既然是
优化
选项,顶多是
优化
一下逻辑,提高一些效率或者减少一下程序大小而已。很少会觉得它们会影响程序的最终结果。直到最近在ARM平台上发现一个程序里的一个bug,才觉得这些
优化
选项有时候也没那么智能。或者说针对ARM平台,还没有那么智能。 首先看这么一段程序,此程序是我将
问题
简单化的程序: #include #include int main() { char buffer[1024] = {0,1,2,3,4,5,6,7};
内存拷贝的
优化
方法——
以P4平台下内存拷贝操作为例,根据AMD提供的
优化
文档中的例子,介绍如何通过特定指令集,
优化
内存带宽的使用
汇编语言
21,459
社区成员
41,602
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章