最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Linux環(huán)境下gcc優(yōu)化級別

 更新時(shí)間:2017年09月30日 16:17:24   作者:yanghan1233  
這篇文章主要介紹了Linux環(huán)境下gcc優(yōu)化級別,涉及gcc系列的相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。

代碼優(yōu)化可以說是一個(gè)非常復(fù)雜而又非常重要的問題,以筆者多年的linux c開發(fā)經(jīng)驗(yàn)來說優(yōu)化通常分為兩個(gè)方面,一是人為優(yōu)化,也就是基于編程經(jīng)驗(yàn)采用更簡易的數(shù)據(jù)結(jié)構(gòu)函數(shù)等來降低編譯器負(fù)擔(dān),二是采用系統(tǒng)自帶的優(yōu)化模式,也就是gcc - o系列,下面我將簡述一下各級優(yōu)化的過程以及實(shí)現(xiàn)。

gcc - o1 首先o1上面還有一個(gè)o0,那個(gè)是不提供任何優(yōu)化,項(xiàng)目中幾乎不會使用,而o1使用就非常廣泛了,o1是最基本的優(yōu)化,主要對代碼的分支,表達(dá)式,常量來進(jìn)行優(yōu)化,編譯器會在較短的時(shí)間下將代碼變得更加短小,這樣體積就會變得更小,會減少內(nèi)存的占用率,在操作系統(tǒng)進(jìn)行內(nèi)存調(diào)度時(shí)就會更快。但是事情沒有絕對的優(yōu)點(diǎn),當(dāng)一個(gè)龐大的程序被拆碎細(xì)分的話,內(nèi)存占用會大大增加,由于當(dāng)今系統(tǒng)大多數(shù)都是多線程,就會出現(xiàn)卡頓和反應(yīng)延遲。

gcc - o2 這個(gè)優(yōu)化級別是o1的進(jìn)階,在上一級的基礎(chǔ)上會進(jìn)行更嚴(yán)格的細(xì)分,最重要的是加入了寄存器的使用。寄存器是cpu中重要的組成部分,此外還有運(yùn)算器和控制器,計(jì)算機(jī)顧名思義,要進(jìn)行各種龐雜的計(jì)算,由于cpu速度較快,所以計(jì)算的中間結(jié)果都會保存在寄存器中,這樣可以大大提高系統(tǒng)的效率,但是寄存器造價(jià)高昂,數(shù)量有限,所以一般來說程序不會放在寄存器中,另一種將代碼放在寄存器的方式是使用register修飾變量,適用于頻繁調(diào)用的變量。

gcc - o3 這個(gè)優(yōu)化屬于非常強(qiáng)大的優(yōu)化,因?yàn)榫幾g器會進(jìn)行預(yù)測,對循環(huán)每一層的預(yù)測,以便于將循環(huán)拆分,可以提高執(zhí)行效率。編譯器還會試圖用已有的值來代替未知的值,并且還會用加代替乘,因?yàn)檫\(yùn)算器的特性,乘法十分復(fù)雜耗時(shí)。當(dāng)然o3的缺點(diǎn)最明顯,那就是o3因?yàn)樵噲D預(yù)測程序的走向,可能會出現(xiàn)誤差,導(dǎo)致錯(cuò)誤和程序不可逆轉(zhuǎn)的走向。所以一般o3不建議使用。
以上就是關(guān)于優(yōu)化的三個(gè)等級,對于優(yōu)化,系統(tǒng)的優(yōu)化還是機(jī)械的,程序員對于語言深刻的理解,巧妙地算法可能會更有意義。

總結(jié)

以上就是本文關(guān)于淺談Linux環(huán)境下gcc優(yōu)化級別的全部內(nèi)容,希望對大家有所幫助。歡迎大家繼續(xù)參閱本站其他相關(guān)專題,感謝朋友們對腳本之家網(wǎng)站的支持。

