java-benchmarks

Java 25 vs 24 performance

Generated on 2025-09-22 from temurin-24.json (A) and temurin-25.json (B).

Overall: Java 24 is faster overall (geomean B/A = 1.023, across 47 benchmarks; 20 A faster, 27 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 (temurin-24.json) B (temurin-25.json) Unit
BitArrayBenchmark.ByteCtor 156.704 145.639 ns/op
BitArrayBenchmark.HammingDistanceManual 1798.098 1962.833 ns/op
BitArrayBenchmark.HammingDistanceTensorPrimitives 25.826 28.668 ns/op
CollectionsBenchmark.InsertRange 147879.357 150246.956 ns/op
CryptoBenchmark.Hash 714.439 713.426 ns/op
DiagnosticsBenchmark.AssemblyQualifiedName 0.622 0.623 ns/op
DiagnosticsBenchmark.Interpolate 2.899 2.886 ns/op
DiagnosticsBenchmark.Oops 61.193 68.348 ns/op
DiagnosticsBenchmark.WithGetTimestamp 57.816 57.801 ns/op
DiagnosticsBenchmark.WithStartNew 57.829 57.838 ns/op
IOBenchmark.FSW 4194761.516 4059344.809 ns/op
IOBenchmark.MMF 365113.847 364858.844 ns/op
IOBenchmark.WriteByte 27426853.757 27679697.169 ns/op
JsonBenchmark.Serialize 16311.866 16715.853 ns/op
JsonBenchmark.WithDeserialize 30611.325 32735.697 ns/op
NetworkingBenchmark.Add 481.448 448.397 ns/op
NetworkingBenchmark.Ctor 366.633 377.029 ns/op
NetworkingBenchmark.CtorHost 466.372 439.381 ns/op
NetworkingBenchmark.GetValues 478.701 446.148 ns/op
NetworkingBenchmark.HttpGetSmall 56590079.684 94916719.396 ns/op
NetworkingBenchmark.ResponseContentRead_ReadAsByteArrayAsync 19609339.015 54290166.238 ns/op
NetworkingBenchmark.ResponseHeadersRead_ReadAsStringAsync 74837132.283 42653094.686 ns/op
NumericsBenchmark.DecrementManual 47.599 41.611 ns/op
NumericsBenchmark.DecrementTP 47.361 41.655 ns/op
NumericsBenchmark.Divide 22.553 86.327 ns/op
NumericsBenchmark.GetFutureTime 38.896 38.889 ns/op
NumericsBenchmark.GuidParse 10.197 23.457 ns/op
NumericsBenchmark.ParseInt32Min 64.396 72.717 ns/op
NumericsBenchmark.TranscodeParse 30.386 33.438 ns/op
NumericsBenchmark.TranscodeParse_Version 570.655 373.620 ns/op
NumericsBenchmark.TryWriteBytes 66.178 25.747 ns/op
NumericsBenchmark.Utf8ParserParse 30.660 33.395 ns/op
NumericsBenchmark.VersionParse 550.220 346.437 ns/op
OtherCollectionsBenchmark.Get 29138.240 29024.972 ns/op
PeanutButterBenchmark.FromHexStringUtf8 89.949 89.781 ns/op
PeanutButterBenchmark.New 234.345 318.586 ns/op
PeanutButterBenchmark.Old 3.916 3.857 ns/op
PeanutButterBenchmark.ToHexStringLowerUtf8 65.380 64.966 ns/op
ReflectionBenchmark.ParseAndGetName 13.181 13.611 ns/op
RegexAndStringBenchmark.Count 28411.682 15761.139 ns/op
SearchValuesBenchmark.ContainsAny 2.838 2.831 ns/op
SearchValuesBenchmark.IndexOfAny 3.425 3.426 ns/op
StreamsBenchmark.LeftJoin_Linq 113627.756 111513.463 ns/op
StreamsBenchmark.ShuffleTakeContainsLinq 73293.023 72800.132 ns/op
StreamsBenchmark.ShuffleTakeLinq 77305.013 73681.241 ns/op
ThreadingBenchmark.WhenAllAlloc_One 28.640 28.023 ns/op
ThreadingBenchmark.WhenAllAlloc_Two 31.674 30.154 ns/op

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