关于提高系统性能的日常编程需要注意的问题

deb999 2008-04-25 03:52:32
系统性能是非常重要的当资源有限的环境里.我想问的是,我们编程过程中主要注意哪些问题可以提高性能或是说不使资源或是速度方面有重大的不必要的浪费?我是学C的,麻烦您回答一下,谢谢
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Intel_CG 2008-04-28
  • 打赏
  • 举报
回复
设置processor affinity,减少线程在核间的切换,以及相应的cache fresh.
deb999 2008-04-26
  • 打赏
  • 举报
回复
谢谢您的回答,很精辟。
但我还有一点想问问:单核有时间片的概念,那么双核或多核是不是有多个TIMER还是只有一个?如果只有一个,那芯片的主频对双核处理是不是有很大影响,如果有多个,因为要处理多线程,那么它们之间的协作对性能方面是不是要有注意的地方?谢谢。
Intel_CG 2008-04-25
  • 打赏
  • 举报
回复
针对双核,多核的软件优化主要靠多线程。线程间dead lock,data race等问题可能导致程序错误,并行化程度不高,任务分配不均等造成性能提高不多。多核同时计算,导致数据量飙升,并最终受限于前端总线,这种情况也要考虑。
Intel_CG 2008-04-25
  • 打赏
  • 举报
回复
对CPU而言,资源可分为计算能力和带宽,带宽是指数据从内存>L3>L2>L1 cache的传递速度。计算能力是否够,常受程序算法的影响。带宽则很大程度由数据量,数据结构是否合理,使用数据的顺序是否正确。
研究表明CPU的各计算单元等待被处理数据的时间要大于计算时间。尽可能减少数据流量,如对大数组的操作,尽可能读写数据一次,完成所有计算,避免多次读写;将被一同处理的数据存放于同一structure中,避免多次读写。

在系统层面上,保持网络,硬盘,视频缓存等‘串行’资源的均衡使用。必要时改变算法,缓解某一性能瓶颈的压力,达到整体效率最佳。
deb999 2008-04-25
  • 打赏
  • 举报
回复
双核在性能优化方面与单核有什么不同呢?

566

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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