1.4 KiB
1.4 KiB
AyCode.Core.Serializers.Console
Standalone benchmark console application for comparing serializer performance. Targets .NET 9. Measures serialize/deserialize speed, output size, and compression across multiple serializers and data shapes.
Compared Serializers
- AcBinary — Multiple configurations: Default, NoRef, FastMode, NoIntern, with/without source generation
- MessagePack
- MemoryPack
(System.Text.Json and Newtonsoft.Json comparisons exist but are currently commented out.)
Key Files
Program.cs— Benchmark runner. Modes:all(default),quick(fewer iterations),serialize,deserialize,profiler(memory profiler warmup). Outputs results toTest_Benchmark_Results/Benchmark/. Iterations: 5000 warmup + 1000 test (Release), 0+1 (Debug).BenchmarkTestDataProvider.cs— Test data factory producing 5 data shapes:- Small (2x2x2x2), Medium (3x3x3x4), Large (5x5x5x10)
- Repeated Strings (10 items, string deduplication testing)
- Deep Nested (2x4x4x8, depth stress test)
- Uses
TestOrdermodel fromAyCode.Core.Testswith configurable IId reference percentages.
Dependencies
| Dependency | Purpose |
|---|---|
AyCode.Core |
Core library with AcBinary serializer |
AyCode.Core.Tests |
Test models (TestOrder, TestDataFactory, etc.) |
MemoryPack |
Competitor benchmark |
MessagePack |
Competitor benchmark |
Newtonsoft.Json |
Competitor benchmark |