Optimization of the load induced by the CI/CD pipeline
The Maven continuous-integration profile applied in the CI/CD pipeline attempts to parallelize test execution as much as possible by instantiating one JVM per CPU thread:
<forkCount>1C</forkCount>
As Orekit performs intensive mathematical calculations, this results in unnecessary load and sub-optimal performance on most modern processors, designed on multi-threaded architectures. This is because all threads on the same core share the same floating-point computing units. If all threads try to use these units at the same time, a race condition arises, which degrades performance.
It's best to bet on the processor having two threads per core (the most common design) and to limit the number of forks to the number of cores (not the number of threads):
<forkCount>0.5C</forkCount>
I ran tests with this configuration on two processors (Intel Core i5-8259U 4c/8t and Intel Core i7-7700HQ 4c/8t). Processor load is logically divided by 2, the pipeline consumes less RAM and execution time is improved by 5 to 9%.