[DSP编程] DSP算法优化问题

[复制链接]
1206|6
 楼主| mikasanli 发表于 2020-12-24 13:35 | 显示全部楼层 |阅读模式
本帖最后由 mikasanli 于 2020-12-24 13:37 编辑

for(i=0;i<1000000000;i++){
     x[0]=0;
     x[0] = Lx [m] *x [m] ;
}
请问DSP上这段代码如何优化,可以使时间减少一点,在dsp上运行时间和在电脑上运行时间差挺多的
ayb_ice 发表于 2020-12-24 15:36 | 显示全部楼层
感觉在做无用功啊,
 楼主| mikasanli 发表于 2020-12-24 15:53 | 显示全部楼层
ayb_ice 发表于 2020-12-24 15:36
感觉在做无用功啊,

这段代码只是一个测试,具体代码用到了循环里的数组赋值语句
ayb_ice 发表于 2020-12-24 16:31 | 显示全部楼层
mikasanli 发表于 2020-12-24 15:53
这段代码只是一个测试,具体代码用到了循环里的数组赋值语句

这也没什么优化空间了
最多就是用指针,然后指针++,--,但对于现代的CPU架构,这个基本没有意义了
 楼主| mikasanli 发表于 2020-12-24 17:00 | 显示全部楼层
ayb_ice 发表于 2020-12-24 16:31
这也没什么优化空间了
最多就是用指针,然后指针++,--,但对于现代的CPU架构,这个基本没有意义了 ...

执行k=Lx[m]*X[m]也就是向变量赋值的时候,时间和普通的加减法差不多,但是执行x[0]=Lx[m]*x[m]时时间就变长了很多,应该是向数组变量赋值的时候产生了大量时间,想请问一下这地方可以优化吗
ayb_ice 发表于 2020-12-25 08:41 | 显示全部楼层
本帖最后由 ayb_ice 于 2020-12-25 08:44 编辑
mikasanli 发表于 2020-12-24 17:00
执行k=Lx[m]*X[m]也就是向变量赋值的时候,时间和普通的加减法差不多,但是执行x[0]=Lx[m]*x[m]时时间就 ...

这不太可能吧,看下反汇编吧是不是变量类型不匹配
airwill 发表于 2020-12-28 23:21 | 显示全部楼层
你这个循环里,  没有与 循环变量 i 相关,  是无效循环代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部