Skip to content

Add kyo-schema to serialization benchmarks#101

Merged
ghostdogpr merged 2 commits into
mainfrom
add-kyo-benchmark
Jul 1, 2026
Merged

Add kyo-schema to serialization benchmarks#101
ghostdogpr merged 2 commits into
mainfrom
add-kyo-benchmark

Conversation

@ghostdogpr

@ghostdogpr ghostdogpr commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Upgrade kyo 1.0.0-RC41.0.0-RC5, which fixes collection round-tripping in the kyo.Protobuf codec (List/Map fields were broken through RC4).
  • Add kyo Schema derivations for the benchmark domain types in Data.scala and a kyo benchmark method to SimpleBenchmark, ComplexBenchmark, and LargeBenchmark, run against the same domain type A as every other codec.
  • The benchmarks module now uses nextScalaSettings (Scala 3.8.x), which kyo requires.
  • Bump CI to temurin:25: kyo RC5 is compiled for Java 25, so kyoGrpc and benchmarks require it to compile. The published core library still targets Java 8 bytecode and is unaffected.

Results

JMH throughput (ops/ms, higher is better) — JDK 25, 1 fork, 8×1s warmup, 10×1s measurement:

Dataset proteus kyo proteus faster by
Simple 2420.9 ± 13.4 547.5 ± 6.8 4.42×
Complex 985.1 ± 15.5 298.2 ± 2.9 3.30×
Large 125.3 ± 1.7 60.6 ± 0.8 2.07×

Round-trip correctness verified on all three datasets under RC5.

Upgrade kyo to 1.0.0-RC5, which fixes collection round-tripping in the
kyo.Protobuf codec (List/Map were broken through RC4). This lets kyo be
benchmarked against the same domain type `A` as the other codecs, so a
`kyo` method is added to the Simple/Complex/Large benchmarks alongside a
kyo Schema derivation for the domain types in Data.scala.

The benchmarks module now uses nextScalaSettings (Scala 3.8.x) since kyo
requires it.
kyo 1.0.0-RC5 is compiled for Java 25 (class file 69.0), so kyoGrpc and
benchmarks fail to compile under the previous temurin:21 CI runtime.
@ghostdogpr ghostdogpr force-pushed the add-kyo-benchmark branch from b637dbc to fc0874a Compare July 1, 2026 02:29
@ghostdogpr ghostdogpr merged commit c4328ea into main Jul 1, 2026
3 checks passed
@ghostdogpr ghostdogpr deleted the add-kyo-benchmark branch July 1, 2026 02:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant