Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Mar 2001 07:41:40 -0800
From:      "David O'Brien" <obrien@FreeBSD.ORG>
To:        Gordon Tetlow <gordont@bluemtn.net>, Dan Phoenix <dphoenix@bravenet.com>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: optimizing apache with php and nfs mounts
Message-ID:  <20010313074140.B75117@dragon.nuxi.com>
In-Reply-To: <Pine.BSF.4.33.0103122226150.60221-100000@sdmail0.sd.bmarts.com>; from gordont@bluemtn.net on Mon, Mar 12, 2001 at 10:34:32PM -0800
References:  <Pine.BSO.4.21.0103121542460.23058-100000@gandalf.bravenet.com> <Pine.BSF.4.33.0103122226150.60221-100000@sdmail0.sd.bmarts.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 12, 2001 at 10:34:32PM -0800, Gordon Tetlow wrote:
> On Mon, 12 Mar 2001, Dan Phoenix wrote:
> 
> > CC="gcc -O6 -fomit-frame-pointer" OPTIM="-O2 -DBUFFERED_LOGS"
> >
> > could some c guru tell me if this would be bad to use to an apache
> > optimization? I need to compile apache on my own not with ports....
> > looking at makefile
> > in apache13 in ports collection i see these optimization flags.
> > along with --mmap-static module.
> >
> >
> > can you use both -06 and -02 for optmization at the same time?
> > -fomit-frame-pointer as well?
> 
> -O6 and -O2 do seem a bit contradictory. I'm guessing it just uses -O6.
> -fomit-frame-pointer is not enabled per the -O flags so that does do
> something, but it does make it rather difficult to track down problems
> without a frame pointer.

                 _           _              
 __/\__    ___  (_)   __ _  | |__     __/\__
 \    /   / __| | |  / _` | | '_ \    \    /
 /_  _\   \__ \ | | | (_| | | | | |   /_  _\
   \/     |___/ |_|  \__, | |_| |_|     \/  
                     |___/                  

Where did you even get the idea "-O6" did *_ANYTHING_*??  Don't people
ever read the documentation anymore.  

1.  The highest -O setting GCC accepts is "-O3".
2.  The base, system C compiler is known to produce bad code with -O2.
    We have been proclaiming this since as long as I have been with the
    Project.

> I probably qualify for the latter.... Optimizations are good and all, but
> I look at it this way: It's a mission critical webserver, I don't want it
> crashing. As a result, we compile ours with nothing higher that -O2 and no
> unusual optimizations. Sure, it might be a bit slower than it could have
> been,

Do people ever actually test this?  Or is there just the assumption that
the more "optimizations" on the `cc' command line is a Great Thing(tm)?
People do realize that for some code, -O2 is much worse than -O?  Also
for much code there is no difference in performance.  Rather than do what
you "think" will give the best results, why not actually benchmark it?

> but we don't have to worry about chasing down compiler bugs that
> interact strangly with the webserver code. Also, I think anything higher
> than -O2 actually produces a larger binary (it inlines functions whenever
> possible).

1.  You need to use -O if you don't want to chase bugs
2.  It is -O2 and above (ie, _includes_ -O2) that produces a larger
    binary.  See -Os if you want smaller.

-- 
-- David  (obrien@FreeBSD.org)
          GNU is Not Unix / Linux Is Not UniX

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010313074140.B75117>