关于FreeBSD 5优化的补充

  •   2009-07-28/15:30
  • 还记得上一次看到关于FreeBSD 5优化的文章是1年前,也是我刚刚起步学UNIX的时候。时间飞驶,在这一年里我学到了很多FreeBSD和UNIX的知识,我对FreeBSD如何性能最大化更是感兴趣。如今FreeBSD已经替代了我的Windows2000,成为我电脑里唯一个OS。经验秘笈不敢独享,在此愿跟所有FreeBSD发烧友切磋,如有不当之处,欢迎指出批评。

    ·本文假设读者已经阅读过FreeBSD安装手册。
    ·阅读本文时,请务必参考安装优化文章。
    ·本文遵循GPL协议。
    ·本文遵循BSDL协议。
    ·欢迎其他作者结合本文内容写出各种FreeBSD优化文章。

    一、安装(sysinstall)

    1、Distribution中,仅选择minimal后,选择Customization。添加man,出现问题时可以查看命令参数;添加src,之后cvsup可以加快速度,不必读取重复的文件。

    2、Users中,添加用户后,把用户路径中的/home/abc改为/usr/abc。因为/usr的容量大。或者还可以通过增大/home的容量,不过比较麻烦。
    然后,要把shell改为csh,为了使用方便(也为了本文第七部分的设置)。

    二、编译优化(make.conf)

    注意:要屏蔽某个boolean选项,并不是标记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的优化,因为不是全部应用程序可以稳定工作于O2、O3、Os。况且最多仅获得7%的额外性能。
    ## CFLAGS的默认为"-O1 -pipe",不需要覆盖,所以使用+=。
    ## 不建议使用-f...系列优化,因为不是全部应用程序可以对此稳定工作。

    ## -mfpmath=sse:
    PentiumIII兼容的CPU可以打开-mfpmath=sse来代替传统i387的浮点运算,加快速度。参阅CPU产品手册来确定CPU是否含有SSE功能。
    ## -mfpmath=pni: Pentium4
    Prescott兼容的CPU可以打开-mfpmath=pni来代替传统i387的浮点运算,加快速度。参阅CPU产品手册来确定CPU是否含有PNI功能。
    ## -mmmx:
    打开mmx指令来增加代码性能。参阅CPU产品手册来确定CPU是否含有MMX功能。适用于PentiumMMX兼容CPU。
    ## -msse:
    打开sse指令来增加代码性能。参阅CPU产品手册来确定CPU是否含有SSE功能。适用于PentiumIII兼容CPU。
    ## -msse2:
    打开sse2指令来增加代码性能。参阅CPU产品手册来确定CPU是否含有SSE2功能。适用于Pentium4兼容CPU。
    ## -mpni:
    打开pni指令来增加代码性能。参阅CPU产品手册来确定CPU是否含有PNI功能。适用于Pentium4
    Prescott兼容CPU。
    ## -m3dnow:
    打开3DNow!指令来增加代码性能。参阅CPU产品手册来确定CPU是否含有3DNow!功能。适用于K6、Athlon兼容CPU。


    ## -maccumulate-outgoing-args -minline-all-stringops
    通过减少某些动作来实现加速,经作者实验,比较稳定。

    CXXFLAGS+= -fmemoize-lookups -fsave-memoized
    ## make.conf提到的C++代码优化。

    2、系统编译选项
    KERNCONF=(FILENAME)
    ## 内核配置文件名,将(FILENAME)更改为自己的内核文件名。

    NOINET6=true
    ## 尽量不使用用IPV6协议。

    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会出现luit错误的问题.

    WITH_GTK2=yes
    ## 尽量使用GTK2为gtk应用程序的运行库

    USE_MMX_ASM=yes
    ## 编译Xfree86时,尽量使用MMX代码,仅适用于PentiumMMX兼容CPU.

    USE_3DNOW_ASM=yes
    ## 编译Xfree86时,尽量使用3DNOW代码,仅适用于K6、Athlon兼容CPU.

    WITHOUT_KDE_MENUS=yes
    ## 使用GNOME时,不添加KDE程序在菜单上。

    4、多媒体编码选项
    WITH_CDPARANOIA=yes
    WITH_AALIB=yes
    WITH_ESOUND=yes
    WITH_FAAD=yes
    WITH_FLAC=yes
    WITH_FREETYPE=yes
    WITH_GDKPIXBUF=yes
    WITH_GSM=yes
    WITH_HERMES=yes
    WITH_JPEG=yes
    WITH_LADSPA=yes
    WITH_LAME=yes
    WITH_LIBA52=yes
    WITH_LIBAUDIOFILE=yes
    WITH_LIBCACA=yes
    WITH_LIBFAME=yes
    WITH_LIBMIKMOD=yes
    WITH_LIBMPEG2=yes
    WITH_LIBMUSICBRAINZ=yes
    WITH_LIBSHOUT=yes
    WITH_LIBSIDPLAY=yes
    WITH_LIBSNDFILE=yes
    WITH_LIBTHEORA=yes
    WITH_MAD=yes
    WITH_NAS=yes
    WITH_PANGO=yes
    WITH_PNG=yes
    WITH_SDL=yes
    WITH_SMOOTHWAVE=yes
    WITH_SPEEX=yes
    WITH_SWFDEC=yes
    WITH_VORBIS=yes
    WITH_VORBISIDEC=yes
    WITH_XINE=yes
    WITH_XVID=yes


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多