Linux系统中使用GCC CPU参数优化代码编译

豆豆网   技术应用频道   2007年09月07日  【字号: 收藏本文

内容摘要:Linux系统使用特定的GCC参数可以使编译出的程序执行效率有较大提升。

  使用特定的GCC参数可以使编译出的程序执行效率有较大提升。具体如下:

  1、优化原理:

  在编译程序时,借助参数传递的方法,使用与系统CPU相匹配的gcc参数,编译出的程序就是为系统CPU而进行特定优化过的,因而执行速度和效率都会是最好。

  2、注意事项

  (1) 经过大量测试发现,在RedHat, CentOS系统中通常只能通过参数传递的方法进行编译优化,当然,如果愿意并且能够修改程序的MakeFile也可以达到这一效果,只不过比较复杂,工作量较大。其他在网上广为流传的方法(例如:直接通过.bashrc, /etc/profile声明参数系统变量、写入/etc/make.conf等)经过测试均没有效果。

  (2) 对于Gentoo Linux或FreeBSD可以通过修改/etc/make.conf添加参数的方法来实现,而不必使用参数传递法。

  3、优化步骤:

  ?)确定系统CPU类型:

  # cat /proc/cpuinfo | grep "model name"

  执行后会看到系统中CPU的具体型号,记下CPU型号。

  ?)使用参数传递方法进行编译:(以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"

责编:豆豆技术应用

正在加载评论...