全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

浅谈Linux环境下gcc优化级别

代码优化可以说是一个非常复杂而又非常重要的问题,以笔者多年的linux c开发经验来说优化通常分为两个方面,一是人为优化,也就是基于编程经验采用更简易的数据结构函数等来降低编译器负担,二是采用系统自带的优化模式,也就是gcc - o系列,下面我将简述一下各级优化的过程以及实现。

gcc - o1 首先o1上面还有一个o0,那个是不提供任何优化,项目中几乎不会使用,而o1使用就非常广泛了,o1是最基本的优化,主要对代码的分支,表达式,常量来进行优化,编译器会在较短的时间下将代码变得更加短小,这样体积就会变得更小,会减少内存的占用率,在操作系统进行内存调度时就会更快。但是事情没有绝对的优点,当一个庞大的程序被拆碎细分的话,内存占用会大大增加,由于当今系统大多数都是多线程,就会出现卡顿和反应延迟。

gcc - o2 这个优化级别是o1的进阶,在上一级的基础上会进行更严格的细分,最重要的是加入了寄存器的使用。寄存器是cpu中重要的组成部分,此外还有运算器和控制器,计算机顾名思义,要进行各种庞杂的计算,由于cpu速度较快,所以计算的中间结果都会保存在寄存器中,这样可以大大提高系统的效率,但是寄存器造价高昂,数量有限,所以一般来说程序不会放在寄存器中,另一种将代码放在寄存器的方式是使用register修饰变量,适用于频繁调用的变量。

gcc - o3 这个优化属于非常强大的优化,因为编译器会进行预测,对循环每一层的预测,以便于将循环拆分,可以提高执行效率。编译器还会试图用已有的值来代替未知的值,并且还会用加代替乘,因为运算器的特性,乘法十分复杂耗时。当然o3的缺点最明显,那就是o3因为试图预测程序的走向,可能会出现误差,导致错误和程序不可逆转的走向。所以一般o3不建议使用。
以上就是关于优化的三个等级,对于优化,系统的优化还是机械的,程序员对于语言深刻的理解,巧妙地算法可能会更有意义。

总结

以上就是本文关于浅谈Linux环境下gcc优化级别的全部内容,希望对大家有所帮助。欢迎大家继续参阅本站其他相关专题,感谢朋友们对网站的支持。


# linux  # gcc  # 优化级别  # 默认优化级别  # 如何用C写一个web服务器之I/O多路复用  # 如何用C写一个web服务器之基础功能  # C语言多线程服务器的实现实例  # c++ 如何在libuv中实现tcp服务器  # Linux gcc命令的具体使用  # 关于g++和gcc的相同点和区别详解  # GCC 编译c程序的方法及过程解析  # GCC 编译使用动态链接库和静态链接库的方法  # 如何用C写一个web服务器之GCC项目编译  # 就会  # 放在  # 都是  # 进阶  # 器中  # 也就  # 一是  # 还会  # 可以说  # 不可逆转  # 适用于  # 会在  # 朋友们  # 数据结构  # 更有  # 还有一个  # 欢迎大家  # 我将  # 更快  # 时就 


相关文章: 建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  中山网站制作网页,中山新生登记系统登记流程?  建站之星云端配置指南:模板选择与SEO优化一键生成  用v-html解决Vue.js渲染中html标签不被解析的问题  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  香港服务器租用费用高吗?如何避免常见误区?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  详解jQuery中基本的动画方法  建站之星伪静态规则如何设置?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  建站之星2.7模板:企业网站建设与h5定制设计专题  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  如何通过山东自助建站平台快速注册域名?  常州自助建站费用包含哪些项目?  建站168自助建站系统:快速模板定制与SEO优化指南  建站主机与虚拟主机有何区别?如何选择最优方案?  如何用免费手机建站系统零基础打造专业网站?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  实例解析Array和String方法  建站之星价格显示格式升级,你的预算足够吗?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  Swift中循环语句中的转移语句 break 和 continue  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  建站主机是否等同于虚拟主机?  如何高效利用200m空间完成建站?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  在线制作视频的网站有哪些,电脑如何制作视频短片?  建站主机选哪家性价比最高?  Android滚轮选择时间控件使用详解  动图在线制作网站有哪些,滑动动图图集怎么做?  如何确保西部建站助手FTP传输的安全性?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  模具网站制作流程,如何找模具客户?  宿州网站制作公司兴策,安徽省低保查询网站?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  临沂网站制作企业,临沂第三中学官方网站?  广州美橙建站如何快速搭建多端合一网站?  油猴 教程,油猴搜脚本为什么会网页无法显示?  建站之星×万网:智能建站系统+自助建站平台一键生成  海南网站制作公司有哪些,海口网是哪家的?  专业公司网站制作公司,用什么语言做企业网站比较好?  建站之星客服服务时间及联系方式如何?  网站制作价目表怎么做,珍爱网婚介费用多少?  宝塔面板创建网站无法访问?如何快速排查修复? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。