相關(guān)文章

  • centos 7中添加一個(gè)新用戶并授權(quán)的步驟詳解

    centos 7中添加一個(gè)新用戶并授權(quán)的步驟詳解

    這篇文章主要給大家介紹了關(guān)于在centos 7中添加一個(gè)新用戶并授權(quán)的步驟,文中將實(shí)現(xiàn)的步驟介紹的非常詳細(xì),通過文中介紹的步驟可以輕松的創(chuàng)建一個(gè)新用戶并授權(quán),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • Ubuntu環(huán)境編譯安裝PHP和Nginx的方法

    Ubuntu環(huán)境編譯安裝PHP和Nginx的方法

    這篇文章主要介紹了Ubuntu環(huán)境編譯安裝PHP和Nginx的方法,較為詳細(xì)的分析了Ubuntu環(huán)境編譯安裝PHP和Nginx的具體步驟、相關(guān)命令與操作技巧,需要的朋友可以參考下
    2019-08-08
  • linux殺進(jìn)程的多種方法

    linux殺進(jìn)程的多種方法

    這篇文章主要介紹了linux殺進(jìn)程的多種方法,需要的朋友可以參考下
    2014-03-03
  • win10 裝centos7 虛擬機(jī)

    win10 裝centos7 虛擬機(jī)

    虛擬機(jī)安裝網(wǎng)上教程很多,碰到問題也容易解決,這里就記錄下便于自己翻越,有不足之處還請指明,不吝賜教
    2019-01-01
  • linux 進(jìn)程數(shù)最大值修改方法

    linux 進(jìn)程數(shù)最大值修改方法

    這篇文章主要介紹了linux 進(jìn)程數(shù)最大值修改方法,非常不錯(cuò)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • linux 安裝配置lamp v2

    linux 安裝配置lamp v2

    距離第一個(gè)版本已經(jīng)有一年了。修正了幾個(gè)錯(cuò)誤的地方,還有取消了某些lib的安裝,因?yàn)閏entos有,所以相關(guān)的lib安裝我都沒有去查找錯(cuò)誤。
    2009-02-02
  • Linux查看文件大小的幾種方法匯總

    Linux查看文件大小的幾種方法匯總

    這篇文章主要介紹了Linux查看文件大小的幾種方法匯總,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Centos7系統(tǒng)下搭建.NET Core2.0+Nginx+Supervisor環(huán)境

    Centos7系統(tǒng)下搭建.NET Core2.0+Nginx+Supervisor環(huán)境

    本文為大家分享了如何在Centos7系統(tǒng)下搭建.NET Core2.0+Nginx+Supervisor環(huán)境,部署方法非常詳細(xì)
    2018-10-10
  • Linux服務(wù)器和docker時(shí)區(qū)修改問題

    Linux服務(wù)器和docker時(shí)區(qū)修改問題

    這篇文章主要介紹了Linux服務(wù)器和docker時(shí)區(qū)修改問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • vim的一些常用簡單操作小結(jié)

    vim的一些常用簡單操作小結(jié)

    大家都知道vim在Linux下使用很多,但是習(xí)慣了在Windows下的文本操作,在vim中進(jìn)行文本操作會覺得很不方便,但是vim是一個(gè)很強(qiáng)大的工具,只是還不熟練去使用它,下面是一些常用的vim文本操作方法。
    2016-09-09

最新評論

咸宁市| 长丰县| 喀什市| 大余县| 唐海县| 九江县| 沙雅县| 五原县| 柳林县| 屏山县| 株洲市| 揭阳市| 吉安县| 宣城市| 绍兴市| 佛山市| 岱山县| 综艺| 习水县| 乌拉特中旗| 天峨县| 永新县| 马边| 三亚市| 青田县| 安义县| 五原县| 色达县| 布尔津县| 高碑店市| 长沙县| 湘乡市| 泸水县| 乐东| 连城县| 石楼县| 拉萨市| 勐海县| 丘北县| 且末县| 昌都县|