哈密瓜大哥的Linux优化经验

发表于:2007-07-04来源:作者:点击数: 标签:
经验谈:如何使你的系统达到最优化? 1、检查你的gcc版本: #gcc--version 2、获取你的cpu的型号: cat/proc/cpuinfo 3、在/etc/下建立make.conf文件,并根据cpu的型号写入不同内容。注意你的gcc版本必须在3.0以上。 i386(Intel): CHOST="i386-pc-linux-gnu

经验谈:如何使你的系统达到最优化? 

1、检查你的gcc版本:
 
 #gcc --version
 
 2、获取你的cpu的型号:
 
 cat /proc/cpuinfo
 
 3、在/etc/下建立make.conf文件,并根据cpu的型号写入不同内容。注意你的gcc版本必须在3.0以上。
 i386 (Intel): 
 
 CHOST="i386-pc-linux-gnu"
 CFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer"
 
 i486 (Intel):
 
 CHOST="i486-pc-linux-gnu"
 CFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer"
 
 Pentium 1 (Intel)
 
 CHOST="i586-pc-linux-gnu"
 CFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer"
 
 Pentium MMX (Intel)
 
 CHOST="i586-pc-linux-gnu"
 CFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer"
 
 Pentium PRO (Intel)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=pentiumpro -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=pentiumpro -O3 -pipe -fomit-frame-pointer"
 
 Pentium II (Intel)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
 
 Celeron (Mendocino), aka Celeron1 (Intel)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
 
 Pentium III (Intel)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
 
 Celeron (Coppermine) aka Celeron2 (Intel)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
 
 Celeron (Willamette?) (Intel)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
 
 Pentium 4 (Intel)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
 
 Eden C3/Ezra (Via)
 
 CHOST="i586-pc-linux-gnu"
 CFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer"
 
 K6 (AMD)
 
 CHOST="i586-pc-linux-gnu"
 CFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
 
 K6-2 (AMD)
 
 CHOST="i586-pc-linux-gnu"
 CFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer"
 
 K6-3 (AMD)
 
 CHOST="i586-pc-linux-gnu"
 CFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer"
 
 Athlon (AMD)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer"
 
 Athlon-tbird, aka K7 (AMD)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer"
 
 Athlon-tbird XP (AMD)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
 
 Athlon 4(AMD)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=athlon-4 -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=athlon-4 -O3 -pipe -fomit-frame-pointer"
 
 Athlon XP (AMD)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
 
 Athlon MP (AMD)
 
 CHOST="i686-pc-linux-gnu"
 CFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer"
 
 603 (PowerPC)
 
 CHOST="powerpc-unknown-linux-gnu"
 CFLAGS="-O3 -pipe -fsigned-char"
 CXXFLAGS="-O3 -pipe -fsigned-char"
 
 603e (PowerPC)
 
 CHOST="powerpc-unknown-linux-gnu"
 CFLAGS="-O3 -pipe -fsigned-char"
 CXXFLAGS="-O3 -pipe -fsigned-char"
 
 604 (PowerPC)
 
 CHOST="powerpc-unknown-linux-gnu"
 CFLAGS="-O3 -pipe -fsigned-char"
 CXXFLAGS="-O3 -pipe -fsigned-char"
 
 604e (PowerPC)
 
 CHOST="powerpc-unknown-linux-gnu"
 CFLAGS="-O3 -pipe -fsigned-char"
 CXXFLAGS="-O3 -pipe -fsigned-char"
 
 750 aka as G3 (PowerPC)
 
 CHOST="powerpc-unknown-linux-gnu"
 CFLAGS="-mcpu=750 -O3 -pipe -fsigned-char -mpowerpc-gfxopt"
 CXXFLAGS="-mcpu=750 -O3 -pipe -fsigned-char -mpowerpc-gfxopt"
 
 7400, aka G4 (PowerPC)
 
 CHOST="powerpc-unknown-linux-gnu"
 CFLAGS="-mcpu=7400 -O2 -pipe -fsigned-char -maltivec
 -mabi=altivec -mpowerpc-gfxopt"
 CXXFLAGS="-mcpu=7400 -O2 -pipe -fsigned-char -maltivec
 -mabi=altivec -mpowerpc-gfxopt"
 -fsigned-char -maltivec -mabi=altivec -mpowerpc-gfxopt"
 
 7450, aka G4 second generation (PowerPC)
 
 CHOST="powerpc-unknown-linux-gnu"
 CFLAGS="-mcpu=7450 -O2 -pipe -fsigned-char
 -maltivec -mabi=altivec -mpowerpc-gfxopt"
 CXXFLAGS="-mcpu=7450 -O2 -pipe -fsigned-char
 -maltivec -mabi=altivec -mpowerpc-gfxopt"
 
 
 PowerPC (If you don't know which one)
 
 CHOST="powerpc-unknown-linux-gnu"
 CFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
 CXXFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
 
 Sparc
 
 CHOST="sparc-unknown-linux-gnu"
 CFLAGS="-O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-O3 -pipe -fomit-frame-pointer"
 
 Sparc 64
 
 CHOST="sparc64-unknown-linux-gnu"
 CFLAGS="-O3 -pipe -fomit-frame-pointer"
 CXXFLAGS="-O3 -pipe -fomit-frame-pointer"
 
 
 好了,这样做后你编译出的程序运行效率将比以前高很多!只要你有时间,你可以把你的系统如redhat linux 9.0的源代码(后缀.src.rpm)全部重新编译一次,你会发现你的Redhat Linux系统将比原来快一大截!
 ############################################################
 
 以上我在RedHat Linux 9.0及Mandrake Linux 9.1上通过并证明有效。

 sky-walker 回复于:2003-09-04 00:30:48
wounderful  !

   excellent   !!

    perfect     !!!

hehe,偶说的是上面那位漂亮妹妹 :) 

文章也是 :D

 nmgzw 回复于:2003-09-04 08:14:56
美中不足的是,可惜没有intel xeon cpu的优化选项! :cry:

 wolfop 回复于:2003-09-04 09:49:58
gcc对xeon 也就按照P4优化可以了,非常在乎性能,可以用intel C编译器编译。

 cgweb 回复于:2003-09-04 10:06:42
这样编译的kernel呢?性能如何?

 redlqs 回复于:2004-04-13 21:38:14
AMD Duron(tm) processor    怎么没有??

 boy_zc 回复于:2005-08-06 13:28:15
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 4
model name      : AMD Athlon(tm) 64 Processor 2800+
stepping        : 8
cpu MHz         : 1808.754
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmovpat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
bogomips        : 3579.90


64位的amd讷?

 haoyufu 回复于:2005-08-06 14:10:10
呵呵对内核编译好象不全呀

不过楼主写的不错

 egret 回复于:2005-08-06 15:54:33
如果全盘编译的话还不如用Gentoo算了。http://gentoo.linuxsir.org/doc/cn/

原文转自:http://www.ltesting.net