Commit a4bcd6d
authored
Add arrow-avro Decoder Benchmarks (apache#8025)
# Which issue does this PR close?
- Part of apache#4886
# Rationale for this change
This change introduces a comprehensive benchmark suite for the
`arrow-avro` decoder. Having robust benchmarks is crucial for several
reasons:
- It allows for the measurement and tracking of decoding performance
over time.
- It helps identify performance regressions or improvements as the
codebase evolves.
- It provides a standardized way to evaluate the impact of optimizations
and new features.
# What changes are included in this PR?
This PR adds a new benchmark file: `arrow-avro/benches/decoder.rs`.
The key components of this new file are:
- **Comprehensive Type Coverage**: Adds benchmark scenarios for a wide
range of data types, including:
- Primitive types (`Int32`, `Int64`, `Float32`, `Float64`, `Boolean`)
- Binary and String types (`Binary(Bytes)`, `String`, `StringView`)
- Logical types (`Date32`, `TimeMillis`, `TimeMicros`,
`TimestampMillis`, `TimestampMicros`, `Decimal128`, `UUID`, `Interval`,
`Enum`)
- Complex types (`Map`, `Array`, `Nested(Struct)`)
- `FixedSizeBinary`
- A `Mixed` schema with multiple fields
- Update to criterion 7.0.0
- Made `mod schema` public
# Are these changes tested?
These changes are covered by the benchmark tests themselves.
# Are there any user-facing changes?
N/A1 parent 5036ca8 commit a4bcd6d
2 files changed
+524
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
68 | | - | |
| 68 | + | |
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
74 | 77 | | |
75 | 78 | | |
76 | 79 | | |
77 | 80 | | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
0 commit comments