搜索

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

[复制链接]
135|6
 楼主 | 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上运行时间和在电脑上运行时间差挺多的

使用特权

评论回复
| 2020-12-24 15:36 | 显示全部楼层
感觉在做无用功啊,

使用特权

评论回复
 楼主 | 2020-12-24 15:53 | 显示全部楼层
ayb_ice 发表于 2020-12-24 15:36
感觉在做无用功啊,

这段代码只是一个测试,具体代码用到了循环里的数组赋值语句

使用特权

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

这也没什么优化空间了
最多就是用指针,然后指针++,--,但对于现代的CPU架构,这个基本没有意义了

使用特权

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

执行k=Lx[m]*X[m]也就是向变量赋值的时候,时间和普通的加减法差不多,但是执行x[0]=Lx[m]*x[m]时时间就变长了很多,应该是向数组变量赋值的时候产生了大量时间,想请问一下这地方可以优化吗

使用特权

评论回复
| 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]时时间就 ...

这不太可能吧,看下反汇编吧是不是变量类型不匹配

使用特权

评论回复
| 2020-12-28 23:21 | 显示全部楼层
你这个循环里,  没有与 循环变量 i 相关,  是无效循环代码

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /6 下一条

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