这篇文章将为大家详细讲解有关C/C++如何优化编译器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
专注于为中小企业提供做网站、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业鼓楼免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。0. gcc -o
gcc -o 的优化仍然是机械的,想当然的。只有做到深入理解计算机系统,加深对编程语言的理解,才能写出最优化的代码。
Linux下gcc 优化级别的介绍
·gcc -o0 ⇒ 不提供任何优化;
·gcc -o1 ⇒ 最基本的优化,主要对代码的分支、表达式、常量等进行优化,编译器会在较短的时间下将代码变得更加短小,这样体积就会变得更小,会减少内存的占用率,在操作系统进行内存调度时就会更快。
·但是事情没有绝对的优点,当一个庞大的程序被拆碎细分的话,内存占用会大大增加,由于当今系统大多数都是多线程,就会出现卡顿和反应延迟。
·大的项目代码不适合 gcc -o1 优化;
·gcc -o2:是对 o1 的进阶,在 o1 在基础上会进行更严格的划分,最重要的是加入了寄存器的实用;
1. volatile 关键字
volatile 关键字能够阻止编译器的过度优化,可以做到如下两件事情:
·阻止编译器为了提高速度将一个变量缓存到寄存器而不写回;
·阻止编译器调整操作 volatile 变量的指令顺序;
2. register 关键字
将代码放在寄存器的方式是使用 register 修饰变量,适用于频繁调用的变量。
关于“C/C++如何优化编译器”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。