Java Benchmark Results

IEEE 754-2019 compliant decimal128 high-performance software solution created by Miguel.

Living document — as-measured results. Category codes, profiles, modes & method: Benchmark Key.

This is the Java view of decimal128 as-measured, band by band, with explicit ratios. It opens with the realistic financial-mix (P-fin) headline, then the per-operation band characterization (P-gen) and FMA. In Java, d128 is measured against its in-language idiom peer BigDecimal, with the libbid universal reference on the full-width bands. It is data only — the categories, magnitude profiles, units, and methodology are defined in the Benchmark Key (and, authoritatively, BenchmarkMatrix.md). The cross-port d128 band-shape matrices (all ports, no alternatives) live in Port-Comparison Benchmark Results; the full index of per-language pages is on the Benchmarks hub.

Summary — Ratio Range by Operation

The ratio for Java’s idiom peer on x86_64 (Intel i9-9880H): ratio = BigDecimal / Miguel (> 1× ⇒ d128 faster), broken out by operation.

  Add Subtract Multiply Divide
ratio = BigDecimal / Miguel 5× 4× 3× 2.0× – 54×

FinMix — realistic financial mix (P-fin)

The headline: one realistic 64-bit financial operation mix — a MIX add/sub stream, mul CP/WP, div CD/WD/ET/PT — ratio = alt / Miguel (> 1 ⇒ d128 faster). This is the profile closest to real financial code.

arm64 (M3 Pro).

port op cat profile arch mode ns alt alt ns ratio run notes
java add MIX P-fin arm64 thru‡ 4.44 BigDecimal 19.56 4.41× Rjasw2 compact idiom peer
java sub MIX P-fin arm64 thru‡ 5.40 BigDecimal 22.61 4.19× Rjasw2 compact idiom peer
java mul CP P-fin arm64 thru‡ 4.99 BigDecimal 12.39 2.48× Rjasw2 compact idiom peer
java mul WP P-fin arm64 thru‡ 30.91 BigDecimal 60.23 1.95× Rjasw2 compact idiom peer
java div CD P-fin arm64 thru‡ 36.75 BigDecimal 141.22 3.84× Rjasw2 compact idiom peer
java div WD P-fin arm64 thru‡ 46.50 BigDecimal 91.87 1.98× Rjasw2 compact idiom peer
java div ET P-fin arm64 thru‡ 13.36 BigDecimal 498.45 37.31× Rjasw2 compact idiom peer
java div PT P-fin arm64 thru‡ 9.98 BigDecimal 476.14 47.71× Rjasw2 compact idiom peer

x86_64 (Intel i9-9880H).

port op cat profile arch mode ns alt alt ns ratio run notes
java add MIX P-fin x86_64 thru‡ 11.81 BigDecimal 63.63 5.39× xRjasw2 compact idiom peer
java sub MIX P-fin x86_64 thru‡ 19.36 BigDecimal 80.62 4.16× xRjasw2 compact idiom peer
java mul CP P-fin x86_64 thru‡ 13.75 BigDecimal 49.56 3.60× xRjasw2 compact idiom peer
java mul WP P-fin x86_64 thru‡ 53.01 BigDecimal 207.41 3.91× xRjasw2 compact idiom peer
java div CD P-fin x86_64 thru‡ 108.15 BigDecimal 512.67 4.74× xRjasw2 compact idiom peer
java div WD P-fin x86_64 thru‡ 144.96 BigDecimal 289.27 2.00× xRjasw2 compact idiom peer
java div ET P-fin x86_64 thru‡ 53.15 BigDecimal 1792.64 33.73× xRjasw2 compact idiom peer
java div PT P-fin x86_64 thru‡ 31.45 BigDecimal 1725.38 54.86× xRjasw2 compact idiom peer

Add — SQ · NQ · MQ · OQ · FQ

Swept 4096-input average per band (bare thru; ns/op = Time/4096 over the shared decimal128-resources/swept/ corpus, byte-identical operands every port). Relational peer table with explicit ratios; the cross-port d128 band-shape matrices are in Port-Comparison Benchmark Results.

arm64 (M3 Pro).

