Forum: NGINX Optimization flags

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
6398031dc321aa3c975436e11d752f6b?d=identicon&s=25 Lantos István (Guest)
on 2016-07-08 14:44
(Received via mailing list)
The default --with-cc-opt flags for Nginx are these:

*--with-cc-opt='-g -O2 -fstack-protector-strong -Wformat
> -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2'*
>

However I added more optimizations, which are against the standard:

*--with-cc-opt='-g -Ofast -march=native -ffast-math
> -fstack-protector-strong -Wformat -Werror=format-security
> -Wp,-D_FORTIFY_SOURCE=2'*
>

So far I don't experience any bug, but I do have a higher benchmark:
380-450 req/s compared to the original 290-310 req/s with cached
Node/Express app on my laptop.

Is it safe to use -O3 or -Ofast flags with Nginx?

Is it possible to build Nginx with clang? If so, should I symlink it to
gcc
(I use Docker, this way gcc executable is trashed) or is there a way to
define the compiler with a flag?
6398031dc321aa3c975436e11d752f6b?d=identicon&s=25 Lantos István (Guest)
on 2016-07-08 15:19
(Received via mailing list)
Seems like --with-cc=clang flag is where I can define clang compiler. Is
it
safe to use with --with-cc-opt='-std=c11 ...? I think clang uses C11
anyway.

2016-07-08 14:44 GMT+02:00 Lantos István <kerozin.joe@gmail.com>:
40b4c848b8fcd63b0cb60b9d170c3a77?d=identicon&s=25 Valentin V. Bartenev (Guest)
on 2016-07-08 15:21
(Received via mailing list)
On Friday 08 July 2016 14:44:00 Lantos Istvn wrote:
> > -Wp,-D_FORTIFY_SOURCE=2'*
> >
>
> So far I don't experience any bug, but I do have a higher benchmark:
> 380-450 req/s compared to the original 290-310 req/s with cached
> Node/Express app on my laptop.
>
> Is it safe to use -O3 or -Ofast flags with Nginx?

Usually it is safe.  You can run tests: http://hg.nginx.org/nginx-tests/

>
> Is it possible to build Nginx with clang? If so, should I symlink it to gcc
> (I use Docker, this way gcc executable is trashed) or is there a way to
> define the compiler with a flag?

  --with-cc=

  wbr, Valentin V. Bartenev
6398031dc321aa3c975436e11d752f6b?d=identicon&s=25 Lantos István (Guest)
on 2016-07-08 15:22
(Received via mailing list)
Thank You!

2016-07-08 15:20 GMT+02:00 Valentin V. Bartenev <vbart@nginx.com>:
6398031dc321aa3c975436e11d752f6b?d=identicon&s=25 Lantos István (Guest)
on 2016-07-08 23:10
(Received via mailing list)
Attachment: clang-vs-gcc.png (50 KB)
I made a non-scientific benchmark on my laptop with my project. Although
jumping from -O2 to -Ofast giving me dramatic speed boost, it's
interesting
to see that going from gcc-4.9 to clang-3.9, there's no difference, just
margin of error. The test is non-scientific, I worked on my PC at midday
on
raw pictures, lots of programs open, but still, those readings almost
identical.

My verdict is there's no reason to introduce clang into my Docker build,
because doesn't make any speed difference. Going from -O2 to -Ofast
makes.
290-310req/s vs 380-450 req/s.

2016-07-08 15:22 GMT+02:00 Lantos István <kerozin.joe@gmail.com>:
This topic is locked and can not be replied to.