欢迎来到天天文库
浏览记录
ID:7865971
大小:32.89 KB
页数:19页
时间:2018-03-01
《linux通用系统优化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Linux通用系统优化Linux通用系统优化针对系统的优化工作需要根据不同的系统采用不同的办法。本文旨在描述通用的优化linux的一些办法。 一、编译选项 “etc/profile”文件含有系统大量的环境和启动程序的配置信息。你在该文件中进行的配置,可以通过申请全局环境变量来实现。因此,在该文件中设置优化标志,是一种明智的选择。要想使x86程序获得最佳性能,可以在编译时,使用最佳的优化选项-O9。许多程序的“Makefile”文件中已经含有-O2选项,而-O9使编译器采用最高级别的优化。尽管它将增加最终程序的大小,但这样可以获得更高的运行速度。编译时,使用“-fomit-fr
2、ame-pointer”选项,程序运行时,访问变量时将使用堆栈。但是,使用这一选项,生产的代码将无法调试。使用“-mcpu=cpu_type”和“-march=cpu_type”选项,Gcc将针对这种型号CPU进行专门的优化,但生成的代码只能在所指定的CPU或更高系列的CPU上运行。当我们采用-O9来编译程序时,或许文件字节数是最大的,但是往往其运行速度也是最快的。根据不同的机器架构,你可以把下面的语句加入/etc/profile。 对于CPUi686或PentiumPro、PentiumII、PentiumIII等: CFLAGS='-O9-funroll-loops-ff
3、ast-math-malign-double-mcpu=pentiumpro-march=pentiumpro-fomit-frame-pointer-fno-exceptions' 对于CPUi586或Pentium: CFLAGS='-O3-march=pentium-mcpu=pentium-ffast-math-funroll-loops-fomit-frame-pointer-fforce-mem-fforce-addr-malign-double-fno-exceptions' 对于CPUi486: FLAGS='-O3-funroll-all-loops-m
4、align-double-mcpu=i486-march=i486-fomit-frame-pointer-fno-exceptions' 在进行完以上设置之后,紧接者着把“CFLAGSLANGLESSCHARSET”加入到“etc/profile”文件中的“export”行中: exportPATHPS1HOSTNAMEHISTSIZEHISTFILESIZEUSERLOGNAMEMAILINPUTRCCFLAGSLANGLESSCHARSET 然后,重新登录,这时,环境变量CFLAGS已经被赋值,编译器和其它配置工具可以使用它。对Pentium(Pro/II/III)的
5、优化必须使用egcs或pgcc编译器。linux的缺省安装中,已经装上了egcs,所以无需担心。 另外,安装程序时,使用tarball格式总要比RPM格式来得好,因为,tarball需要重新编译,能针对你的机器架构作优化,得到最好的性能。 二、重新编译内核 一般的Linux发行商发布的linux版本,其内核总是会带有一些对你来说不是很实用的东西,例如对HAMRadio的支持,对TokenRing的支持等。可以查看下面的两个网站的资料: linuxKernelHowto:www.linuxdoc.org/HOWTO/Kernel-HOWTO.html linuxKerne
6、l:www.kernel.org 编辑/usr/src/linux/Makefile文件,可以根据具体的cpu优化内核编译。以下的参数设置将得到优化的内核性能。 ①vi+18/usr/src/linux/Makefile,将HOSTCC=gcc改为HOSTCC=egcs. ②vi+25/usr/src/linux/Makefile 将CC=$(CROSS_COMPILE)gccD__KERNEL__-I$(HPATH) 改为CC=$(CROSS_COMPILE)egcsD__KERNEL__-I$(HPATH). ③vi+90/usr/src/linux/Makefi
7、le 将CFLAGS=-Wall-Wstrict-prototypes-O2-fomit-frame-pointer 改为CFLAGS=-Wall-Wstrict-prototypes-O9-funroll-loops-ffast-math-malign-double-mcpu=pentiumpro-march=pentiumpro-fomit-frame-pointer-fno-exceptions ④vi+19/usr/src/linux/Makefile 将HOST
此文档下载收益归作者所有