在编译nginx 时,顺便查了下编译优化的参数,留个笔记。这里说的都是gcc
./configure
1
|
--
with
-cc-opt=
"%{optflags} $(pcre-config --cflags)"
|
下面是make优化:
1
|
make %{?_smp_mflags}
|
通常优化
1
|
make %{?_smp_mflags} CFLAGS=
"-O3 -g -mtune=generic -m64"
|
i386/x86_64通用CPU,gcc 最高级别优化,64位专用
1
|
make %{?_smp_mflags} CFLAGS=
"-O3 -g -mtune=native -m64"
|
探测本地CPU,gcc最高级别优化,本地64位专用,不可移植。
1
|
make %{?_smp_mflags} CFLAGS=
"$RPM_OPT_FLAGS -fno-strict-aliasing"
|
红帽参数,$RPM_OPT_FLAGS通常是-02 -g
发行商为了二进制文件的可移植性,以及在不同机器上的兼容性,-mtune=native -m64 这样的参数肯定是没加的,事实上这些参数可以略微提高二进制文件的执行性能。
如果是通过srpm编译来获得软件包,完全可以定制编译。
注:对于C++,请把 CFLAGS 替换为 CXXFLAGS 。
另外,打包时,安装软件包redhat-rpm-config 很有必要。它预设了一些环境,会自动根据你的环境进行优化,详见 /usr/lib/rpm/rpmrc和 /usr/lib/rpm/redhat/rpmrc
本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1382076,如需转载请自行联系原作者