35 lines
1.6 KiB
Markdown
35 lines
1.6 KiB
Markdown
# 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 |
|
|
|
|
---
|
|
|
|
> **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.
|