Boost logo

Boost :

Subject: [boost] [msm][eUML2][metaparse] Compile time
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2015-07-05 16:15:23

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:
>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.


clang 4s

g++ 5s


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.



Boost list run by bdawes at, gregod at, cpdaniel at, john at