AyCode.Core/AyCode.Core.Serializers.Con...
Loretta 32f2de0db3 [LOADED_DOCS: 2 files, no new loads]
Refactor tests to use _All_True model types throughout

Replaced all usages of legacy test model types (e.g., TestOrder, TestOrderItem, SharedTag, etc.) with new, feature-complete _All_True variants across SignalR test infrastructure, data sources, and service handlers. Updated all generic constraints, method signatures, and test data to use the new types. Added SharedTestBaseModels.cs and SharedTestOrderModels.cs to define abstract bases and concrete _All_True models with full serialization attributes. This enables more thorough and realistic serialization/deserialization testing and future extensibility.
2026-05-13 08:40:42 +02:00
..
Benchmarks [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
AyCode.Core.Serializers.Console.csproj [LOADED_DOCS: 2 files, no new loads] 2026-05-04 07:02:13 +02:00
BenchmarkLoop.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 08:40:42 +02:00
BenchmarkResult.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 05:58:34 +02:00
Configuration.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 05:58:34 +02:00
Menu.cs [LOADED_DOCS: NONE] 2026-05-13 06:19:58 +02:00
Output.cs [LOADED_DOCS: 2 files, no new loads] 2026-05-13 05:58:34 +02:00
Program.cs [LOADED_DOCS: NONE] 2026-05-13 06:19:58 +02:00
README.md [LOADED_DOCS: 2 files, no new loads] 2026-05-11 21:22:48 +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. 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