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:
>>
>> https://htmlpreview.github.io/?https://raw.githubusercontent.com/boostorg/msm/msm3/doc/HTML/ch03s05.html
>>
>>
>
>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


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