port op cat profile arch mode ours alt alt ns ratio run notes
java add SQss P-gen arm64 thru‡ 3.98 BigDecimal 18.22 4.58× Rjasw2 compact idiom peer
java add SQos P-gen arm64 thru‡ 4.93 BigDecimal 21.58 4.38× Rjasw2 compact idiom peer
java add NQss P-gen arm64 thru‡ 8.04 BigDecimal 29.94 3.72× Rjasw2 compact idiom peer
java add NQos P-gen arm64 thru‡ 9.32 BigDecimal 35.34 3.79× Rjasw2 compact idiom peer
java add MQss P-gen arm64 thru‡ 11.88 BigDecimal 29.66 2.50× Rjasw2 compact idiom peer
java add MQos P-gen arm64 thru‡ 30.02 BigDecimal 36.31 1.21× Rjasw2 compact idiom peer
java add OQss P-gen arm64 thru‡ 21.61 BigDecimal 78.91 3.65× Rjasw2 compact idiom peer
java add OQos P-gen arm64 thru‡ 46.52 BigDecimal 81.39 1.75× Rjasw2 compact idiom peer
java add FQss P-gen arm64 thru‡ 17.72 BigDecimal 76.90 4.34× Rjasw2 compact idiom peer
java add FQos P-gen arm64 thru‡ 33.72 BigDecimal 91.30 2.71× Rjasw2 compact idiom peer

x86_64 (Intel i9-9880H).

port op cat profile arch mode ours alt alt ns ratio run notes
java add SQss P-gen x86_64 thru‡ 9.60 BigDecimal 60.35 6.29× xRjasw2 compact idiom peer
java add SQos P-gen x86_64 thru‡ 18.85 BigDecimal 76.59 4.06× xRjasw2 compact idiom peer
java add NQss P-gen x86_64 thru‡ 21.81 BigDecimal 102.12 4.68× xRjasw2 compact idiom peer
java add NQos P-gen x86_64 thru‡ 25.04 BigDecimal 111.77 4.46× xRjasw2 compact idiom peer
java add MQss P-gen x86_64 thru‡ 26.70 BigDecimal 101.81 3.81× xRjasw2 compact idiom peer
java add MQos P-gen x86_64 thru‡ 41.48 BigDecimal 115.93 2.79× xRjasw2 compact idiom peer
java add OQss P-gen x86_64 thru‡ 60.65 BigDecimal 212.97 3.51× xRjasw2 compact idiom peer
java add OQos P-gen x86_64 thru‡ 77.85 BigDecimal 222.66 2.86× xRjasw2 compact idiom peer
java add FQss P-gen x86_64 thru‡ 39.66 BigDecimal 239.07 6.03× xRjasw2 compact idiom peer
java add FQos P-gen x86_64 thru‡ 54.32 BigDecimal 266.59 4.91× xRjasw2 compact idiom peer

Subtract — SQ · NQ · MQ · OQ · FQ

Swept 4096-input average per band (bare thru; ns/op = Time/4096 over the shared decimal128-resources/swept/ corpus, byte-identical operands every port). Relational peer table with explicit ratios; the cross-port d128 band-shape matrices are in Port-Comparison Benchmark Results.

arm64 (M3 Pro).

port op cat profile arch mode ours alt alt ns ratio run notes
java sub SQss P-gen arm64 thru‡ 4.90 BigDecimal 25.19 5.14× Rjasw2 compact idiom peer
java sub SQos P-gen arm64 thru‡ 4.18 BigDecimal 22.35 5.35× Rjasw2 compact idiom peer
java sub NQss P-gen arm64 thru‡ 8.35 BigDecimal 39.36 4.71× Rjasw2 compact idiom peer
java sub NQos P-gen arm64 thru‡ 7.65 BigDecimal 34.07 4.45× Rjasw2 compact idiom peer
java sub MQss P-gen arm64 thru‡ 29.21 BigDecimal 39.69 1.36× Rjasw2 compact idiom peer
java sub MQos P-gen arm64 thru‡ 10.91 BigDecimal 33.83 3.10× Rjasw2 compact idiom peer
java sub OQss P-gen arm64 thru‡ 45.72 BigDecimal 87.62 1.92× Rjasw2 compact idiom peer
java sub OQos P-gen arm64 thru‡ 21.31 BigDecimal 82.51 3.87× Rjasw2 compact idiom peer
java sub FQss P-gen arm64 thru‡ 33.14 BigDecimal 98.95 2.99× Rjasw2 compact idiom peer
java sub FQos P-gen arm64 thru‡ 17.28 BigDecimal 84.54 4.89× Rjasw2 compact idiom peer

x86_64 (Intel i9-9880H).

port op cat profile arch mode ours alt alt ns ratio run notes
java sub SQss P-gen x86_64 thru‡ 15.90 BigDecimal 85.93 5.40× xRjasw2 compact idiom peer
java sub SQos P-gen x86_64 thru‡ 13.16 BigDecimal 74.12 5.63× xRjasw2 compact idiom peer
java sub NQss P-gen x86_64 thru‡ 23.78 BigDecimal 118.65 4.99× xRjasw2 compact idiom peer
java sub NQos P-gen x86_64 thru‡ 19.38 BigDecimal 115.04 5.94× xRjasw2 compact idiom peer
java sub MQss P-gen x86_64 thru‡ 39.94 BigDecimal 123.32 3.09× xRjasw2 compact idiom peer
java sub MQos P-gen x86_64 thru‡ 24.70 BigDecimal 118.46 4.80× xRjasw2 compact idiom peer
java sub OQss P-gen x86_64 thru‡ 83.12 BigDecimal 235.29 2.83× xRjasw2 compact idiom peer
java sub OQos P-gen x86_64 thru‡ 62.03 BigDecimal 223.94 3.61× xRjasw2 compact idiom peer
java sub FQss P-gen x86_64 thru‡ 52.97 BigDecimal 280.61 5.30× xRjasw2 compact idiom peer
java sub FQos P-gen x86_64 thru‡ 41.69 BigDecimal 243.12 5.83× xRjasw2 compact idiom peer

Multiply — CP · WP · XP

Swept 4096-input average per band (bare thru; ns/op = Time/4096 over the shared decimal128-resources/swept/ corpus, byte-identical operands every port). Relational peer table with explicit ratios; the cross-port d128 band-shape matrices are in Port-Comparison Benchmark Results.

arm64 (M3 Pro).

port op cat profile arch mode ours alt alt ns ratio run notes
java mul CP P-gen arm64 thru‡ 5.46 BigDecimal 12.31 2.25× Rjasw2 compact idiom peer
java mul WP P-gen arm64 thru‡ 30.42 BigDecimal 58.01 1.91× Rjasw2 compact idiom peer
java mul XP P-gen arm64 thru‡ 45.83 BigDecimal 165.43 3.61× Rjasw2 compact idiom peer

x86_64 (Intel i9-9880H).

port op cat profile arch mode ours alt alt ns ratio run notes
java mul CP P-gen x86_64 thru‡ 16.20 BigDecimal 47.72 2.95× xRjasw2 compact idiom peer
java mul WP P-gen x86_64 thru‡ 58.63 BigDecimal 208.62 3.56× xRjasw2 compact idiom peer
java mul XP P-gen x86_64 thru‡ 81.20 BigDecimal 361.61 4.45× xRjasw2 compact idiom peer

Divide — CD · WD · XD (+ ET · PT)

Swept 4096-input average per band (bare thru; ns/op = Time/4096 over the shared decimal128-resources/swept/ corpus, byte-identical operands every port). Relational peer table with explicit ratios; the cross-port d128 band-shape matrices are in Port-Comparison Benchmark Results.

arm64 (M3 Pro).

port op cat profile arch mode ours alt alt ns ratio run notes
java div CD P-gen arm64 thru‡ 31.73 BigDecimal 141.36 4.46× Rjasw2 compact idiom peer
java div WD P-gen arm64 thru‡ 48.72 BigDecimal 102.98 2.11× Rjasw2 compact idiom peer
java div XD P-gen arm64 thru‡ 50.17 BigDecimal 234.08 4.67× Rjasw2 compact idiom peer
java div ET P-gen arm64 thru‡ 14.21 BigDecimal 426.20 29.99× Rjasw2 compact idiom peer
java div PT P-gen arm64 thru‡ 11.33 BigDecimal 393.58 34.74× Rjasw2 compact idiom peer

x86_64 (Intel i9-9880H).

port op cat profile arch mode ours alt alt ns ratio run notes
java div CD P-gen x86_64 thru‡ 116.61 BigDecimal 503.35 4.32× xRjasw2 compact idiom peer
java div WD P-gen x86_64 thru‡ 157.23 BigDecimal 341.38 2.17× xRjasw2 compact idiom peer
java div XD P-gen x86_64 thru‡ 150.08 BigDecimal 448.11 2.99× xRjasw2 compact idiom peer
java div ET P-gen x86_64 thru‡ 53.20 BigDecimal 1671.77 31.42× xRjasw2 compact idiom peer
java div PT P-gen x86_64 thru‡ 28.33 BigDecimal 1556.18 54.93× xRjasw2 compact idiom peer

FMA — FN (Barrett) · FF (fits-128)

Swept 4096-input average per band (bare thru; ns/op = Time/4096 over the shared decimal128-resources/swept/ corpus, byte-identical operands every port). Relational peer table with explicit ratios; the cross-port d128 band-shape matrices are in Port-Comparison Benchmark Results.

arm64 (M3 Pro).

port op cat profile arch mode ours alt alt ns ratio run notes
java fma FN FMA arm64 thru‡ 100.71 - - - Rjasw2  
java fma FF FMA arm64 thru‡ 71.66 - - - Rjasw2  

x86_64 (Intel i9-9880H).

port op cat profile arch mode ours alt alt ns ratio run notes
java fma FN FMA x86_64 thru‡ 272.76 - - - xRjasw2  
java fma FF FMA x86_64 thru‡ 221.71 - - - xRjasw2