CSDN|如何写出让 CPU 跑得更快的代码?( 五 )
当 CPU 访问数据的时候 , 先是访问 CPU Cache , 如果缓存命中的话 , 则直接返回数据 , 就不用每次都从内存读取速度了 。 因此 , 缓存命中率越高 , 代码的性能越好 。
但需要注意的是 , 当 CPU 访问数据时 , 如果 CPU Cache 没有缓存该数据 , 则会从内存读取数据 , 但是并不是只读一个数据 , 而是一次性读取一块一块的数据存放到 CPU Cache 中 , 之后才会被 CPU 读取 。
内存地址映射到 CPU Cache 地址里的策略有很多种 , 其中比较简单是直接映射 Cache , 它巧妙的把内存地址拆分成「索引 + 组标记 + 偏移量」的方式 , 使得我们可以将很大的内存地址 , 映射到很小的 CPU Cache 地址里 。
要想写出让 CPU 跑得更快的代码 , 就需要写出缓存命中率高的代码 , CPU L1 Cache 分为数据缓存和指令缓存 , 因而需要分别提高它们的缓存命中率:
- 对于数据缓存 , 我们在遍历数据的时候 , 应该按照内存布局的顺序操作 , 这是因为 CPU Cache 是根据 CPU Cache Line 批量操作数据的 , 所以顺序地操作连续内存数据时 , 性能能得到有效的提升;
- 对于指令缓存 , 有规律的条件分支语句能够让 CPU 的分支预测器发挥作用 , 进一步提高执行的效率;
本文插图
骄傲的说 , 你们关注的是 CSDN 首届技术原创第一名的博主 , 以后简历又可以吹牛了 。
【CSDN|如何写出让 CPU 跑得更快的代码?】没有啦 , 其实主要还是谢谢你们不离不弃的支持 。
点点赞点在看
推荐阅读
- 聚韬品牌策划公司|如何准备一个好的商业计划书,10分钟打动投资人?
- 芯片|热钱涌入引“虚火之忧” “中国芯”如何浴火新生
- 苹果手机|iPhone 12 mini拆解图揭示苹果是如何给设备瘦身的
- 数码|强迫症患者的幸福生活 篇十三:蜗居共享经济,如何彻底榨干你家里的电子设备
- 新全球化智库|中国企业如何到海外资本市场澳交所上市融资热点连接:中国企业如何到海外资本市场澳交所上市融资
- 富前程社群裂变|富船长:如何调研客户痛点?
- 银杏|满大街可见的银杏,怎么就比大熊猫还濒危?
- 科技互联热點|低迷大屏行业如何破局?荣耀智慧屏给出的答案是:品质!
- 陆超生财|想复制都难,移动支付体验全球第一的背后,支付宝做到了哪些扫码支付的基本原理。支付宝如何保障资金安全以及服务稳定为什么欧美发达国家
- |「晓霞走市场」私域运营标杆“老钟驾到”如何IP出圈?