Skip to content

added: slightly reduce precompilation time - #439

Merged
franckgaga merged 2 commits into
mainfrom
precompile_time
Sep 2, 2026
Merged

added: slightly reduce precompilation time#439
franckgaga merged 2 commits into
mainfrom
precompile_time

Conversation

@franckgaga

@franckgaga franckgaga commented Sep 1, 2026

Copy link
Copy Markdown
Member

Precompilation was taking ~ 500 sec, down to ~ 375 sec now.

I tried to remove calls that are redundant, reduced the size of the optimization problems in the workload, and removed construction of types that I consider less important (for exemple: ExtendedKalmanFilter, the default is UnscentedKalmanFilter, which is generally considered a better alternative to ExtendedKalmanFilter). It should not affect TTFX too much in most cases.

From ~ 500 sec to ~ 375 sec. It should not affect TTFX too much in most cases.
@codecov-commenter

codecov-commenter commented Sep 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.17%. Comparing base (45cd108) to head (45ca9ad).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #439   +/-   ##
=======================================
  Coverage   97.17%   97.17%           
=======================================
  Files          27       27           
  Lines        6270     6270           
=======================================
  Hits         6093     6093           
  Misses        177      177           
Flag Coverage Δ
unittests 97.17% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Benchmark Results (Julia v1)

