PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] 将向量的资料作scale down
楼主:
CCT63
(CCT)
2015-04-15 23:45:05
这几天写嵌入式系统遇到这个问题
假设一个array
unsigned short A[]=[0 1 2 3 ... 31];
我需要将A每3点取样一次存到另一个unsigned short B[]
目标: B[] = [0 3 6 ... 30]
我用的写法类似这样
for(i=0,j=0;i<32;i+=3,j++)
{
*(B+j) = *(A+i);
}
但是似乎这样还是抢了一些其他IP的时间....
所以想请问一下有更好的写法可以增加效率吗?
谢谢
作者:
SocketAM2
(AM2)
2015-04-16 00:27:00
compiler优化选项开下去后大概都一样吧从算法下手对速度常常比较有感,除非是超内圈的loop
作者:
LPH66
(-6.2598534e+18f)
2015-04-16 00:28:00
现在的编译器技术是能够做到即使写 B[3*i]=A[i];还是能编出像原 PO 这边这么写的机器码的
作者:
SocketAM2
(AM2)
2015-04-16 00:29:00
或你是embed system类没DMA的,不然在这种地方大概抠
作者:
LPH66
(-6.2598534e+18f)
2015-04-16 00:30:00
呃, 应该是 B[i] = A[3*i]; XD 不过意思有到就是
作者:
SocketAM2
(AM2)
2015-04-16 00:30:00
不出速度来
作者:
LPH66
(-6.2598534e+18f)
2015-04-16 00:31:00
这里的问题我猜跟 A[3*i] 存取位址是 6 的倍数有一点点关系6 的倍数表示大概要四圈才会有一个 aligned address咦还是两圈就有? 总之或许这里有一点关系在
作者:
WYchuang
(爱赖床的黄金猎犬)
2015-04-16 10:02:00
看看特殊指令级有没有支援 比如Neon一次可以搬蛮大量的资料 加上loop unrolling试看看
继续阅读
[问题] 结构和指标定义问题
flyaway339
[问题] 找不到脸部侦测图片路径
jiqian
[问题] 使用Visual Studio 2013 from UML to C++
ptthidebear
[问题] 不使用乘法的计算与排序问题
signdecoded
[问题] BCB 6 动态连结dll问题
huang1000
[问题] 中置式变后置式
november1121
[问题] 基本RGB调色盘显示(细部问题及程式优化)
redonizuka
[问题] 用C语法印出全型字符
jimmyoic
[问题] 关于pointer allocate memory问题?
wandering25
[问题] C 语言阵列用指标写
chinagogoya
Links
booklink
Contact Us: admin [ a t ] ucptt.com