[SAMPLE_CONSENSUS] Optimize Ellipse3D build performance with extern templates and logic relocation#6439
Conversation
Signed-off-by: Ismail <ismailalri@gmail.com>
|
Thank you for the pull request, but I do not see any improvement in build times when I do the measurements: It seems like you are basing your metrics on only two runs of the clang build analyzer? One for the baseline, once for the changed version? That is not very robust. The differences in build time could easily be due to randomness. In fact, many files have faster build times in opt.txt than in baseline.txt, which cannot be explained by your changes to sac_model_ellipse3d.h and sac_model_ellipse3d.cpp. Perhaps you computer had other background processes running while building the baseline, and was slower du to that. |
|
It's actually strange that you don't see improvement or maybe beacue i'm on an arm64 architecture? As to respond to your question, I did do a couple of runs of clang build analyzer, but didn't stress test it (is the clang build analyzer susceptible to noise ?) Do you have a more accurate way to test it if we are not sure of the results? |
I can't rule that out, but I also can't think of a reason why that would make a big difference.
I did notice some peculiarities in the clang build analyzer output in the past, which makes me not trust it completely when it comes to absolute timings (for analyzing what classes/functions take longest to build it is still useful of course). I measured the absolute compile time with the
I am confused, in your original impact analysis, "Codegen" showed the biggest improvement, but now "Parsing" shows the biggest improvement while "Codegen" only changes rather little? |
This PR is a continuation of #6430 and a more detailed investigation of @larshg's commit, which relocates internal large math logic from the header to the source file and implements
extern templatedeclarations forSampleConsensusModelEllipse3D.Impact
ClangBuildAnalyzer reports :
baseline.txt -> opt.txt