Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #3548 +/- ##
==========================================
- Coverage 62.17% 62.14% -0.03%
==========================================
Files 385 385
Lines 34138 34139 +1
==========================================
- Hits 21222 21211 -11
- Misses 12916 12928 +12 ☔ View full report in Codecov by Sentry. |
New benchmarks show that this is faster surprisingly (needs more operations, but can be vectorized better?) benchmark | old | new ----------------------------------------|----------|---------- RobotStateBenchmark/update/10 | 0.007 ms | 0.006 ms RobotStateBenchmark/update/100 | 0.068 ms | 0.066 ms RobotStateBenchmark/update/1000 | 0.710 ms | 0.668 ms RobotStateBenchmark/update/10000 | 10.4 ms | 9.28 ms
135c779 to
e47547a
Compare
marioprats
left a comment
There was a problem hiding this comment.
Good to know!
We should apply this to the ros2 branch as well!
|
Currently I cannot reproduce these improvements consistently on my i5 laptop. If they are there, they drown in noise. and see these analysis results on two different comparison runs (leaving out tests with pvalue > 0.05): Any comment on what I might do to get your results @rhaschke ? I very much like the google benchmark transition, but I don't think littering the code base with |
Note that I essentially replaced |
Obviously you couldn't find the hashes. I tried to be complete but forgot I rebased your branch locally... 🤦 |
|
Ok. I did the very same as you did: i) running the benchmarks on both commits and saving the results as .json, ii) comparing the results. On my i7 I get significant improvements throughout: Maybe, this is a i5 vs. i7 optimization thing? On your i5, the differences are not significant most of the time. |
|
I have to correct myself: Initially I have build with RelWithDebugInfo. Repeating everything with a Release build I get completely different numbers (1-2% slowdown): I have no idea where this strong difference comes from. Obviously, optimization is strongly different in both cases. |
|
Given the last result, I will close this PR. |
Inspired by the results of moveit/moveit2#2628, I changed matrix multiplication in RobotState updates from affine*matrix to matrix*matrix.
New benchmarks show that this is faster surprisingly (needs more operations, but can be vectorized better?)