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

Optimize some operations of DiscreteTrajectory and friends #3207

Merged
merged 2 commits into from
Nov 20, 2021

Conversation

pleroy
Copy link
Member

@pleroy pleroy commented Nov 20, 2021

Also fix a 1337 identifier that I had missed.

Benchmark results (the alert reader may also want to compare with the "before" section in #3206). Note how iteration got faster:

Before:

----------------------------------------------------------------------------------------------------
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

After:

----------------------------------------------------------------------------------------------------
Benchmark                                                          Time             CPU   Iterations
----------------------------------------------------------------------------------------------------
BM_DiscreteTrajectoryFront                                      2.03 ns         2.03 ns    345165440
BM_DiscreteTrajectoryBack                                       10.3 ns         10.4 ns     74785845
BM_DiscreteTrajectoryBegin                                      12.8 ns         12.8 ns     56089384
BM_DiscreteTrajectoryEnd                                        32.8 ns         32.1 ns     21367384
BM_DiscreteTrajectoryTMin                                       2.91 ns         2.91 ns    236165828
BM_DiscreteTrajectoryTMax                                       13.9 ns         13.8 ns     49857230
BM_DiscreteTrajectoryCreateDestroy/8                            1948 ns         1961 ns       373929
BM_DiscreteTrajectoryCreateDestroy/64                           8334 ns         8344 ns        89743
BM_DiscreteTrajectoryCreateDestroy/512                         61622 ns        62578 ns        11218
BM_DiscreteTrajectoryCreateDestroy/1024                       124193 ns       121686 ns         6410
BM_DiscreteTrajectoryIterate/8                                  69.1 ns         69.5 ns     11217877
BM_DiscreteTrajectoryIterate/64                                  301 ns          292 ns      2243575
BM_DiscreteTrajectoryIterate/512                                2401 ns         2399 ns       299143
BM_DiscreteTrajectoryIterate/1024                               4763 ns         4739 ns       154729
BM_DiscreteTrajectoryReverseIterate/8                           77.4 ns         76.5 ns      8974301
BM_DiscreteTrajectoryReverseIterate/64                           370 ns          367 ns      1869646
BM_DiscreteTrajectoryReverseIterate/512                         3059 ns         3059 ns       224358
BM_DiscreteTrajectoryReverseIterate/1024                        6083 ns         6119 ns       112179
BM_DiscreteTrajectoryFind/8                                      537 ns          546 ns      1000000
BM_DiscreteTrajectoryFind/64                                     606 ns          612 ns      1121788
BM_DiscreteTrajectoryFind/512                                    692 ns          695 ns       897430
BM_DiscreteTrajectoryFind/1024                                   693 ns          695 ns       897430
BM_DiscreteTrajectoryLowerBound/8                                360 ns          352 ns      1950935
BM_DiscreteTrajectoryLowerBound/64                               415 ns          413 ns      1661908
BM_DiscreteTrajectoryLowerBound/512                              496 ns          490 ns      1402235
BM_DiscreteTrajectoryLowerBound/1024                             499 ns          501 ns      1402235
BM_DiscreteTrajectoryEvaluateDegreesOfFreedomExact              76.4 ns         76.5 ns      8974301
BM_DiscreteTrajectoryEvaluateDegreesOfFreedomInterpolated        115 ns          114 ns      5608938

Unverified

This user has not yet uploaded their public signing key.
@eggrobin eggrobin added the LGTM label Nov 20, 2021
@pleroy pleroy merged commit f8e0d45 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