其他分享
首页 > 其他分享> > 如何写出让CPU跑得更快的代码?

如何写出让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