首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有多少GCC优化级别?

GCC(GNU编译器套件,GNU Compiler Collection)是一组C、C++、Objective-C、Fortran、Ada等编程语言的编译器。GCC原本是自由软件,目前是GNU项目的组成部分。GCC在GNU操作系统上广泛使用,并移植到许多操作系统上,包括Linux、Mac OS X、Solaris、HP-UX、BSD和Apple's Darwin系统。

GCC 优化级别是编译器在编译代码时执行的优化级别的设置。优化级别分为多个级别,每个级别都有一些特定的优化措施和限制。在编译代码时,可以选择不同的优化级别,例如0、1、2、3等,其中0级为正常编译,不做任何优化;1级为轻度优化,限制编译器产生比较慢的代码;2级为正常优化,产生较快且较可观的代码;3级为高度优化,产生非常快且占用空间小的代码,但是可能会带来一些安全风险。

在GCC编译器中,可以通过在命令行中指定优化级别,例如gcc -O2 -o output_file input_file.c,来将优化级别设置为2级,并生成一个名为output_file的输出文件。不同的优化级别会生成不同的输出文件,并采用不同的优化措施,从而产生不同的代码运行效果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

GCC 优化级别

1. gcc中指定优化级别的参数:-O0、-O1、-O2、-O3、-Og、-Os、-Ofast。 2. 在编译时,如果没有指定上面的任何优化参数,则默认为 -O0,即没有优化。 3....参数 -Og 是在 -O1 的基础上,去掉了那些影响调试的优化,所以如果最终是为了调试程序,可以使用这个参数。...参数 -Ofast 是在 -O3 的基础上,添加了一些非常规优化,这些优化是通过打破一些国际标准(比如一些数学函数的实现标准)来实现的,所以一般不推荐使用该参数。 7....如果想知道上面的优化参数具体做了哪些优化,可以使用 gcc -Q --help=optimizers 命令来查询,比如下面是查询 -O3 参数开启了哪些优化: $ gcc -Q --help=optimizers...有关gcc优化的更多详细信息,请参考gcc的官方文档: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options

7.8K10

浅谈Linux环境下gcc优化级别

,也就是gcc – o系列,下面我将简述一下各级优化的过程以及实现。...gcc – o1 首先o1上面还有一个o0,那个是不提供任何优化,项目中几乎不会使用,而o1使用就非常广泛了,o1是最基本的优化,主要对代码的分支,表达式,常量来进行优化,编译器会在较短的时间下将代码变得更加短小...gcc – o2 这个优化级别是o1的进阶,在上一级的基础上会进行更严格的细分,最重要的是加入了寄存器的使用。...gcc – o3 这个优化属于非常强大的优化,因为编译器会进行预测,对循环每一层的预测,以便于将循环拆分,可以提高执行效率。...总结 以上就是本文关于浅谈Linux环境下gcc优化级别的全部内容,希望对大家有所帮助。欢迎大家继续参阅本站其他相关专题,感谢朋友们对ZaLou.Cn网站的支持。

