M条数据,每条数据需经N步处理,优化速度

jsonnode 2016-08-20 05:19:45
1.共有M条数据,每条数据是一个struct结构;
2.每条数据都要经过N步处理,每步处理是对数据中的某个(或几个)字段调用不同的函数处理;
3.已知处理函数并不是速度的瓶颈
4.目前采用
int i ,j ;
for(i = 0; i < M ;++i)
{
for( j = 0 ; j < N ;++j)
{
调用第j个处理函数
}
}
5. 怎样提升速度! O(M*N)可以减小吗?
...全文
1100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33824142 2017-12-13
  • 打赏
  • 举报
回复
您好,我在博客上面看到您签约了烽火星空,我想咨询一些情况,可以吗
lm_whales 2016-08-24
  • 打赏
  • 举报
回复
如果能够把软件算法,交给硬件处理 那么,由于并行性,效率要高很多 当然,跟规模相关的东西,受到的限制也大 因为软件算法,能够达到的规模,跟硬件能达到的规模比起来要大得多 而且硬件要考虑成本问题 软件成本可以忽略 毕竟软件成本,就是开发维护成本 并不随着,软件使用者的增加,大规模的增减
lm_whales 2016-08-24
  • 打赏
  • 举报
回复
多线程,和算法优化比较起来,算法优化的效率要更高 多线程,只是充分例如多内核,让CPU 充分忙碌起来,从而提高效率
lm_whales 2016-08-24
  • 打赏
  • 举报
回复
如果每个处理函数,互不相干 可以充分利用多核心开多线程处理 如果互相有关系,例如A() 处理字段a B() 也要处理字段a 那么可以开多线程(K个)处理M个对象 每个对象 的处理作为一个 线程的一个 处理的单元 如果 M 个对象也互相关联(例如要排序),那就只能 利用算法优化了
赵4老师 2016-08-22
  • 打赏
  • 举报
回复
无profiler不要谈效率!!尤其在这个云计算、虚拟机、模拟器、CUDA、多核 、多级cache、指令流水线、多种存储介质、……满天飞的时代!
kongl123 2016-08-20
  • 打赏
  • 举报
回复
是否可以优化要看处理函数是否可以优化. 或者要看处理函数的真实内容. 前者是算法级的优化,比如k个处理函数ƒ是否可以合并成一个F, 且F < kƒ. 后者是基于现在电脑的一些特性来做优化, 比如是否可以用多媒体指令优化能用指令,是否可以优化多级流水,错开寄存器读写空当等

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