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

GCC -O0 -O1 -O2 -O3 四级优化选项

-O 和-O1 对程序做部分编译优化,对于大函数,优化编译占用稍微多的时间和相当大的内存。使用本项优化,编译器会尝试减小生成代码的尺寸,以及缩短执行时间,但并不执行需要占用大量编译时间的优化。...-O2(氧气优化) 是比 O1 更高级的选项,进行更多的优化。Gcc 将执行几乎所有的不包含时间和空间折中的优化。...与 O1 比较而言,O2 优化增加了编译时间的基础上,提高了生成代码的执行效率。...O2 打开所有的 O1 选项,并打开以下选项: l -fforce-mem:在做算术操作前,强制将内存数据 copy 到寄存器中以后再执行。...O1 优化会消耗少多的编译时间,它主要对代码的分支,常量以及表达式等进行优化。 O2 会尝试更多的寄存器级的优化以及指令级的优化,它会在编译期间占用更多的内存和编译时间。

3.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

浅谈Linux环境下gcc优化级别

代码优化可以说是一个非常复杂而又非常重要的问题,以笔者多年的linux c开发经验来说优化通常分为两个方面,一是人为优化,也就是基于编程经验采用更简易的数据结构函数等来降低编译器负担,二是采用系统自带的优化模式...gcc – o1 首先o1上面还有一个o0,那个是不提供任何优化,项目中几乎不会使用,而o1使用就非常广泛了,o1是最基本的优化,主要对代码的分支,表达式,常量来进行优化,编译器会在较短的时间下将代码变得更加短小...gcc – o2 这个优化级别是o1的进阶,在上一级的基础上会进行更严格的细分,最重要的是加入了寄存器的使用。...总结 以上就是本文关于浅谈Linux环境下gcc优化级别的全部内容,希望对大家有所帮助。欢迎大家继续参阅本站其他相关专题,感谢朋友们对ZaLou.Cn网站的支持。

1.7K20

编程小技巧之 Linux 文本处理命令(二)

编程小技巧之 Linux 文本处理命令(二) 合格的程序员都善于使用工具,正所谓君子性非异也,善假于物也。合理的利用 Linux 的命令行工具,可以提高我们的工作效率。...本篇文章是《Linux 文本处理命令》 续篇,在前文的基础上再介绍几款有用的 Linux 命令行工具和使用场景。 再啰嗦几句,工具能提供效率,但是有一定的学习曲线和学习成本。...[linux-join] 上述两个文件的内容如下所示: // order.txt user_id是第三列 o1 1 u1 2011-9 o2 2 u2 2011-10 o3 3 u3 2011-10 o4...$ join -1 3 -2 1 order.txt user.txt # 指定以order.txt的第三列和user.txt的第一列来进行对比join u1 o1 1 2011-9 tom 男 u2...通过上述命令的组合,我们就完成了按照相同列合并两个文件的操作,这也体现了 Linux 的 KISS 思想,每个工具只做一小件事情。

90400

编程小技巧之 Linux 文本处理命令(二)

合理的利用 Linux 的命令行工具,可以提高我们的工作效率。 本篇文章是《Linux 文本处理命令》 续篇,在前文的基础上再介绍几款有用的 Linux 命令行工具和使用场景。...上述两个文件的内容如下所示: // order.txt user_id是第三列 o1 1 u1 2011-9 o2 2 u2 2011-10 o3 3 u3 2011-10 o4 4 u1 2011-12...$ join -1 3 -2 1 order.txt user.txt # 指定以order.txt的第三列和user.txt的第一列来进行对比joinu1 o1 1 2011-9 tom 男 u2...$ sort -k 3 order.txt # 按照数字排序则使用 -n 如果反序则用 -ro4 4 u1 2011-12 o1 1 u1 2011-9 o2 2 u2 2011-10 o3 3 u3...通过上述命令的组合,我们就完成了按照相同列合并两个文件的操作,这也体现了 Linux 的 KISS 思想,每个工具只做一小件事情。

74510

Linux中使用find命令行查找文件

按名称或扩展名查找Linux文件 使用find命令行按名称或扩展名查找特定文件。...三个可供用户选择的优化级别被指定为-O1,-O2和-O3。在运行所有其他测试之前,-O1优化是默认值并强制find基于文件名进行过滤。...命令 描述 -O1 (默认)首先根据文件名过滤。 -O2 首先是文件名,然后是文件类型。 -O3 允许find根据资源和可能性的有效使用自动重新排序搜索。...如何在Linux命令行查找和删除文件 警告 请谨慎使用此选项。 将-delete选项添加到匹配表达式的末尾,这样就能删除所有匹配的文件。请务必确定查找结果与您要删除的文件匹配。...---- 参考文献:《Find Files in Linux, Using the Command Line》

3.9K20

CPU进程优先级

二.NICE值 nice值应该是熟悉Linux/UNIX的人很了解的概念了,我们都知它是反应一个进程“优先级”状态的值,其取值范围是40-20至19-0,一共40个级别。...在原来使用O1调度的Linux上,我们还会把nice值叫做静态优先级,这也基本符合nice值的特点,就是nice值设定好了之后,除非我们用renice去改它,否则它是不变的。...而priority的值在之前内核的O1调度器上表现是会变化的,所以也叫做动态优先级。...这里隐含了一个信息,就是说当前的Linux是一种已经支持实时进程的操作系统。 简单来说,实时操作系统需要保证相关的实时进程在较短的时间内响应,不会有较长的延时,并且要求最小的中断延时和进程切换延时。...对于这样的需求,一般的进程调度算法,无论是O1还是CFS都是无法满足的,所以内核在设计的时候,将实时进程单独映射了100个优先级,这些优先级都要高与正常进程的优先级(nice值),这样就可以保证实时进程遇险记最高

2.9K30

面试必备:基于 Zookeeper 的分布式锁实现【图文并茂 附源码 】

且很多资料都是将 Zookeeper 描述成一个“类 Unix/Linux 文件系统”的中间件,导致我很难将类 Unix/Linux 文件系统的 Zookeeper 和分布式应用联系在一起。...即如果某个操作 O1 对访问资源 R1 的过程加锁,在操作 O1 结束对资源 R1 访问前,其他操作不允许访问资源 R1。...以上算是对独占锁的简单定义了,那么这段定义在 Zookeeper 的“类 Unix/Linux 文件系统”的结构中是怎样实现的呢?在锁答案前,我们先看张图: ?...读写锁包含一个读锁和写锁,操作 O1 对资源 R1 加读锁,且获得了锁,其他操作可同时对资源 R1 设置读锁,进行共享读操作。...如果操作 O1 对资源 R1 加写锁,且获得了锁,其他操作再对资源 R1 设置不同类型的锁都会被阻塞。总结来说,读锁具有共享性,而写锁具有排他性。

46110
领券