1.8K20
  • 性能优化多少

    所以下面我会结合实际性能优化案例,和大家分享下性能调优的工具、方法和技巧。 2....精准定位问题点后,就是着手优化了。相信到这一步,就是优化策略的选择了,这里就不展开了。 优化后,最后当然要进行测试了,毕竟优化多少,我们也要做到心里谱才行。...案例分享 下面就分享下我针对代码层面、数据库层面和算法层面的优化案例。 4.1. SQL优化案例 案例1:客户反馈某结算报表统计十天内的数据耗时10mins左右。...#region更新三张表数据结合的中间临时表数据,上游单据的直接调拨单分多次下推时,只计算一次的调拨数量和价税合计 string sSql = string.Format(@ "SELECT FENTRYID...关于递归查询,可参考我这篇文章:SQL递归查询知多少。这里就不展开了。 5.总结 性能调优是一个循序渐进的过程,不可能一蹴而就,重在平时的点滴积累。

    1.3K90

    多少BUG,可以重来?

    其实使用语言的最重要的目的是为了沟通与交流,想想语言从无到,本身就是不断在发展变化,过于注重语法真的很大意义吗?我们经常把手段当作了目的,最后把目的倒忘了。...学校里教的和实践多大距离,在此我们再举一个例子,就是滤波电容的问题。只要是硬件工程师都用过滤波电容,可是多大比例真正理解了呢?...不少情况都是一个客户在重复犯另一个客户已经犯过的错误,而且有时候代价是极其惨痛的!再举一个亲身经历的案例。...我们一个人能工作多少年呢!让人苦笑不得的是,最终发现原来个工程师非常自信的删除了驱动中的几行代码,而这几行看似无用的代码,实际非常重要,它是为了规避芯片中的一个BUG,就这样,我们中招了!...我们相信,在嵌入式开发领域,大量的价值巨大的信息,没有分享出来,而这种信息对持有者本人来说,如果不分享出来,已经没有什么价值。

    47640

    优化多少之简述SLAM中的优化

    在学习SLAM的过程中,我们会遇到各种BA问题,关于优化问题,局部优化、全局优化、非线性优化、图优化、位姿图优化、BA优化等,那这些东西到底是什么意思?...数据量比之前大了不知多少倍....关于这点,一个理解非常重要:三角形的位姿,是通过和世界坐标系的比较而得到的,其实世界坐标系在大部分情况下也就是一开机的时候的相机坐标系,把第一帧检测到的特征点的相机坐标,当成是世界坐标,以此为参照,逐步直接递推下去...换言之:在前端的匹配中,基本都是世界坐标系的点了,然后根据图像坐标系下的点,估计世界坐标系与图像坐标系下的变换关系作为位姿(这里的世界坐标系下的坐标实际是根据第一帧一路递推下来的,可能错误会一路累积)...肯定相等啊).而是通过T1和T2所在的图像进行匹配,比如单独算一个2D-2D之间的位姿变换或者光流法等,这样根据图像算出的位姿很有可能是和T1与T2用数学方式计算得到的位姿是差异的(因为没有涉及到第一帧图像

    1.7K40

    MONGODB 事务 与 隔离级别 必要吗?

    早期的mongodb 在使用中,对于事务和隔离级别的问题并未被经常提及,随着MONGODB 的版本的不断的迭代,事务和隔离级别在MONGODB 中被提及,并有一种越来越多的趋势。...MONGODB 拥有事务的功能以及隔离级别,是从2018年夏天发布的 MOGNODB 4.0 开始的,之前的版本是没有事务与隔离级别以及达到传统数据库的 ACID。...1 在你的应用中,在MOGNODB 使用的过程中,是否运行脏读和幻读的存在,换句话说,在MONGODB 中的你的业务是否顺序性,和逻辑的顺序性。...如果你的回答是YES ,那么此时你两个选择 1 对于逻辑的顺序性强要求,如银行的业务,存钱,取现的顺序,不能有任何的马虎,那就需要考虑你的顺序性货逻辑顺序性是在 你的APP 中实现,还是在MONGODB...回到主题,mongodb 事务十分必要,他节省了开发针对MONGODB 事务中的操作节省了由于MOGNODB 不支持事务而早的全部依赖应用程序来满足事务的要求。

    1.6K30

    深入探索 Android 内存优化(炼狱级别-下)

    前言 本篇是 Android 内存优化的进阶篇,难度可以说达到了炼狱级别,建议对内存优化不是非常熟悉的仔细看看前篇文章: Android性能优化之内存优化,其中详细分析了以下几大模块: 1)、Android...(僵尸)的 8 个。...比如有很多的 map 内存也被算在其中,我们都知道,file 的 map 内存对应的可能是一个文件或硬盘,或者某个奇怪的设备,它与进程使用内存并没有多少关系。...2)、Lookaside(b):表示使用了多少个 Lookaside 的 slots,可理解为内存占用的大小。...八、内存问题总结 ======== 在我们进行内存优化的过程中,许多内存问题都可以归结为一类问题,为了便于以后快速地解决类似的内存问题,我将它们归结成了以下的多个要点: 1、内类是危险的编码方式 -

    2.5K40

    深入探索 Android 内存优化(炼狱级别-上)

    本篇是 Android 内存优化的进阶篇,难度可以说达到了炼狱级别,建议对内存优化不是非常熟悉的仔细看看前篇文章: Android性能优化之内存优化,其中详细分析了以下几大模块: 1)、Android的内存管理机制...2、ROM优化 降低应用占ROM的体积,进行APK瘦身。它的 目的 主要是为了 降低应用占用空间,避免因ROM空间不足导致程序无法安装。 3、内存问题 那么,内存问题主要是哪几类呢?...5)、程序计数器:计算当前线程的当前方法执行到多少行。 2、Java 内存回收算法 1、标记-清除算法 流程可简述为 两步: 1)、标记所有需要回收的对象。 2)、统一回收所有被标记的对象。...5、GC 监控组件搭建 通过 Debug.startAllocCounting 来监控 GC 情况,注意一定 性能影响。...针对可重编的so情况 1)、首先,通过 GCC 的 ”-finstrument-functions“ 参数给 所有函数插桩,然后,在桩中模拟调用栈的入栈与出栈操作。

    1.4K31

    gcc和g++是什么,什么区别?

    很简单,GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器。...实际上,只要是 GCC 支持编译的程序代码,都可以使用 gcc 命令完成编译。...读者可能会认为,C++ 兼容 C 语言,因此对于 C 语言程序来说,使用 gcc 编译还是使用 g++ 编译,应该没有什么区别,事实并非如此。...严格来说,C++ 标准和 C 语言标准的语法要求是区别的。...除此之外对于编译执行 C++ 程序,使用 gcc 和 g++ 也是区别的。要知道,很多 C++ 程序都会调用某些标准库中现有的函数或者类对象,而单纯的 gcc 命令是无法自动链接这些标准库文件的。

    1.2K10
    领券