AyCode.Core/AyCode.Core.Serializers.Con...
Loretta 17daf0fef2 Document AcBinary wire format, sync docs, update conventions
- 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
2026-03-29 09:11:57 +02:00
..
AyCode.Core.Serializers.Console.csproj Add MemoryPack benchmarks and model support 2026-02-16 07:59:24 +01:00
BenchmarkTestDataProvider.cs Refactor test data, MessagePack, and serializer logic 2026-02-08 10:25:23 +01:00
Program.cs Update dependencies and expand README documentation 2026-03-20 16:42:51 +01:00
README.md Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00

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 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