一起talk GCC吧(第五回:GCC优化)

各位看官们,大家好,上一回咱们说的是GCC警告相关的内容。这一回咱们说说如何使用GCC优化程序源

代码,闲话休提,言归正转。让我们一起talk GCC吧!

看官们,大家都知道,人们写的代码中,不一定是最优的代码,所以有时候会使用编译器对代码进行优化。

这样可以提高代码运行效率。和警告功能一样,优化功能也是通过选项实现的。选项O(注意是大写,与指

定生成文件名的小写o区分开,另外gcc是区分大小写的,不要写错)的用法和其它GCC选项的用法相同,

不过咱们还是举个例子来说明:

gcc -On file -o f.o.

例子中的n可以是0-3之间的数字,数字越大,优化级别越高,程序的运行性能也越高。如果没有指定n的值,

那么n的默认值为1,也就是使用O1进行优化。不过优化也有一些缺点,那就是会增加GCC编译程序的编译时

间,优化级别越高,编译时间就会相应地变长。基于大家使用GCC的经验值,一般使用优化级别2,也就是

使用选项O2进行优化,这样既可以使目标程序获得到不错的性能,又不会过多地增加GCC编译目标程序的

编译时间。可以看作是性能和时间之间的一个中间值。

看官们,关于GCC的内容,今天咱们就说这些。欲知后事如何,且听下回分解!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 21:26:46

一起talk GCC吧(第五回:GCC优化)的相关文章

第五回 菁菁岁月可堪一叙 琴瑟合奏难敌世情[林大帅作品连载]

第五回  菁菁岁月可堪一叙 琴瑟合奏难敌世情诗曰:       自惭粗鄙言情深,日后读经知窄门.        旷典仍无超度道.何如知己共温存?        话说林二探头走出糕点铺之后,方才想那旧时光,情不能己,这时却脚下绵绵.记得这石头路后面还有家“狼狗店”,又朝向北一转,又是一个巷口.这“狼狗店”不过有两间木房大,朝外半截窗台,上面安着窗户.当日这窗底下养只狼狗,大家也混叫它“狼狗店”,这店里以东洋游戏机营生,如那<恐龙快打>,<三国志>.当日求学文会,这店里林二是时常落脚的

JVM【第五回】:【OutOfMemoryError异常之Java堆溢出】

Java堆用于存储对象实例,我们只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清楚这些对象,就会在对象数量到达最大堆的容量限制后产生内存溢出异常. 代码清单中限制Java堆的大小为20MB,不可扩展(将堆的最小值-Xms参数与最大值-Xmx参数设置为一样即可避免堆自动扩展),通过参数-XX:+HeapDumpOnOutOfMemoryError可以让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照以便时候进行分析. 在Eclipse中的Run Conf

[转] 擎天哥as3教程系列第二回——性能优化

所谓性能优化主要是让游戏loading和运行的时候不卡. 一  优化fla导出的swf的体积? 1,  在flash中,舞台上的元件最多,生成的swf越大,库里面有连接名的元件越多,swf越大.当舞台上没有元件且库里面的元件没有连接名的话生成的swf最小. 2,  一个flash动画有10帧,10帧上面全部是位图和用一个位图播放器播放这10张图片谁消耗的cpu更高? 答:flash动画播放消耗性能更高,因为swf文件里虽然也是位图,但是swf里面的播放机制是能播放位图,矢量图,声音,视频等.所以

一起talk C栗子吧(第一百七十五回:C语言实例--获取当前终端的行数和列数)

各位看官们,大家好,上一回中咱们说的是关闭终端中缓冲功能的例子,这一回咱们说的例子是:获取当前终端的行数和列数 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在前面章回中介绍了termios相关的信息,以及termios提供的编程接口,通过这些接口可以操作终端,今天我们再介绍一些操作终端的编程接口,通过这些接口可以获取当前终端的行数和列数,这便是我们今天的主题. int setupterm(char *term, int fd, int *errret); 该函数用来修改当前

一起talk GDB吧(第五回:GDB查看信息)

各位看官们,大家好,上一回中我们说的是GDB的调用栈调试功能,并且说了如何使用GDB进行查看调用 栈.这一回中,我们继续介绍GDB的调试功能:查看信息.当然了,我们也会介绍如何使用GDB查看程序 运行时的信息.闲话休提,言归正转.让我们一起talk GDB吧! 看官们,我们在调试的时候需要查看程序中的相关信息,比如变量值.GDB提供了查看信息的功能,这些 查看功能主要有:查看源代码和变量值,跟踪变量.下面我们详细说说这些查看功能. 查看源代码:list 或者list n.list默认列出源代码中

一起talk C栗子吧(第八十五回:C语言实例--使用信号进行进程间通信二)

各位看官们,大家好,上一回中咱们说的是使用信号进行进程间通信的样例,这一回咱们接着上一回的内容,继续说该样例.闲话休提.言归正转. 让我们一起talk C栗子吧. 我们在上一回中举了使用信号进行进程间通信的样例,在该样例中.我们通过终端发出信号.当进程收到该信号后让它运行系统对信号定义的默认动作.这一回.我们再来举一个使用信号进行进程间通信的样例,只是.我们发送和处理信号的方式和上一回的样例不一样.在接下来的样例中,我们在一个进程中使用kill产生信号.在另外一个进程中接收而且依照自己的方式处理

一起talk C栗子吧(第三十五回:C语言实例--测试程序运行时间)

各位看官们,大家好,上一回中咱们说的是巧用溢出计算最值的例子,这一回咱们说的例子是:测试程序 运行时间.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,在编写程序的时候,可能需要计算程序运行的时间.通过计算时间,可以查看程序的性能.其实 我们在第三十一回中对各种常用排序算法总结时也使用过这种方法,不过当时使用的是Linux提供的time 命令.如果大家忘记了第三十一回的内容,可以点击这里查看. 我们今天说的测试程序运行时间,是让程序自己测试运行时间,而不是像第三十一回中哪样借用其它工

一起talk C栗子吧(第九十五回:C语言实例--使用共享内存进行进程间通信一)

各位看官们,大家好,上一回中咱们说的是SystemV IPC结构概述的例子,这一回咱们说的例子是:使用共享内存进行进程间通信.闲话休提,言归正转.让我们一起talk C栗子吧! 共享内存是SystemV IPC结构这种抽象概念的一种具体对象.就和它的名字一样,它提供了一段内存空间供不同的进程使用,进程之间可以通过该内存空间传递数据,进而实现进程间的通信. 在介绍共享内存的使用方法之前,我们先介绍几个函数,这些函数都是用来操作共享的内存的. shmget函数 int shmget(key_t ke

一起talk C栗子吧(第二十五回:C语言实例-二分查找)

各位看官们,大家好,上一回中咱们说的是顺序查找的例子,这一回咱们说的例子是:二分查找.闲话休 提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中说了查找的相关内容,并且介绍了一种查找方法:顺序查找.大家还记得吗?台 下有看官说:记得呢.我刚想表扬一下这位看官,但是话还没有出口,这看官就又说了:就是不知道哪个 人最后找到钥匙没有...我什么表扬的话也没有说,大声吆喝道:"这一回中,我给大家介绍一种新的查 找方法:二分查找法.或者叫折半查找法也可以." 在介绍二分查找法之