java-benchmarks

Java 25 vs 24 performance

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

Overall: Java 25 is faster overall (geomean B/A = 0.974, across 47 benchmarks; 25 A faster, 22 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 (graalvm-community-24.json) B (graalvm-community-25.json) Unit
BitArrayBenchmark.ByteCtor 87.339 87.815 ns/op
BitArrayBenchmark.HammingDistanceManual 1594.743 1593.734 ns/op
BitArrayBenchmark.HammingDistanceTensorPrimitives 24.485 24.123 ns/op
CollectionsBenchmark.InsertRange 147593.258 147831.944 ns/op
CryptoBenchmark.Hash 734.438 735.796 ns/op
DiagnosticsBenchmark.AssemblyQualifiedName 0.487 0.482 ns/op
DiagnosticsBenchmark.Interpolate 0.415 0.414 ns/op
DiagnosticsBenchmark.Oops 60.799 62.034 ns/op
DiagnosticsBenchmark.WithGetTimestamp 57.822 57.836 ns/op
DiagnosticsBenchmark.WithStartNew 57.805 57.816 ns/op
IOBenchmark.FSW 4157377.702 4120545.423 ns/op
IOBenchmark.MMF 2664768.626 2668571.769 ns/op
IOBenchmark.WriteByte 30197737.807 29803205.257 ns/op
JsonBenchmark.Serialize 16174.395 16145.553 ns/op
JsonBenchmark.WithDeserialize 25842.582 28180.027 ns/op
NetworkingBenchmark.Add 495.981 532.790 ns/op
NetworkingBenchmark.Ctor 530.970 552.830 ns/op
NetworkingBenchmark.CtorHost 749.413 810.039 ns/op
NetworkingBenchmark.GetValues 508.043 569.483 ns/op
NetworkingBenchmark.HttpGetSmall 65478209.724 48136709.083 ns/op
NetworkingBenchmark.ResponseContentRead_ReadAsByteArrayAsync 47206397.941 28557482.585 ns/op
NetworkingBenchmark.ResponseHeadersRead_ReadAsStringAsync 51333975.464 34991162.919 ns/op
NumericsBenchmark.DecrementManual 312.645 311.796 ns/op
NumericsBenchmark.DecrementTP 314.440 311.265 ns/op
NumericsBenchmark.Divide 16.625 70.907 ns/op
NumericsBenchmark.GetFutureTime 38.554 38.896 ns/op
NumericsBenchmark.GuidParse 20.609 25.128 ns/op
NumericsBenchmark.ParseInt32Min 56.674 63.688 ns/op
NumericsBenchmark.TranscodeParse 30.846 34.055 ns/op
NumericsBenchmark.TranscodeParse_Version 677.273 355.625 ns/op
NumericsBenchmark.TryWriteBytes 75.463 21.079 ns/op
NumericsBenchmark.Utf8ParserParse 32.058 34.034 ns/op
NumericsBenchmark.VersionParse 669.266 356.970 ns/op
OtherCollectionsBenchmark.Get 22292.170 26913.526 ns/op
PeanutButterBenchmark.FromHexStringUtf8 92.317 92.246 ns/op
PeanutButterBenchmark.New 240.813 238.643 ns/op
PeanutButterBenchmark.Old 3.512 3.388 ns/op
PeanutButterBenchmark.ToHexStringLowerUtf8 76.509 76.443 ns/op
ReflectionBenchmark.ParseAndGetName 15.582 15.675 ns/op
RegexAndStringBenchmark.Count 10354.601 10355.802 ns/op
SearchValuesBenchmark.ContainsAny 3.522 3.527 ns/op
SearchValuesBenchmark.IndexOfAny 3.564 3.553 ns/op
StreamsBenchmark.LeftJoin_Linq 117268.526 129215.983 ns/op
StreamsBenchmark.ShuffleTakeContainsLinq 88873.734 87271.683 ns/op
StreamsBenchmark.ShuffleTakeLinq 88720.807 86194.245 ns/op
ThreadingBenchmark.WhenAllAlloc_One 23.090 23.190 ns/op
ThreadingBenchmark.WhenAllAlloc_Two 26.190 26.413 ns/op

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