On 25/07/14 15:30, Alan Conway wrote:
On Thu, 2014-07-24 at 17:31 +0100, Fraser Adams wrote:
On 24/07/14 13:59, Alan Conway wrote:
Very important point I forgot to mention: are you doing a release
build?

cmake -DCMAKE_BUILD_TYPE=Release

That makes a big difference. It enables optimization flags for the C++
compiler. The default is not optimized.

Alan,
I've mentioned this before, but I remain unconvinced that the default           
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                
should be for an unoptimised build. I totally realise that seems to be
"the CMake way", but it always used to be the case under automake that
the default was something reasonably optimised.

If it turns out that your suggestion is indeed the cause of the
discrepancy I think that would back up the view that *at the very least*
the documentation for doing the build should mention this and if there
is still a general view to default to the unoptimised I actually think
that the CMake for qpid and proton should display a warning to remind
users that they are using an unoptimised build.
I agree (not sure why I didn't before, probably not paying attention.)
The default actually isn't any of the advertised build types (Debug,
Release etc.) it's a "just ignore opt/debug flags" build which is not
especially useful for anything. I never use it.

So I vote for making the default build type Release. Someone who finds
performance sucks is more likely to leave without asking questions than
someone who has trouble with their debugger (and since the default
doesn't set -g anyway that doesn't appear to be a problem.)

Any counter opinions? (as always, I assume silence is consent :)

Cheers,
Alan.


Thanks for this discussion Alan!

My vote would be to default to the most optimised/operational-quality build possible. My reasoning being that I suspect that *most* people (if not all) coming in fresh would have a not unreasonable expectation that qpid would "just work" and moreover would "just work" at its best. Your "leave without asking questions" point is something that as a community I believe that we must have high on our list of things to avoid!

If the RelWithDebInfo is exactly as fast then that's probably OK, but if I'm honest I believe that the default should really be to build something that a user might want to ship in an operational mission-critical system and I'm not personally keen on the idea of shipping with debug symbols or anything else that could potentially increase an attack vector.

I'm more than happy that we supply documentation that tells users how to enable debugging etc. but all of that is really developer focussed IMHO and I think that the default should be first and foremost user focussed.

Frase






---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to