1.6 KiB
1.6 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 |
LLM Maintenance: If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.