Skip to content

Fixed issue 1277 : Regression in computation speed when using Ephemeris

Vincent CUCCHIETTI requested to merge vcucchie/orekit:issue-1277 into patch-12.0.1

Hey everyone,

Opening this mr to fix the regression in performance when using Ephemeris.

With this fix, i managed to heavily reduce the computation time but it is still not as efficient as in the 11.3.3. For example, in the test provided in this thread, we had the following computation times :

  • In 11.3.3 : 800 ms
  • In 12.0 (without fix) : 66549 ms
  • In 12.0 (with fix) : 2000 ms

We could earn around 500 ms by removing the check that is done on each interpolation to verify that all the states are consistently defined (only orbits OR absolute pv coordinates). Another way to reduce this time would be to deactivate the chronological sort in the ImmutableTimeStampedCache when we know that the sample is already sorted chronologically.

Also, this computation time does not scale linearly with the number of states in the sample. For example, when i doubled the amount of states in the previous test, it took 2500 ms with the fix so only 500 ms more than with half the sample.

I believe that this is reasonable considering that every interpolation is perfectly threadsafe.

closes #1277 (closed).

Cheers, Vincent

Merge request reports