全网整合营销服务商

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

免费咨询热线: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项目编译  # 就会  # 放在  # 都是  # 进阶  # 器中  # 也就  # 一是  # 还会  # 可以说  # 不可逆转  # 适用于  # 会在  # 朋友们  # 数据结构  # 更有  # 还有一个  # 欢迎大家  # 我将  # 更快  # 时就 


相关文章: 西安专业网站制作公司有哪些,陕西省建行官方网站?  视频网站制作教程,怎么样制作优酷网的小视频?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  太原网站制作公司有哪些,网约车营运证查询官网?  网站制作新手教程,新手建设一个网站需要注意些什么?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  西安大型网站制作公司,西安招聘网站最好的是哪个?  如何快速搭建响应式可视化网站?  韩国服务器如何优化跨境访问实现高效连接?  C++中引用和指针有什么区别?(代码说明)  建站主机选购指南:核心配置与性价比推荐解析  建站之星如何配置系统实现高效建站?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  javascript中的try catch异常捕获机制用法分析  制作企业网站建设方案,怎样建设一个公司网站?  如何高效完成自助建站业务培训?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  如何用美橙互联一键搭建多站合一网站?  如何获取开源自助建站系统免费下载链接?  PHP 500报错的快速解决方法  成都网站制作公司哪家好,四川省职工服务网是做什么用?  已有域名如何免费搭建网站?  济南企业网站制作公司,济南社保单位网上缴费步骤?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  北京建设网站制作公司,北京古代建筑博物馆预约官网?  红河网站制作公司,红河事业单位身份证如何上传?  建站之星后台密码遗忘或太弱?如何重置与强化?  如何在云主机快速搭建网站站点?  如何通过虚拟主机空间快速建站?  建站之星伪静态规则如何正确配置?  如何高效生成建站之星成品网站源码?  如何用腾讯建站主机快速创建免费网站?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  建站主机是否等同于虚拟主机?  ,巨量百应是干嘛的?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  深圳网站制作培训,深圳哪些招聘网站比较好?  C#如何序列化对象为XML XmlSerializer用法  如何打造高效商业网站?建站目的决定转化率  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  如何通过FTP空间快速搭建安全高效网站?  如何通过IIS搭建网站并配置访问权限?  建站DNS解析失败?如何正确配置域名服务器?  建站之星如何快速生成多端适配网站? 

您的项目需求

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