Skip to content

Replace trove4j dependency with fastutil - #1432

Draft
rolnico wants to merge 1 commit into
mainfrom
nro/trove
Draft

Replace trove4j dependency with fastutil#1432
rolnico wants to merge 1 commit into
mainfrom
nro/trove

Conversation

@rolnico

@rolnico rolnico commented Jun 16, 2026

Copy link
Copy Markdown
Member

Caution

Not for the 06/2026 release

Please check if the PR fulfills these requirements

  • The commit message follows our guidelines
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)
  • A PR or issue has been opened in all impacted repositories (if any)

Does this PR already have an issue describing the problem?
Follows powsybl/powsybl-core#3580

What kind of change does this PR introduce?
Quality

What is the current behavior?
OLF uses trove4j which is abandonned

What is the new behavior (if this is a feature change)?
OLF now uses fastutil

Does this PR introduce a breaking change or deprecate an API?

  • Yes
  • No

If yes, please check if the following requirements are fulfilled

  • The Breaking Change or Deprecated label has been added
  • The migration steps are described in the following section

What changes might users need to make in their application due to this PR? (migration steps)

Other information:

@rolnico
rolnico requested review from geofjamg and olperr1 June 16, 2026 14:57
@rolnico rolnico self-assigned this Jun 16, 2026
@rolnico

rolnico commented Jun 17, 2026

Copy link
Copy Markdown
Member Author

Benchmarks comparison done using powsybl-benchmark for the version using Trove4J and the one using FastUtil:

Load flow benchmark

Network Basic Δ Standard Δ Standard (no reactive limits) Δ
IEEE 14 162 µs → 143 µs -11.7% 155 µs → 157 µs +1.3% 149 µs → 156 µs +4.7%
IEEE 118 1.10 ms → 1.16 ms +5.5% 1.48 ms → 1.53 ms +3.4% 1.19 ms → 1.20 ms +0.8%
IEEE 300 2.61 ms → 2.76 ms +5.7% 4.42 ms → 4.53 ms +2.5% 3.43 ms → 3.15 ms -8.2%
RTE 1888 21.3 ms → 20.7 ms -2.8% 24.5 ms → 25.2 ms +2.9% 23.1 ms → 23.4 ms +1.3%
RTE 6515 90.6 ms → 96.5 ms +6.5% 143 ms → 149 ms +4.2% 112 ms → 101 ms -9.8%
RealGrid 99.7 ms → 96.5 ms -3.2% 153 ms → 146 ms -4.6% 121 ms → 106 ms -12.4%

Mono-thread security analysis benchmark

Network Basic Δ Standard Δ Standard (no reactive limits) Δ
IEEE 14 46 µs → 48 µs +4.3% 74 µs → 74 µs 0.0% 55 µs → 53 µs -3.6%
IEEE 118 198 µs → 199 µs +0.5% 422 µs → 415 µs -1.7% 263 µs → 268 µs +1.9%
IEEE 300 837 µs → 727 µs -13.1% 1.93 ms → 1.59 ms -17.6% 1.06 ms → 0.927 ms -12.5%
RTE 1888 4.2 ms → 4.0 ms -4.8% 6.9 ms → 5.7 ms -17.4% 5.1 ms → 4.9 ms -3.9%
RTE 6515 17.3 ms → 16.5 ms -4.6% 19.5 ms → 19.1 ms -2.1% 19.3 ms → 16.0 ms -17.1%

Sensitivity analysis benchmark

Network Basic Δ Standard Δ Standard (no reactive limits) Δ
IEEE 14 67 µs → 65 µs -3.0% 95.5 µs → 97 µs +1.6% 74.4 µs → 74 µs -0.5%
IEEE 118 3.3 ms → 3.3 ms 0.0% 3.7 ms → 3.6 ms -2.7% 3.4 ms → 3.4 ms 0.0%
IEEE 300 4.2 ms → 3.9 ms -7.1% 5.6 ms → 5.0 ms -10.7% 4.1 ms → 4.2 ms +2.4%
RTE 1888 9.4 ms → 8.9 ms -5.3% 12.1 ms → 11.0 ms -9.1% 10.1 ms → 10.1 ms 0.0%
RTE 6515 22.9 ms → 24.4 ms +6.6% 39.2 ms → 26.2 ms -33.2% 27.4 ms → 22.2 ms -19.0%
RealGrid 26.8 ms → 23.7 ms -11.6% 30.9 ms → 25.3 ms -18.1% 21.9 ms → 26.1 ms +19.2%

SylvestreSakti
SylvestreSakti previously approved these changes Jun 19, 2026
@rolnico
rolnico marked this pull request as draft June 19, 2026 08:56
Base automatically changed from ci/core-7.3.0-SNAPSHOT to main June 23, 2026 07:10
@SylvestreSakti
SylvestreSakti dismissed their stale review June 23, 2026 07:10

The base branch was changed.

Signed-off-by: Nicolas Rol <nicolas.rol@rte-france.com>
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.

3 participants