[ https://issues.apache.org/jira/browse/FLINK-37435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17933714#comment-17933714 ]
Kurt Ostfeld commented on FLINK-37435: -------------------------------------- https://github.com/kurtostfeld/kryo2vs5 I tried to recreate this in a smaller JMH benchmark project that would benchmark: - Kryo 2 POJO serialization. - Kryo 5 POJO serialization. - Kryo 5 record serialization. I copied the exact same POJO class/values used in the flink-benchmarks project PojoSerializationBenchmark. I was surprised to see Kryo 5 outperform Kryo 2 serialization which is the opposite result of this ticket. I was surprisingly disappointed to see Kryo 5 run faster with POJOs than with Java records. Benchmark Mode Cnt Score Error Units Benchmarks.readKryo2POJOBenchmark thrpt 25 2324.044 ± 70.502 ops/ms Benchmarks.readKryo5POJOBenchmark thrpt 25 5092.535 ± 1005.264 ops/ms Benchmarks.readKryo5RecordBenchmark thrpt 25 3751.761 ± 297.263 ops/ms Benchmarks.writeAndReadKryo2POJOBenchmark thrpt 25 1238.067 ± 39.658 ops/ms Benchmarks.writeAndReadKryo5POJOBenchmark thrpt 25 1657.562 ± 68.855 ops/ms Benchmarks.writeAndReadKryo5RecordBenchmark thrpt 25 1336.220 ± 51.159 ops/ms Benchmarks.writeKryo2POJOBenchmark thrpt 25 1880.612 ± 67.342 ops/ms Benchmarks.writeKryo5POJOBenchmark thrpt 25 2555.140 ± 53.788 ops/ms Benchmarks.writeKryo5RecordBenchmark thrpt 25 2108.293 ± 45.544 ops/ms For reference, from the same laptop: Benchmark Mode Cnt Score Error Units PojoSerializationBenchmark.readAvro thrpt 30 1300.356 ± 35.052 ops/ms PojoSerializationBenchmark.readKryo thrpt 30 455.560 ± 5.142 ops/ms PojoSerializationBenchmark.readPojo thrpt 30 1533.772 ± 19.120 ops/ms PojoSerializationBenchmark.writeAvro thrpt 30 1545.213 ± 48.611 ops/ms PojoSerializationBenchmark.writeKryo thrpt 30 1642.791 ± 35.117 ops/ms PojoSerializationBenchmark.writePojo thrpt 30 1558.851 ± 14.866 ops/ms The PojoSerializationBenchmark is using Flink's serialization layer on top of Kryo, where the simpler benchmark is just using Kryo directly. > Kryo related perf regression since March 5th > -------------------------------------------- > > Key: FLINK-37435 > URL: https://issues.apache.org/jira/browse/FLINK-37435 > Project: Flink > Issue Type: Bug > Components: API / Type Serialization System, Benchmarks > Affects Versions: 2.0.0 > Reporter: Zakelly Lan > Priority: Major > Attachments: image-2025-03-07-12-29-54-443.png, > profile-results-after.zip, profile-results-before.zip > > > Seems a obvious regression across all java version. > http://flink-speed.xyz/timeline/?exe=6%2C12%2C13&base=&ben=readKryo&env=3&revs=200&equid=off&quarts=on&extr=on > http://flink-speed.xyz/timeline/?exe=6%2C12%2C13&base=&ben=serializerKryo&env=3&revs=200&equid=off&quarts=on&extr=on -- This message was sent by Atlassian Jira (v8.20.10#820010)