- Add BINARY_FORMAT.md: full AcBinary wire format spec (markers, encoding, options, protocol, interactions) - Reference BINARY_FORMAT.md from GLOSSARY.md, Binaries/README.md, and Serializers/Binaries/README.md; add new glossary terms - Clarify and expand config options tables to match new doc - Add/clarify LLM maintenance rules: always sync .md files with code, auto-fix discrepancies - Update root README.md: AyCode.Core targets .NET 9, not 10; stress doc/code sync - Add code reuse and doc sync conventions to copilot-instructions.md and CONVENTIONS.md - Add docs/ folder and BINARY_FORMAT.md to solution as Solution Items - Minor clarifications and cross-links in ARCHITECTURE.md and other docs |
||
|---|---|---|
| .. | ||
| AyCode.Core.Serializers.Console.csproj | ||
| BenchmarkTestDataProvider.cs | ||
| Program.cs | ||
| README.md | ||
README.md
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 |