找回密码
 欢迎注册
查看: 12539|回复: 7

[讨论] 指针拷贝 和 索引拷贝 在执行效率上能有多大区别.

[复制链接]
发表于 2016-7-11 18:52:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
//  A[] = B[]
for (unsigned i=0; i<100; i++) A[i] = B[i];

  or

for (unsigned i=0; i<100; i++) *A++ = *B++;

为了榨干每个CPU脉冲的执行效率.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2016-7-13 11:33:15 | 显示全部楼层
弱问一嘴,为什么不用memmove之类的系统调用呢?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2016-7-13 20:06:01 | 显示全部楼层
首先,就例子来说,内存块的拷贝用memcpy效率高一些
其次,就问题本身而言,楼主纠结的应该是 指针操作符 跟 下标操作符的效率 问题。这个硬要深入追下去,对应到汇编代码对于我等之辈也不一定能看出效率来,应该是编译器相关的。不过咱们论坛有很多这方面的高手...
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2016-7-13 21:06:59 来自手机 | 显示全部楼层
对现在的编译器,两者完全没有区别

点评

另外A,B的数据类型是什么,最好为两个不同的数组  发表于 2016-7-16 19:43
你用的优化选项是什么  发表于 2016-7-16 19:42
汇编指令好像不太一样,...  发表于 2016-7-14 20:47
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2016-7-17 21:29:06 | 显示全部楼层
谢谢大家,  我以为 memcpy() 操作的是字节.  如果我拷贝的是 DWROD 数组,  那岂不是...

如果CPU有专门的 拷贝指令 就用 memcpy().
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-21 20:25 , Processed in 0.025873 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表