Boost logo

Boost :

Subject: Re: [boost] [proto][phoenix][msm] proto limits increased to 10, phoenix broken on trunk (was: [phoenix] not playing nice with other libs)
From: Thomas Heller (thom.heller_at_[hidden])
Date: 2011-05-08 15:37:01


On Sunday, May 08, 2011 07:36:32 PM Hartmut Kaiser wrote:
>
> > My pre-preprocessing work continues, and all EDSLs that use Proto will
> > benefit from faster compiles. I'd like to thank Hartmut for his work on
> > Wave and Thomas for getting me set up.
>
> First results:
>
> Spirit/Phoenix V2, MSVC, speedup ~8% (no opt), ~6% (opt)
> Spirit/Phoenix V3, MSVC, speedup ~5% (no opt), ~4% (opt), includes full
preprocessed headers for Phoenix

Just to give you an idea of the impact of the recent events:

g++ -I. libs/phoenix/test/core/primitives_tests.cpp -c

real 0m1.525s
user 0m1.370s
sys 0m0.137s
----------------------------------------------------------------------------
g++ -I. libs/phoenix/test/core/primitives_tests.cpp -c -
DBOOST_PROTO_DONT_USE_PREPROCESSED_FILES -
DBOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES

real 0m2.626s
user 0m2.463s
sys 0m0.157s
----------------------------------------------------------------------------
g++ -I. libs/phoenix/test/core/primitives_tests.cpp -c -
DBOOST_PROTO_DONT_USE_PREPROCESSED_FILES

real 0m2.414s
user 0m2.283s
sys 0m0.123s
----------------------------------------------------------------------------
g++ -I. libs/phoenix/test/core/primitives_tests.cpp -c -
DBOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES

real 0m1.729s
user 0m1.607s
sys 0m0.117s
----------------------------------------------------------------------------
g++ -I. libs/spirit/phoenix/test/core/primitives_tests.cpp -c

real 0m2.291s
user 0m2.123s
sys 0m0.160s

This means that phoenix V3 is up to 50% faster than V2!
This is all depending on the usecase of course. Other testcase show that V3 is
either as fast to compile or a little faster!
 
> Thanks!
I double that! Thanks!
Thomas


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk