- 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.Benchmark.csproj | ||
| JitDisassemblyBenchmark.cs | ||
| Program.cs | ||
| README.md | ||
| RefForeachBenchmark.cs | ||
| SerializationBenchmarks.cs | ||
| SignalRCommunicationBenchmarks.cs | ||
| SignalRRoundTripBenchmarks.cs | ||
| SourceGeneratorBenchmarks.cs | ||
| TaskHelperBenchmarks.cs | ||
| ValueTypePassingBenchmark.cs | ||
README.md
AyCode.Benchmark
BenchmarkDotNet-based performance benchmarking console app. Compares AcBinary serializer against MessagePack, BSON, and JSON across various scenarios.
Key Files
Program.cs— CLI entry point with--quick,--test,--minimal,--simple,--complex,--msgpack,--sizes,--jitasmmodes. Collects results toTest_Benchmark_Results/at solution root.SerializationBenchmarks.cs— Primary suite: MinimalBenchmark, SimpleBinaryBenchmark, ComplexBinaryBenchmark, MessagePackComparisonBenchmark, AcBinaryVsMessagePackFullBenchmark, SizeComparisonBenchmark, LargeScaleBenchmark (~25K objects), AcJsonVsSystemTextJsonBenchmark.SourceGeneratorBenchmarks.cs— Source-generated vs runtime reflection serializers. Includes PureContractlessBenchmark, SourceGeneratorVsRuntimeBenchmark, RepeatedStringBenchmark (string interning).SignalRCommunicationBenchmarks.cs— Full-stack SignalR message performance: client creation → MessagePack serialization → server deserialization → response → round-trip.SignalRRoundTripBenchmarks.cs— Real SignalR infrastructure benchmarks: primitives, complex objects, collections, mixed parameters.JitDisassemblyBenchmark.cs— JIT analysis: generates .asm files to verify inlining decisions on serialize/deserialize hot paths.TaskHelperBenchmarks.cs— Task/timing utilities: WaitToAsync, ThreadPool (custom vs Task.Run), timing methods (UtcNow.Ticks vs TickCount64).RefForeachBenchmark.cs— Collection iteration patterns: array vs list, foreach vs index, ref readonly vs by-value for large structs.ValueTypePassingBenchmark.cs— Copy-by-value vsinparameter for 16-byte types (Decimal, DateTimeOffset, Guid).
Dependencies
| Dependency | Purpose |
|---|---|
BenchmarkDotNet |
Benchmarking framework |
MessagePack |
Serialization comparison target |
MongoDB.Bson |
BSON comparison target |