Closed gmanvel closed 11 months ago
Hello @gmanvel, Thank you a lot for your PRs! The performance gain is really impressive. I will play with Span APIs for sure. Unfortunately, as for the Uuid base representation, it would have to remain as strings. That's according to the official Avro specification: https://avro.apache.org/docs/1.11.1/specification/#uuid As for the rest of the changes, they look perferctly
Changing Uuid to be stored as Guid's underlying bytes which would remove overhead of serializing to UTF8 string. As a result serialized byte length shrinks from 36 bytes to 16 bytes as well as speeding up serialization of Uuid fields.
CoreBenchmarks
project is meant to house benchmarks for core pieces of library. Running Uuid benchmarkdotnet run -c Release --filter "*WriterBenchmarksUuid*"
produces the following outputPR is introducing overloads of
WriteBytes
andWriteBytesRaw
methods to work withSpan
based APIs.