Compiling Nginx with GCC Optimization Flags

Igor Sysoev is at
Tue Dec 2 12:21:59 MSK 2008

On Mon, Dec 01, 2008 at 08:49:29PM +0000, Joe Aston wrote:

> Has anyone done any testing on the optimum GCC compiler flags for compiling
> Nginx?
> I usually use "-O3 -march=core2 -msse -mmmx -msse2 -msse3 -mfpmath=sse
> -fomit-frame-pointer", but would it be worthwhile using "-funroll-loops" or
> other options? Would "-O2" be better?

As it was said there is no noticeable difference between -O and -O2
for nginx. I believe -funroll-loops is useless for nginx: nginx has no
long loops to unroll. For the same reason mmx/sse is useless too:
I saw that Intel C compiler uses them in some loops, but all of them
are short and run once on re/configuration phase only.

-fomit-frame-pointer is single usefull option, but I do not use it usually
as it makes almost impossible to investigate core dumps.

> Has anyone compiled Nginx with the Intel C/C++ Compiler? If so, what
> settings did you use?

nginx has support for Intel C/C++ Compiler.
It runs with "-O -Ob2 -ip" options.

Igor Sysoev

More information about the nginx mailing list