[msm][eUML2][metaparse] Compile time
Michael Caisse wrote:
Boost.Msm v3 also implements a new compile-time strings based front-end called eUML2 to demonstrate the power of the library and the conciseness and expressiveness it allows. Please have a look at the documentation:
https://htmlpreview.github.io/?https://raw.githubusercontent.com/boostorg/ms...
Christophe, this is wonderful work and a great example of the usefulness of Metaparse. Can you comment on the compile time compared to eUML?
Hi Michael, sorry, I had completely forgotten this post and saw it while preparing the review results (which will be done soon). Please allow me to answer this question, with my apologies. I added in the msm3 branch a CompareFrontEnds.cpp example. It is a simple fsm with 12 transitions. I tried with gcc-4.9 and clang-3.5, using -O2 on a i7-5960X processor, suse linux 13.2. Here are the results. eUML clang 4s g++ 5s eUML2 clang 9s g++ 14s Clang is clearly much faster than g++, with about 0.5s added compile-time per transition. With g++ it does not look so good. I already noticed that compile times of most production code at work with g++ is much higher than with clang. Regards, Christophe
On 7/5/2015 3:15 PM, Christophe Henry wrote:
Michael Caisse wrote:
Boost.Msm v3 also implements a new compile-time strings based front-end called eUML2 to demonstrate the power of the library and the conciseness and expressiveness it allows. Please have a look at the documentation:
https://htmlpreview.github.io/?https://raw.githubusercontent.com/boostorg/ms...
Christophe, this is wonderful work and a great example of the usefulness of Metaparse. Can you comment on the compile time compared to eUML?
Hi Michael,
sorry, I had completely forgotten this post and saw it while preparing the review results (which will be done soon).
Please allow me to answer this question, with my apologies.
I added in the msm3 branch a CompareFrontEnds.cpp example. It is a simple fsm with 12 transitions.
I tried with gcc-4.9 and clang-3.5, using -O2 on a i7-5960X processor, suse linux 13.2. Here are the results.
eUML
clang 4s
g++ 5s
eUML2
clang 9s
g++ 14s
Clang is clearly much faster than g++, with about 0.5s added compile-time per transition.
With g++ it does not look so good. I already noticed that compile times of most production code at work with g++ is much higher than with clang.
2x slower on clang and 3x slower on gcc is pretty significant I think.
participants (2)
-
Christophe Henry
-
Michael Marcin