Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Benchmark for DiscreteTrajectory #3206

Merged
merged 3 commits into from
Nov 20, 2021
Merged

Conversation

pleroy
Copy link
Member

@pleroy pleroy commented Nov 20, 2021

It turns out that this file was never added to our project (see #2776), so I didn't convert it.

Note that it's sometimes a bit hard to decide how to do the conversion: the old benchmark was doing fancy things with forks that may or may not have an equivalent with segments.

The numbers are not so nice, apparently because operator++ and operator-- on DiscreteTrajectoryIterator are costly.

Before:

----------------------------------------------------------------------------------------------------
Benchmark                                                          Time             CPU   Iterations
----------------------------------------------------------------------------------------------------
BM_DiscreteTrajectoryFront                                      9.06 ns         8.97 ns     74785845
BM_DiscreteTrajectoryBack                                       13.4 ns         13.5 ns     49857230
BM_DiscreteTrajectoryBegin                                      40.0 ns         40.0 ns     17948603
BM_DiscreteTrajectoryEnd                                        21.2 ns         20.9 ns     32051077
BM_DiscreteTrajectoryTMin                                       12.8 ns         12.8 ns     56089384
BM_DiscreteTrajectoryTMax                                       17.4 ns         17.2 ns     40792279
BM_DiscreteTrajectoryCreateDestroy/8                             755 ns          765 ns       897430
BM_DiscreteTrajectoryCreateDestroy/64                           6041 ns         5980 ns       112179
BM_DiscreteTrajectoryCreateDestroy/512                         52671 ns        53040 ns        10000
BM_DiscreteTrajectoryCreateDestroy/1024                       107548 ns       107083 ns         6410
BM_DiscreteTrajectoryIterate/8                                   158 ns          156 ns      4487151
BM_DiscreteTrajectoryIterate/64                                 1389 ns         1283 ns       498572
BM_DiscreteTrajectoryIterate/512                               11160 ns        10951 ns        64102
BM_DiscreteTrajectoryIterate/1024                              22941 ns        21903 ns        29914
BM_DiscreteTrajectoryReverseIterate/8                            136 ns          131 ns      5608938
BM_DiscreteTrajectoryReverseIterate/64                          1033 ns         1046 ns       641022
BM_DiscreteTrajectoryReverseIterate/512                         8445 ns         8344 ns        74786
BM_DiscreteTrajectoryReverseIterate/1024                       16967 ns        17209 ns        40792
BM_DiscreteTrajectoryFind/8                                      167 ns          167 ns      4487151
BM_DiscreteTrajectoryFind/64                                     147 ns          146 ns      4487151
BM_DiscreteTrajectoryFind/512                                    153 ns          153 ns      4487151
BM_DiscreteTrajectoryFind/1024                                   154 ns          153 ns      4487151
BM_DiscreteTrajectoryLowerBound/8                                227 ns          224 ns      2991434
BM_DiscreteTrajectoryLowerBound/64                               196 ns          199 ns      3451654
BM_DiscreteTrajectoryLowerBound/512                              221 ns          224 ns      3205108
BM_DiscreteTrajectoryLowerBound/1024                             192 ns          190 ns      3451654
BM_DiscreteTrajectoryEvaluateDegreesOfFreedomExact              44.2 ns         43.4 ns     15472934
BM_DiscreteTrajectoryEvaluateDegreesOfFreedomInterpolated        137 ns          138 ns      4985723

After:

----------------------------------------------------------------------------------------------------
Benchmark                                                          Time             CPU   Iterations
----------------------------------------------------------------------------------------------------
BM_DiscreteTrajectoryFront                                      13.9 ns         13.8 ns     49857230
BM_DiscreteTrajectoryBack                                       73.1 ns         73.7 ns     11217877
BM_DiscreteTrajectoryBegin                                      11.6 ns         11.7 ns     64102153
BM_DiscreteTrajectoryEnd                                        33.4 ns         32.9 ns     20396140
BM_DiscreteTrajectoryTMin                                       2.89 ns         2.88 ns    249286151
BM_DiscreteTrajectoryTMax                                       13.9 ns         13.8 ns     49857230
BM_DiscreteTrajectoryCreateDestroy/8                            1947 ns         1961 ns       373929
BM_DiscreteTrajectoryCreateDestroy/64                           8555 ns         8518 ns        89743
BM_DiscreteTrajectoryCreateDestroy/512                         62091 ns        61188 ns        11218
BM_DiscreteTrajectoryCreateDestroy/1024                       123657 ns       122376 ns         5609
BM_DiscreteTrajectoryIterate/8                                   219 ns          221 ns      3451654
BM_DiscreteTrajectoryIterate/64                                 1487 ns         1502 ns       498572
BM_DiscreteTrajectoryIterate/512                               11029 ns        10951 ns        64102
BM_DiscreteTrajectoryIterate/1024                              21925 ns        21903 ns        32051
BM_DiscreteTrajectoryReverseIterate/8                            175 ns          177 ns      4487151
BM_DiscreteTrajectoryReverseIterate/64                          1031 ns         1022 ns       641022
BM_DiscreteTrajectoryReverseIterate/512                         8117 ns         8170 ns        89743
BM_DiscreteTrajectoryReverseIterate/1024                       16110 ns        16062 ns        40792
BM_DiscreteTrajectoryFind/8                                      597 ns          598 ns      1121788
BM_DiscreteTrajectoryFind/64                                     692 ns          695 ns      1121788
BM_DiscreteTrajectoryFind/512                                    771 ns          765 ns       897430
BM_DiscreteTrajectoryFind/1024                                   770 ns          765 ns       897430
BM_DiscreteTrajectoryLowerBound/8                                382 ns          384 ns      1869646
BM_DiscreteTrajectoryLowerBound/64                               452 ns          454 ns      1547293
BM_DiscreteTrajectoryLowerBound/512                              524 ns          501 ns      1121788
BM_DiscreteTrajectoryLowerBound/1024                             527 ns          530 ns      1000000
BM_DiscreteTrajectoryEvaluateDegreesOfFreedomExact              73.9 ns         73.0 ns      8974301
BM_DiscreteTrajectoryEvaluateDegreesOfFreedomInterpolated        112 ns          112 ns      6410215

@eggrobin eggrobin added the LGTM label Nov 20, 2021
@pleroy pleroy merged commit 3e7ad79 into mockingbirdnest:Ondelette Nov 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants