linxu極限優化之gcc

  前面我們介紹了很多linux系統優化的技巧,這裏我們還可以繼續榨乾機器的性能,就是我們手動編譯內核,應用程序的基礎gcc(注意:clang/llvm不考慮,基本上性能和gcc相差不了多少,只是freebsd討厭gcc的版權才搞的短時間不考慮)。

  如今的gcc已經到4.7.1了,首先我們來安裝gcc吧:

  1,下載gcc-4.7.1-20120825.tar.bz2,然後解壓,還需要下載安裝libgmp3-dev libmpfr-dev  libmpc-dev flex bison zlib readline automake autoconfig cmake zlib1g-dev 很多軟件在你aptitude install build-essential kernel-package 等內河編譯環境是已經安裝了

  2,mkdir gcc-build編譯目錄 並進入cd gcc-build

  3,../gcc-4.7.1*/configure
--prefix=/usr \ 
 --libexecdir=/usr/lib \
 --enable-shared \  
 --enable-threads=posix \
 --enable-__cxa_atexit \  
 --enable-clocale=gnu \
 --enable-languages=c,c++ \  
 --disable-multilib \
  --disable-bootstrap \ 
  --with-system-zlib \
  --build=x86_64-linux-gnu \
  --enable-lto \
  --with-cpu=athlon64 \

 注意:1,這裏我們開啓了最新的lto優化,支持linux內核編譯,以後所有的編譯都會使用lto優化,會自動分配幾個進程來編譯,也可以自己定義進程數量使用-flto=n來設置,可以提高程序5%左右的性能,不過可能帶來編譯時間的大幅度提高 特別是php編譯5.2.X。

             2,我們關閉了多平臺32 64支持disable-multilib,所有不用安裝gcc-mulitlib否則要安裝。

             3,修改gcc-build產生的Makefile 把所有的 -g 全部去掉呵呵,默認系統自帶的gcc,cpp等才250K如果不去調試gcc4.7.1的gcc .cpp要1.7M恐怖,去掉以後才520K左右!

  好了安裝完成後,把/usr/bin下面原來的gcc cpp c++ g++連接改爲 ln -s /usr/gcc*/bin/gcc gcc.........................之後我們就可以編輯/etc/profile。加入CFLAGS=' -O2 -pipe -march=athlon64 -fomit-frame-pointer(其實開啓O2就已經開啓了,怕有些系統要專門制定)。沒有必要我們不需要開啓O3級別,很容易出錯。改好了之後就是source profile生效了。

  不過建議大家不要太在意gcc的性能提高,特別是對於內核編譯到底使用O2 還是Os各大發行版本不一樣rhel ,centos等是使用的O2 debian 使用的是Os本人建議如果編譯內核還是改爲Os把對於主線內核,或者debian內核,rhel還是O2把,這類發行版對內核修改還是很大的,基本脫離了標準的主線內核。。。。。至於O3甚至是Ofast級別,基本上如果大家不是瘋子還是不要整,整了也白搭看不出效果而且搞不好還會降低性能,出錯。。。。

    以上測試都是在debian6.0.5進行,請大家謹慎參考,部署出錯與本人無關,追求卓越,永無止境!

 最後附上最新力作,精簡的debian內核2.6.32配置文件,以供大家在vps發揮linux極限性能http://down.51cto.com/data/497058 編譯以後內核大小爲1.19M,比之前的2.4M減少了一半大小,此內核專門對虛擬環境(vm,如果是kvm請開啓viro device)進行了優化,同時參考了linode vps內核配置文件,關閉了netfilter,lsm安全功能,基本上用,在vps下面開了也是死。

    

          

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章