還記得上一次看到關(guān)于FreeBSD 5優(yōu)化的文章是1年前,也是我剛剛起步學(xué)UNIX的時候。時間飛駛,在這一年里我學(xué)到了很多FreeBSD和UNIX的知識,我對FreeBSD如何性能最大化更是感興趣。如今FreeBSD已經(jīng)替代了我的Windows2000,成為我電腦里唯一個OS。經(jīng)驗秘笈不敢獨享,在此愿跟所有FreeBSD發(fā)燒友切磋,如有不當(dāng)之處,歡迎指出批評。
·本文假設(shè)讀者已經(jīng)閱讀過FreeBSD安裝手冊。
·閱讀本文時,請務(wù)必參考安裝優(yōu)化文章。
·本文遵循GPL協(xié)議。
·本文遵循BSDL協(xié)議。
·歡迎其他作者結(jié)合本文內(nèi)容寫出各種FreeBSD優(yōu)化文章。
一、安裝(sysinstall)
1、Distribution中,僅選擇minimal后,選擇Customization。添加man,出現(xiàn)問題時可以查看命令參數(shù);添加src,之后cvsup可以加快速度,不必讀取重復(fù)的文件。
2、Users中,添加用戶后,把用戶路徑中的/home/abc改為/usr/abc。因為/usr的容量大?;蛘哌€可以通過增大/home的容量,不過比較麻煩。
然后,要把shell改為csh,為了使用方便(也為了本文第七部分的設(shè)置)。
二、編譯優(yōu)化(make.conf)
注意:要屏蔽某個boolean選項,并不是標(biāo)記no或false!而是整行刪掉!
1、編譯器選項
CPUTYPE=athlon-xp
##本人使用AthlonXP 2500+,不同的CPU請參考man make.conf
CFLAGS+= -mfpmath=sse -mmmx -msse -m3dnow -maccumulate-outgoing-args
-minline-all-stringops
##
不建議使用O2、O3、Os的優(yōu)化,因為不是全部應(yīng)用程序可以穩(wěn)定工作于O2、O3、Os。況且最多僅獲得7%的額外性能。
## CFLAGS的默認(rèn)為"-O1 -pipe",不需要覆蓋,所以使用+=。
## 不建議使用-f...系列優(yōu)化,因為不是全部應(yīng)用程序可以對此穩(wěn)定工作。
## -mfpmath=sse:
PentiumIII兼容的CPU可以打開-mfpmath=sse來代替?zhèn)鹘y(tǒng)i387的浮點運算,加快速度。參閱CPU產(chǎn)品手冊來確定CPU是否含有SSE功能。
## -mfpmath=pni: Pentium4
PRescott兼容的CPU可以打開-mfpmath=pni來代替?zhèn)鹘y(tǒng)i387的浮點運算,加快速度。參閱CPU產(chǎn)品手冊來確定CPU是否含有PNI功能。
## -mmmx:
打開mmx指令來增加代碼性能。參閱CPU產(chǎn)品手冊來確定CPU是否含有MMX功能。適用于PentiumMMX兼容CPU。
## -msse:
打開sse指令來增加代碼性能。參閱CPU產(chǎn)品手冊來確定CPU是否含有SSE功能。適用于PentiumIII兼容CPU。
## -msse2:
打開sse2指令來增加代碼性能。參閱CPU產(chǎn)品手冊來確定CPU是否含有SSE2功能。適用于Pentium4兼容CPU。
## -mpni:
打開pni指令來增加代碼性能。參閱CPU產(chǎn)品手冊來確定CPU是否含有PNI功能。適用于Pentium4
Prescott兼容CPU。
## -m3dnow:
打開3DNow!指令來增加代碼性能。參閱CPU產(chǎn)品手冊來確定CPU是否含有3DNow!功能。適用于K6、Athlon兼容CPU。
## -maccumulate-outgoing-args -minline-all-stringops
通過減少某些動作來實現(xiàn)加速,經(jīng)作者實驗,比較穩(wěn)定。
CXXFLAGS+= -fmemoize-lookups -fsave-memoized
## make.conf提到的C++代碼優(yōu)化。
2、系統(tǒng)編譯選項
KERNCONF=(FILENAME)
## 內(nèi)核配置文件名,將(FILENAME)更改為自己的內(nèi)核文件名。
NOINET6=true
## 盡量不使用用IPV6協(xié)議。
NOATM=true
## 盡量不使用ATM,本選項僅適用于非ADSL用戶。
NO_SENDMAIL=true
## 盡量不使用SENDMAIL。
NOGAMES=true
## 不安裝所有游戲
NO_I4B=true
## 盡量不使用ISDN For BSD。
NO_IPFILTER=true
## 盡量不使用IP Filter。
BATCH=yes
## 安靜編譯,編譯時跳過所有提問。適用于某些隔夜一次性編譯程序的用戶。
3、X-Window編譯選項
XFREE86_VERSION=4
## 盡量使用4.3版本的X-Window
WITH_SETUID_LUIT=yes
## 不使用本項的話,運行xterm會出現(xiàn)luit錯誤的問題.
WITH_GTK2=yes
## 盡量使用GTK2為gtk應(yīng)用程序的運行庫
USE_MMX_ASM=yes
## 編譯Xfree86時,盡量使用MMX代碼,僅適用于PentiumMMX兼容CPU.
USE_3DNOW_ASM=yes
## 編譯Xfree86時,盡量使用3DNOW代碼,僅適用于K6、Athlon兼容CPU.
WITHOUT_KDE_MENUS=yes
## 使用GNOME時,不添加KDE程序在菜單上。
4、多媒體編碼選項
新聞熱點
疑難解答
圖片精選