As part of my ongoing analysis of emboss performance (see #118, #119 #122) I took a look at profiling just the C++ backend. The same methodology applies.
Analysis
We can see that 75% of the time is spent deserializing IR data. #122 should cover fixing this when running embossc, but it will still be an issue if the backend is run standalone. #118 will help in that case.
24% of the time is spent generating headers
Drilling in a little more we can see that 13% of time is spent formatting the code templates:
Proposal
Ignore the deserialization overhead for now, other issues should cover that
Replace our bespoke template formatting with string.Template. A proof-of-concept shows that reduces overhead by 11%.
As part of my ongoing analysis of emboss performance (see #118, #119 #122) I took a look at profiling just the C++ backend. The same methodology applies.
Analysis
embossc
, but it will still be an issue if the backend is run standalone. #118 will help in that case.Drilling in a little more we can see that 13% of time is spent formatting the code templates:
Proposal
string.Template
. A proof-of-concept shows that reduces overhead by 11%.