使用特定的GCC参数可以使编译出的程序执行效率有较大提升。具体如下:
1、优化原理:
在编译程序时,借助参数传递的方法,使用与系统CPU相匹配的gcc参数,编译出的程序就是为系统CPU而进行特定优化过的,因而执行速度和效率都会是最好。
2、注意事项
(1) 经过大量测试发现,在RedHat, CentOS系统中通常只能通过参数传递的方法进行编译优化,当然,如果愿意并且能够修改程序的MakeFile也可以达到这一效果,只不过比较复杂,工作量较大。其他在网上广为流传的方法(例如:直接通过.bashrc, /etc/profile声明参数系统变量、写入/etc/make.conf等)经过测试均没有效果。
(2) 对于Gentoo Linux或FreeBSD可以通过修改/etc/make.conf添加参数的方法来实现,而不必使用参数传递法。
3、优化步骤:
(1)确定系统CPU类型:
# cat /proc/cpuinfo | grep "model name"
执行后会看到系统中CPU的具体型号,记下CPU型号。
(2)使用参数传递方法进行编译:(以Pentium4 CPU为例)
此处以编译Apache为例说明如何使用参数传递:
# tar xzvf httpd-2.0.55.tar.gz
# cd httpd-2.0.55
CHOST="i686-pc-linux-gnu" \
CFLAGS="-O3 \
-msse2 \
-mmmx \
-mfpmath=sse \
-mcpu=pentium4 \
-march=pentium4 \
-pipe \
-fomit-frame-pointer" \
CXXFLAGS="-O3 \
-msse2 \
-mmmx \
-mfpmath=sse \
-funroll-loops \
-mcpu=pentium4 \
-march=pentium4 \
-pipe \
-fomit-frame-pointer" \
./configure ……
# make
# make install
相关文章
对Windows操作系统如何实现DDOS攻击
Linux系统的引导过程详细解析
Linux操作系统上不同文件系统的兼容问题
UbuntuLinux操作系统下Apt-get命令参数
Linux系统中使用GCCCPU参数优化代码编译
Linux操作系统下进行硬盘扩容
Linux操作系统的内核初始化过程详细解析
基于2.6.19内核小型Linux系统制作与移植
Linux中的全能媒体播放软件XINE
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