编译器优化

减少不必要的代码或指令以达到优化;

CPU优化

关系密切的操作提前执行,而不是顺序执行;

优化带来的问题

莫名其妙的bug,且不容易复现;

编译器指令优化

  • volatile修饰的变量,和它有关的代码都不会优化;
  • 但是默认会优化

cpu缓存更新

处理器的cpu发送队列和接受队列并不会实时处理; 而是触发机制;
cpu提供了对应的指令进行强制处理; w,r barrier., 这样就可以强制刷新发送队列或接受队列;

避免编译重排

  • __asm__ __volatile__("":::"memory")
  • 但是默认会重排

cpu的重排

  • 相似相近的代码提前执行; 默认重排
  • 查看对应处理器文档,提供的相关汇编指令;

参考

https://developer.arm.com/documentation/den0042/a/Memory-Ordering/Memory-barriers
https://stackoverflow.com/questions/22106843/gccs-reordering-of-read-write-instructions
https://en.wikipedia.org/wiki/Memory_barrier
https://stackoverflow.com/questions/39062100/how-does-cpu-reorder-instructions

编译器优化和cpu优化相关推荐

  1. 【linux】性能优化之CPU优化一

    文章目录 一.前言 二.性能统计信息 1. 平均负载率. 2. 平均负载率命令 uptime 3. 平均负载和CPU使用的关系 4. 如何定位哪个进程出现问题 一.前言 因为以前只是了解了linux的 ...

  2. KVM总结-KVM性能优化之CPU优化

    前言 任何平台根据场景的不同,都有相应的优化.不一样的硬件环境.网络环境,同样的一个平台,它跑出的效果也肯定不一样.就好比一辆法拉利,在高速公路里跑跟乡村街道跑,速度和激情肯定不同- 所以,我们做运维 ...

  3. Nginx性能优化之cpu优化

    如何有效的使用cpu? 1.如何增大Nginx使用cpu的有效时长? 能够使用全部cpu资源:master-worker多进程架构,woker进程数量应该大于等于cpu核数 Nginx进程间不做无用功 ...

  4. Linux性能优化之CPU、内存、IO优化

    Linux 的性能进行监测,以下是 VPSee 常用的工具: 工具    简单介绍 top    查看进程活动状态以及一些系统状况 vmstat    查看系统状态.硬件和系统信息等 iostat   ...

  5. 【Android CPU 优化】Android CPU 调优 ( Trace 文件分析 | Android Profiler 工具 | CPU Profiler 工具 )

    文章目录 一.Android CPU 优化 二.CPU Profiler 工具 三.相关资源 一.Android CPU 优化 在 Android 中 , 出现 动画掉帧 , 页面切换白屏 , 卡顿 ...

  6. Android应用开发之CPU优化

    最近开发一个APK的时候遇到了一个问题,CPU动不动就占用到40%以上,而且是一个服务型的常驻内存APK,这样子肯定不行的,CPU发热可能会过高.这个APK需要优化,包括内存优化,结构优化,CPU优化 ...

  7. Lua性能优化—Lua内存优化

    原文链接https://blog.uwa4d.com/archives/usparkle_luaperformance.html 这是侑虎科技第236篇原创文章,感谢作者舒航供稿,欢迎转发分享,未经作 ...

  8. 性能之巅:定位和优化程序CPU、内存、IO瓶颈

    摘要:性能优化指在不影响系统运行正确性的前提下,使之运行得更快,完成特定功能所需的时间更短,或拥有更强大的服务能力. #一.思维导图 #二.什么是性能优化? 性能优化指在不影响系统运行正确性的前提下, ...

  9. 大前端CPU优化技术--NEON技术

    前言 在上一篇中我们讲了SIMD技术的基础和前世今生,可以结合上一篇文章一起看大前端CPU优化技术--SIMD技术.今天我们全局性地讲解下NEON技术​. 目前主流的移动设备以ARM v7和v8版本架 ...

最新文章

  1. solr 下载 有dist目录的(6需要8)
  2. Mybatis---总结
  3. Ubuntu中安装sqldeveloper出现的问题及其解决方法
  4. Runtime's DiskExplorer手工填写分区表
  5. 前后台传值乱码问题解决
  6. 瞧瞧苹果OS X如何干掉Linux
  7. 没光驱怎么重装电脑系
  8. 无向图的深度优先遍历非递归_图算法总结
  9. eDiary电子日记本
  10. 由mysql将视图数据导入Spss,发现别名字段数据不准确
  11. Hibernate的出现和Hinbernate的简单模拟实现
  12. 用JS实现简单的省市联动
  13. ZK在Eclipse下的环境搭建
  14. 基于JavaWEB+MySQL的宾馆管理系统设计与实现
  15. 如何使用SPSS判断数据的正态分布
  16. 【PROTEUS】使用PROTEUS与电脑串口调试助手进行通讯
  17. Google 2020 应用与游戏出海 6 月刊: 政策先行,护航应用远洋
  18. 看一点逻辑学,试图理解一点真相
  19. Leetcode剑指offer——面试题10- II. 青蛙跳台阶问题
  20. HDU2121:Ice_cream’s world II (虚根+有向图最小生成树)

热门文章

  1. WebSocket 协议详述( java在线聊天室_上篇)
  2. 股票中的做T的是什么意思?
  3. 改变思维永远比一味盲干更有用,我们该如何白手起家做到财富自由
  4. 负债累累怎样白手起家?
  5. 凡是现实的都是合乎理性的,凡是合乎理性的都是现实的
  6. 计算机视觉(四)全连接神经网络MLP
  7. 我的硬盘居然被win10安装工具_云骑士新版硬盘安装win10系统
  8. 对于应届生应聘软件测试岗,面试官会问什么?
  9. [渝粤教育] 西南科技大学 编译原理与技术 在线考试复习资料2021版
  10. 利用Synonyms库对论文进行降重