Time benchmarks
main 45ca9ad... main / 45ca9ad...
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/DAQP/SingleShooting 5.88 ± 0.84 ms 5.79 ± 0.85 ms 1.02 ± 0.21
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/MultipleShooting 11.5 ± 0.82 ms 11.6 ± 0.71 ms 0.991 ± 0.092
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/SingleShooting 1.98 ± 0.028 ms 2.02 ± 0.019 ms 0.98 ± 0.017
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/DAQP/SingleShooting 5.72 ± 0.87 ms 5.72 ± 0.83 ms 0.999 ± 0.21
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/MultipleShooting 8.07 ± 1.1 ms 8.06 ± 0.74 ms 1 ± 0.16
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/SingleShooting 2.08 ± 0.022 ms 2.11 ± 0.018 ms 0.987 ± 0.013
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/DAQP/SingleShooting 10.5 ± 1.9 ms 10.3 ± 1.8 ms 1.02 ± 0.25
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/MultipleShooting 0.112 ± 0.032 s 0.113 ± 0.031 s 0.993 ± 0.39
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/SingleShooting 15 ± 2.2 ms 14.8 ± 2 ms 1.02 ± 0.2
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting 0.539 ± 0.0056 s 0.542 ± 0.0021 s 0.995 ± 0.011
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting (Hessian) 1.08 ± 0.023 s 1.09 ± 0.0042 s 0.992 ± 0.022
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 1.64 ± 0.0028 s 1.63 ± 0.0037 s 1.01 ± 0.0029
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 0.906 ± 0.0069 s 0.922 ± 0.0073 s 0.982 ± 0.011
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 0.905 ± 0.011 s 0.928 ± 0.011 s 0.975 ± 0.016
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.374 ± 0.0015 s 0.361 ± 0.0017 s 1.04 ± 0.0063
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.371 ± 0.0034 s 0.363 ± 0.0011 s 1.02 ± 0.01
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 0.525 ± 0.0026 s 0.525 ± 0.0028 s 0.998 ± 0.0073
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 0.541 ± 0.0016 s 0.526 ± 0.0015 s 1.03 ± 0.0041
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.557 ± 0.002 s 0.536 ± 0.0015 s 1.04 ± 0.0047
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.189 ± 0.00089 s 0.185 ± 0.00083 s 1.02 ± 0.0066
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.341 ± 0.0013 s 0.347 ± 0.0028 s 0.985 ± 0.0087
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.297 ± 0.0027 s 0.296 ± 0.00082 s 1.01 ± 0.0094
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0846 ± 0.0011 s 0.0815 ± 0.001 s 1.04 ± 0.019
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.119 ± 0.00038 s 0.12 ± 0.00037 s 0.991 ± 0.0044
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.352 ± 0.0015 s 0.345 ± 0.00074 s 1.02 ± 0.0049
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.323 ± 0.0023 s 0.313 ± 0.00096 s 1.03 ± 0.008
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.373 ± 0.0026 s 0.369 ± 0.0031 s 1.01 ± 0.011
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 0.61 ± 0.0026 s 0.598 ± 0.0015 s 1.02 ± 0.0051
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 1.54 ± 0.018 s 1.53 ± 0.028 s 1.01 ± 0.022
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.537 ± 0.0019 s 0.536 ± 0.0035 s 1 ± 0.0075
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.182 ± 0.00098 s 0.181 ± 0.0016 s 1 ± 0.01
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation 0.345 ± 0.0016 s 0.341 ± 0.0015 s 1.01 ± 0.0063
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (Hessian) 0.267 ± 0.0021 s 0.261 ± 0.00077 s 1.03 ± 0.0085
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.373 ± 0.0043 s 0.363 ± 0.0037 s 1.03 ± 0.016
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.207 ± 0.00043 s 0.209 ± 0.0006 s 0.994 ± 0.0035
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.08 ± 0.00051 s 0.0812 ± 0.00044 s 0.985 ± 0.0082
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.106 ± 0.0006 s 0.103 ± 0.00096 s 1.02 ± 0.011
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 0.0767 ± 0.0045 s 0.0858 ± 0.0079 s 0.895 ± 0.097
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 0.0561 ± 0.0015 s 0.0582 ± 0.0029 s 0.964 ± 0.054
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 0.0712 ± 0.00081 s 0.0789 ± 0.0038 s 0.902 ± 0.045
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/MultipleShooting 0.0623 ± 0.011 s 0.0607 ± 0.012 s 1.03 ± 0.27
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Prediction form 0.0483 ± 0.0054 s 0.0535 ± 0.0053 s 0.902 ± 0.14
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.0942 ± 0.00085 s 0.0945 ± 0.0009 s 0.997 ± 0.013
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian, MultipleShooting) 0.115 ± 0.00071 s 0.115 ± 0.00055 s 1 ± 0.0078
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0931 ± 0.001 s 0.0931 ± 0.00093 s 1 ± 0.015
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian, MultipleShooting) 0.108 ± 0.00073 s 0.109 ± 0.00045 s 0.996 ± 0.0079
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0479 ± 0.00027 s 0.0481 ± 0.00019 s 0.995 ± 0.0069
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.0458 ± 0.00055 s 0.0465 ± 0.00087 s 0.984 ± 0.022
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Uno/Current form (Hessian) 16.6 ± 0.13 ms 16.7 ± 0.25 ms 0.995 ± 0.017
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Uno/Current form (Hessian, MultipleShooting) 22.2 ± 0.08 ms 22.4 ± 0.33 ms 0.994 ± 0.015
UNIT TESTS/PredictiveController/ExplicitMPC/moveinput! 3.86 ± 0.03 μs 4.4 ± 0.03 μs 0.877 ± 0.0091
UNIT TESTS/PredictiveController/LinMPC/getinfo! 0.109 ± 0.0022 ms 0.11 ± 0.0028 ms 0.988 ± 0.032
UNIT TESTS/PredictiveController/LinMPC/moveinput!/MultipleShooting 0.131 ± 0.0087 ms 0.137 ± 0.0089 ms 0.957 ± 0.089
UNIT TESTS/PredictiveController/LinMPC/moveinput!/SingleShooting 16.7 ± 0.34 μs 17.4 ± 0.32 μs 0.96 ± 0.026
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/LinModel 0.167 ± 0.012 ms 0.17 ± 0.0097 ms 0.984 ± 0.09
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/NonLinModel 0.233 ± 0.023 ms 0.279 ± 0.048 ms 0.836 ± 0.17
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/MultipleShooting 1.09 ± 0.21 ms 1.08 ± 0.21 ms 1 ± 0.27
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/SingleShooting 0.474 ± 0.029 ms 0.474 ± 0.028 ms 1 ± 0.085
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShooting 10.5 ± 0.67 ms 10.6 ± 0.5 ms 0.992 ± 0.078
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShootingHessian 10.7 ± 1.3 ms 10.8 ± 1.2 ms 0.991 ± 0.16
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocation 11.3 ± 2.2 ms 11.2 ± 1.9 ms 1.01 ± 0.26
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 10.9 ± 0.59 ms 10.2 ± 0.63 ms 1.06 ± 0.087
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShooting 7.46 ± 0.25 ms 7.42 ± 0.63 ms 1.01 ± 0.092
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShootingHessian 7.55 ± 0.35 ms 7.29 ± 0.16 ms 1.04 ± 0.053
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/TrapezoidalCollocation 7.73 ± 1.3 ms 7.74 ± 1.2 ms 0.999 ± 0.23
UNIT TESTS/SimModel/LinModel/evaloutput 0.16 ± 0.001 μs 0.13 ± 0.001 μs 1.23 ± 0.012
UNIT TESTS/SimModel/LinModel/updatestate! 0.21 ± 0.001 μs 0.18 ± 0.001 μs 1.17 ± 0.0085
UNIT TESTS/SimModel/NonLinModel/evaloutput 0.391 ± 0.001 μs 0.391 ± 0 μs 1 ± 0.0026
UNIT TESTS/SimModel/NonLinModel/linearize! 2 ± 0.021 μs 1.95 ± 0.021 μs 1.03 ± 0.015
UNIT TESTS/SimModel/NonLinModel/updatestate! 0.451 ± 0.019 μs 0.451 ± 0.01 μs 1 ± 0.048
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/LinModel 0.551 ± 0.01 μs 0.551 ± 0.02 μs 1 ± 0.041
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/NonLinModel 1.77 ± 0.011 μs 1.78 ± 0.011 μs 0.995 ± 0.0087
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/LinModel 0.301 ± 0.02 μs 0.31 ± 0.01 μs 0.971 ± 0.072
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/NonLinModel 1.39 ± 0.01 μs 1.38 ± 0.01 μs 1.01 ± 0.01
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/LinModel 4.08 ± 0.041 μs 4.12 ± 0.061 μs 0.991 ± 0.018
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/NonLinModel 8.49 ± 0.071 μs 8.77 ± 0.081 μs 0.968 ± 0.012
UNIT TESTS/StateEstimator/InternalModel/evaloutput/LinModel 0.251 ± 0.01 μs 0.251 ± 0.001 μs 1 ± 0.04
UNIT TESTS/StateEstimator/InternalModel/evaloutput/NonLinModel 0.581 ± 0.01 μs 0.581 ± 0.01 μs 1 ± 0.024
UNIT TESTS/StateEstimator/InternalModel/preparestate!/LinModel 0.32 ± 0.01 μs 0.321 ± 0.001 μs 0.997 ± 0.031
UNIT TESTS/StateEstimator/InternalModel/preparestate!/NonLinModel 0.732 ± 0.01 μs 0.741 ± 0.01 μs 0.988 ± 0.019
UNIT TESTS/StateEstimator/InternalModel/updatestate!/LinModel 0.461 ± 0.01 μs 0.471 ± 0.01 μs 0.979 ± 0.03
UNIT TESTS/StateEstimator/InternalModel/updatestate!/NonLinModel 1.25 ± 0.01 μs 1.24 ± 0.019 μs 1.01 ± 0.017
UNIT TESTS/StateEstimator/KalmanFilter/evaloutput 0.261 ± 0.001 μs 0.26 ± 0.021 μs 1 ± 0.081
UNIT TESTS/StateEstimator/KalmanFilter/preparestate! 0.14 ± 0.001 μs 0.12 ± 0.001 μs 1.17 ± 0.013
UNIT TESTS/StateEstimator/KalmanFilter/updatestate! 2.62 ± 0.031 μs 2.64 ± 0.039 μs 0.996 ± 0.019
UNIT TESTS/StateEstimator/Luenberger/evaloutput 0.25 ± 0.01 μs 0.26 ± 0.01 μs 0.962 ± 0.053
UNIT TESTS/StateEstimator/Luenberger/preparestate! 0.331 ± 0.01 μs 0.32 ± 0.001 μs 1.03 ± 0.031
UNIT TESTS/StateEstimator/Luenberger/updatestate! 0.35 ± 0.01 μs 0.341 ± 0.011 μs 1.03 ± 0.044
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/LinModel 0.272 ± 0.027 ms 0.294 ± 0.021 ms 0.926 ± 0.11
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 0.438 ± 0.074 ms 0.435 ± 0.068 ms 1.01 ± 0.23
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Constant arr. cov. 0.0338 ± 0.0023 s 0.0395 ± 0.0019 s 0.858 ± 0.071
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 0.0396 ± 0.0047 s 0.0392 ± 0.0042 s 1.01 ± 0.16
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/MultipleShooting 9.24 ± 0.56 ms 9.86 ± 0.61 ms 0.937 ± 0.081
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Current form 0.327 ± 0.023 ms 0.329 ± 0.023 ms 0.994 ± 0.1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/MultipleShooting 0.747 ± 0.015 ms 0.759 ± 0.016 ms 0.984 ± 0.028
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Prediction form 31.2 ± 15 ms 0.0357 ± 0.0027 s 0.872 ± 0.43
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Prediction form 0.339 ± 0.025 ms 0.354 ± 0.024 ms 0.956 ± 0.095
UNIT TESTS/StateEstimator/SteadyKalmanFilter/evaloutput 0.271 ± 0.01 μs 0.271 ± 0.01 μs 1 ± 0.052
UNIT TESTS/StateEstimator/SteadyKalmanFilter/preparestate! 0.34 ± 0.01 μs 0.341 ± 0.01 μs 0.997 ± 0.041
UNIT TESTS/StateEstimator/SteadyKalmanFilter/updatestate! 0.371 ± 0.01 μs 0.37 ± 0.01 μs 1 ± 0.038
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/LinModel 0.34 ± 0.01 μs 0.331 ± 0.01 μs 1.03 ± 0.043
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/NonLinModel 0.942 ± 0.019 μs 0.922 ± 0.01 μs 1.02 ± 0.023
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/LinModel 4 ± 0.059 μs 3.99 ± 0.04 μs 1 ± 0.018
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/NonLinModel 4.85 ± 0.04 μs 4.9 ± 0.03 μs 0.99 ± 0.01
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/LinModel 3.57 ± 0.02 μs 3.63 ± 0.081 μs 0.983 ± 0.023
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/NonLinModel 6.07 ± 0.051 μs 6.43 ± 0.07 μs 0.944 ± 0.013
time_to_load 6.16 ± 0.07 s 5.59 ± 0.055 s 1.1 ± 0.017
Memory benchmarks
main 45ca9ad... main / 45ca9ad...
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/DAQP/SingleShooting 0.049 M allocs: 1.87 MB 0.049 M allocs: 1.87 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/MultipleShooting 0.126 M allocs: 3.16 MB 0.126 M allocs: 3.16 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/SingleShooting 12.6 k allocs: 0.356 MB 12.6 k allocs: 0.356 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/DAQP/SingleShooting 0.0489 M allocs: 1.86 MB 0.0489 M allocs: 1.86 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/MultipleShooting 0.0879 M allocs: 2.23 MB 0.0879 M allocs: 2.23 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/SingleShooting 12.5 k allocs: 0.35 MB 12.5 k allocs: 0.35 MB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/DAQP/SingleShooting 0.128 M allocs: 6.72 MB 0.128 M allocs: 6.72 MB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/MultipleShooting 5.56 M allocs: 0.293 GB 5.56 M allocs: 0.293 GB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/SingleShooting 0.157 M allocs: 8.57 MB 0.157 M allocs: 8.57 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting 0.369 M allocs: 25.6 MB 0.369 M allocs: 25.6 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting (Hessian) 2.2 M allocs: 0.244 GB 2.2 M allocs: 0.244 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 0.306 M allocs: 0.0435 GB 0.306 M allocs: 0.0435 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 2.17 M allocs: 0.212 GB 2.17 M allocs: 0.212 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 2.17 M allocs: 0.212 GB 2.17 M allocs: 0.212 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.316 M allocs: 22.1 MB 0.316 M allocs: 22.1 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.741 M allocs: 0.0845 GB 0.741 M allocs: 0.0845 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 1.32 M allocs: 0.119 GB 1.32 M allocs: 0.119 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 1.32 M allocs: 0.119 GB 1.32 M allocs: 0.119 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.0965 M allocs: 17.9 MB 0.0965 M allocs: 17.9 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.0812 M allocs: 17.1 MB 0.0812 M allocs: 17.1 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.314 M allocs: 21.9 MB 0.314 M allocs: 21.9 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.757 M allocs: 0.0766 GB 0.757 M allocs: 0.0766 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0926 M allocs: 20.1 MB 0.0926 M allocs: 20.1 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.339 M allocs: 0.0361 GB 0.339 M allocs: 0.0361 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.277 M allocs: 19.1 MB 0.277 M allocs: 19.1 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.709 M allocs: 0.074 GB 0.709 M allocs: 0.074 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.296 M allocs: 28 MB 0.296 M allocs: 28 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 1.42 M allocs: 0.128 GB 1.42 M allocs: 0.128 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 5.5 M allocs: 0.661 GB 5.5 M allocs: 0.661 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.0754 M allocs: 13.5 MB 0.0754 M allocs: 13.5 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.0808 M allocs: 17.1 MB 0.0808 M allocs: 17.1 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation 0.276 M allocs: 19 MB 0.276 M allocs: 19 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (Hessian) 0.72 M allocs: 0.0657 GB 0.72 M allocs: 0.0657 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.295 M allocs: 28.1 MB 0.295 M allocs: 28.1 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.578 M allocs: 0.072 GB 0.578 M allocs: 0.072 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.0927 M allocs: 20.2 MB 0.0927 M allocs: 20.2 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.334 M allocs: 0.0325 GB 0.334 M allocs: 0.0325 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 1.45 M allocs: 0.225 GB 1.45 M allocs: 0.225 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 1.33 M allocs: 0.146 GB 1.33 M allocs: 0.146 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 1.33 M allocs: 0.222 GB 1.33 M allocs: 0.222 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/MultipleShooting 3.55 M allocs: 0.198 GB 3.55 M allocs: 0.198 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Prediction form 1.25 M allocs: 0.143 GB 1.25 M allocs: 0.143 GB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.0746 M allocs: 13.3 MB 0.0746 M allocs: 13.3 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian, MultipleShooting) 0.155 M allocs: 21.1 MB 0.155 M allocs: 21.1 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0747 M allocs: 13.3 MB 0.0747 M allocs: 13.3 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian, MultipleShooting) 0.149 M allocs: 20.1 MB 0.149 M allocs: 20.1 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0946 M allocs: 16.9 MB 0.0946 M allocs: 16.9 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.0932 M allocs: 16.4 MB 0.0932 M allocs: 16.4 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Uno/Current form (Hessian) 0.0326 M allocs: 5.17 MB 0.0326 M allocs: 5.17 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Uno/Current form (Hessian, MultipleShooting) 0.065 M allocs: 7.21 MB 0.065 M allocs: 7.21 MB 1
UNIT TESTS/PredictiveController/ExplicitMPC/moveinput! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/PredictiveController/LinMPC/getinfo! 0.326 k allocs: 15.6 kB 0.326 k allocs: 15.6 kB 1
UNIT TESTS/PredictiveController/LinMPC/moveinput!/MultipleShooting 1.62 k allocs: 0.0403 MB 1.62 k allocs: 0.0403 MB 1
UNIT TESTS/PredictiveController/LinMPC/moveinput!/SingleShooting 0.114 k allocs: 2.98 kB 0.114 k allocs: 2.98 kB 1
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/LinModel 0.408 k allocs: 0.0579 MB 0.408 k allocs: 0.0579 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/NonLinModel 0.575 k allocs: 0.0772 MB 0.575 k allocs: 0.0772 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/MultipleShooting 1.79 k allocs: 0.105 MB 1.79 k allocs: 0.105 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/SingleShooting 0.256 k allocs: 10.2 kB 0.256 k allocs: 10.2 kB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShooting 4.76 k allocs: 0.369 MB 4.76 k allocs: 0.369 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShootingHessian 5.34 k allocs: 0.425 MB 5.34 k allocs: 0.425 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocation 9.59 k allocs: 0.611 MB 9.59 k allocs: 0.611 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 0.0459 M allocs: 4.44 MB 0.0459 M allocs: 4.44 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShooting 0.957 k allocs: 0.233 MB 0.957 k allocs: 0.233 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShootingHessian 0.957 k allocs: 0.233 MB 0.957 k allocs: 0.233 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/TrapezoidalCollocation 3.42 k allocs: 0.241 MB 3.42 k allocs: 0.241 MB 1
UNIT TESTS/SimModel/LinModel/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/LinModel/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/NonLinModel/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/NonLinModel/linearize! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/NonLinModel/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/LinModel 4 allocs: 0.0938 kB 4 allocs: 0.0938 kB 1
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/NonLinModel 4 allocs: 0.0938 kB 4 allocs: 0.0938 kB 1
UNIT TESTS/StateEstimator/InternalModel/evaloutput/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/evaloutput/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/preparestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/preparestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/updatestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/updatestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/KalmanFilter/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/KalmanFilter/preparestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/KalmanFilter/updatestate! 4 allocs: 0.0938 kB 4 allocs: 0.0938 kB 1
UNIT TESTS/StateEstimator/Luenberger/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/Luenberger/preparestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/Luenberger/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/LinModel 1.42 k allocs: 0.053 MB 1.42 k allocs: 0.053 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 1.42 k allocs: 0.252 MB 1.42 k allocs: 0.252 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Constant arr. cov. 9.17 k allocs: 0.687 MB 9.17 k allocs: 0.687 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 0.187 M allocs: 0.118 GB 0.187 M allocs: 0.118 GB 0.995
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/MultipleShooting 19.7 k allocs: 1.01 MB 19.7 k allocs: 1.01 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Current form 1.04 k allocs: 27.8 kB 1.04 k allocs: 27.8 kB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/MultipleShooting 1.91 k allocs: 0.0478 MB 1.91 k allocs: 0.0478 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Prediction form 8.46 k allocs: 0.517 MB 8.46 k allocs: 0.517 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Prediction form 1.04 k allocs: 27.8 kB 1.04 k allocs: 27.8 kB 1
UNIT TESTS/StateEstimator/SteadyKalmanFilter/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/SteadyKalmanFilter/preparestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/SteadyKalmanFilter/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
time_to_load 0.149 k allocs: 11.2 kB 0.149 k allocs: 11.2 kB 1

@franckgaga

Copy link
Copy Markdown
Member Author

Merging, the CI run times are comparable to #438, but the precompilation time is significantly decreased. Moreover, time_to_load benchmark is 1.1 time faster.

@franckgaga
franckgaga merged commit fd5eaaf into main Sep 2, 2026
18 checks passed
@franckgaga
franckgaga deleted the precompile_time branch September 2, 2026 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants