Understand the Kotlin Avro Benchmark configuration
mainThe benchmark compares serialization and deserialization performance across three libraries:
- Avro4k
- Jackson Avro
- Avro (using ReflectData)
Benchmark Methodology
- Input/Output: Reading from a prepared byte array and writing to a null output stream.
- Schema: All libraries use the exact same schema generated by
avro4k. - Use Cases Covered:
- Nullable fields
- Unions
- Arrays
- Records
- Enums
- Primitives (
string,int,float,double,boolean) - Logical types (
date,timestamp-millis,char,uuid)
Known Limitations
- UUIDs: UUIDs are not benchmarked because Jackson uses a different representation (
fixed) compared to Avro4k and Apache Avro (string). - Jackson Bug:
JacksonAvroBenchmark.readis known to fail due to a bug in the Jackson library when combining Kotlin and Avro formats.