# 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 to `Test_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 `TestOrder` model from `AyCode.Core.Tests` with 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 |