ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何写出让CPU跑得更快的代码?

2022-03-19 10:03:03  阅读:147  来源: 互联网

标签:代码 Cache 效率 访问 写出 内存 CPU


CPU执行程序的过程是重复的“取指执行”,为了提高内存访问效率,引入了Cache。

所以这个问题也就等价于“如何写出让Cache命中率更高的代码?”

知其然知其所以然,懂Cache原理了,自然就明白怎么去做。

1、遵从80-20法则,程序80%的时间在运行20%或更少的代码,针对热代码进行优化,进而提高效率;

2、遵从数据访问的局部性法则,按数据存放顺序访问内存效率远高于乱序访问内存效率,也就是尽量帮助CPU做好数据Cache的预测工作,最典型的案例为二维数组按行or按列访问。同样根据Cache大小,做好数据结构的优化工作,进行数据压缩或数据填充,也是提升Cache效率的好方式;

3、遵从指令访问的局部性法则,减少跳转指令,同样是尽量帮助CPU做好数据Cache的预测工作;现代CPU都有一些预测功能【如分支预测】,利用好CPU的这些功能,也会提升Cache命中率;

4、避免计算线程在多个核心之间漂移,避免缓存重复加载,可以绑定核心【物理核即可,不用到逻辑核】,提高效率;

5、去除伪共享缓存:在多核环境下,减少多个核心对同一区域内存的读写并发操作,减少内存失效的情况的发生;

当然,上面都是从程序员角度来思考的。

标签:代码,Cache,效率,访问,写出,内存,CPU
来源: https://www.cnblogs.com/rayss/p/16025524.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有