linux GCC O引數設定整理

2021-08-18 02:03:34 字數 990 閱讀 3030

-o引數只有5個級別,並不是設定的越高越好(以前的gcc支援很高的級別,但是現在確實只有5級)

◆-o0:關閉所有優化選項

◆-o1:基本優化,編譯器會生成更快的**

◆-o3:這是目前最高的優化級別,它會使用更多的編譯時間,雖然它生成的**只會比-o2塊一點點(gcc3.x中是這樣的,但是在gcc4.x中有時候可能還沒有-o2快),但是它會增大二進位制檔案的體積並讓他們更消耗記憶體,因此在gcc4.x中-o3是不推薦的。

◆-os:這個級別是用來優化**尺寸的,他只是給一些cpu快取或是磁碟空間小的機器使用

-o0: 無優化。

-o和-o1: 使用能減少目標**尺寸以及執行時間並且不會使編譯時間明顯增加的優化。在編譯大型程式的時候會顯著增加編譯時記憶體的使用。

-o2: 包含-o1的優化並增加了不需要在目標檔案大小和執行速度上進行折衷的優化。編譯器不執行迴圈展開以及函式內聯。此選項將增加編譯時間和目標檔案的執行效能。

-os: 可以看成 -o2.5,專門優化目標檔案大小,執行所有的不增加目標檔案大小的-o2優化選項,並且執行專門減小目標檔案大小的優化選項。適用於磁碟空間緊張時使用。但有可能有未知的問題發生,況且目前硬碟容量很大,常用程式無必要使用。

-o3: 開啟所有 -o2 的優化選項外增加 -finline-functions、-funswitch-loops、-fgcse-after-reload 優化選項。相對於 -o2 效能並未有較多提高,編譯時間也最長,生成的目標檔案也更大更佔記憶體,有時效能不增反而降低,甚至產生不可預知的問題(包括錯誤),所以並不被大多數軟體安裝推薦,除非有絕對把握方可使用此優化級別。

修改gcc編譯引數,提高編譯優化級別,此方法適用於所有通過gcc編譯安裝的程式,不止nginx。穩妥起見用 -o2,這也是大多數軟體編譯推薦的優化級別。檢視nginx原始碼檔案 auto/cc/gcc,搜尋ngx_gcc_opt,預設gcc編譯引數為-o,可以直接修改內容為ngx_gcc_opt="-o2"或者在 ./configure配置時新增--with-cc-opt='-o2'選項。

mysql 常用引數設定整理

mysql 常用設定引數說明整理 建立資料庫 create database if not exists godata system default charset utf8 collate utf8 general ci 檢視最大連線數 show variables like max connec...

引數設定 pandas引數設定小技巧

python大資料分析記錄 分享 成長 在日常使用pandas的過程中,由於我們所分析的資料表規模 格式上的差異,使得同樣的函式或方法作用在不同資料上的效果存在差異。而pandas有著自己的一套 引數設定系統 可以幫助我們在遇到不同的資料時靈活調節從而達到最好的效果,本文就將介紹pandas中常用的...

Matlab plot 引數設定

一 matlab繪圖中用到的直線屬性包括 1 linestyle 線形 2 linewidth 線寬 3 color 顏色 4 markertype 標記點的形狀 5 markersize 標記點的大小 6 marke cecolor 標記點內部的填充顏色 7 markeredgecolor 標記點...