java-benchmarks

Java 25 vs 24 performance

Generated on 2025-09-21 from oracle-24.json (A) and oracle-25.json (B).

Overall: Java 25 is faster overall (geomean B/A = 0.977, across 47 benchmarks; 18 A faster, 29 B faster).

Benchmark-by-benchmark

For each benchmark below, lower is better (AverageTime). Values show B vs A with percentage difference.

All benchmarks (including single-sided)

Benchmark A (oracle-24.json) B (oracle-25.json) Unit
BitArrayBenchmark.ByteCtor 156.557 146.019 ns/op
BitArrayBenchmark.HammingDistanceManual 1822.352 1953.364 ns/op
BitArrayBenchmark.HammingDistanceTensorPrimitives 25.784 26.302 ns/op
CollectionsBenchmark.InsertRange 140026.974 159339.664 ns/op
CryptoBenchmark.Hash 715.618 714.667 ns/op
DiagnosticsBenchmark.AssemblyQualifiedName 0.622 0.623 ns/op
DiagnosticsBenchmark.Interpolate 2.894 2.889 ns/op
DiagnosticsBenchmark.Oops 59.961 61.380 ns/op
DiagnosticsBenchmark.WithGetTimestamp 57.798 57.794 ns/op
DiagnosticsBenchmark.WithStartNew 57.795 57.793 ns/op
IOBenchmark.FSW 4179185.334 4179818.696 ns/op
IOBenchmark.MMF 366658.870 365496.240 ns/op
IOBenchmark.WriteByte 25589236.326 25691882.051 ns/op
JsonBenchmark.Serialize 16632.920 16444.913 ns/op
JsonBenchmark.WithDeserialize 28806.343 33370.312 ns/op
NetworkingBenchmark.Add 456.493 437.322 ns/op
NetworkingBenchmark.Ctor 380.231 376.503 ns/op
NetworkingBenchmark.CtorHost 454.465 435.404 ns/op
NetworkingBenchmark.GetValues 480.219 450.262 ns/op
NetworkingBenchmark.HttpGetSmall 49481823.808 51736164.470 ns/op
NetworkingBenchmark.ResponseContentRead_ReadAsByteArrayAsync 79195127.181 53170804.874 ns/op
NetworkingBenchmark.ResponseHeadersRead_ReadAsStringAsync 88396323.812 57499397.266 ns/op
NumericsBenchmark.DecrementManual 47.645 41.483 ns/op
NumericsBenchmark.DecrementTP 47.681 41.578 ns/op
NumericsBenchmark.Divide 20.719 20.089 ns/op
NumericsBenchmark.GetFutureTime 38.937 38.927 ns/op
NumericsBenchmark.GuidParse 10.190 10.043 ns/op
NumericsBenchmark.ParseInt32Min 65.310 67.025 ns/op
NumericsBenchmark.TranscodeParse 30.662 30.504 ns/op
NumericsBenchmark.TranscodeParse_Version 572.572 568.700 ns/op
NumericsBenchmark.TryWriteBytes 68.920 72.448 ns/op
NumericsBenchmark.Utf8ParserParse 30.531 31.740 ns/op
NumericsBenchmark.VersionParse 538.775 553.307 ns/op
OtherCollectionsBenchmark.Get 29291.228 29445.696 ns/op
PeanutButterBenchmark.FromHexStringUtf8 89.782 89.559 ns/op
PeanutButterBenchmark.New 235.329 270.577 ns/op
PeanutButterBenchmark.Old 3.861 3.870 ns/op
PeanutButterBenchmark.ToHexStringLowerUtf8 65.192 64.939 ns/op
ReflectionBenchmark.ParseAndGetName 13.304 14.095 ns/op
RegexAndStringBenchmark.Count 39391.414 27611.219 ns/op
SearchValuesBenchmark.ContainsAny 2.836 2.847 ns/op
SearchValuesBenchmark.IndexOfAny 3.426 3.425 ns/op
StreamsBenchmark.LeftJoin_Linq 115573.847 112468.712 ns/op
StreamsBenchmark.ShuffleTakeContainsLinq 73451.048 72774.267 ns/op
StreamsBenchmark.ShuffleTakeLinq 75643.168 73599.823 ns/op
ThreadingBenchmark.WhenAllAlloc_One 28.627 28.061 ns/op
ThreadingBenchmark.WhenAllAlloc_Two 31.797 31.173 ns/op

_Legend: A = oracle-24.json (Java 24), B = oracle-25.json (Java 25). _