Benchmark stabilization & charset-param workload support Major overhaul of the custom benchmark harness: - Per-serializer warmup, GC isolation, pilot discard, and CPU pinning for stable, reproducible results - Adaptive per-cell iteration targeting (~250ms/sample) and statistical reporting (min/max/stddev/CV) - CLI/menu support for single-cell A/B runs - Test data refactored to ASCII baselines with configurable charset suffix (6 presets), selectable via menu; charset recorded in all outputs - Markdown/console output now includes per-op µs, inter-sample range, CV warnings, and iteration counts - Documentation updated with rationale, methodology, and notes on reverted/experimental optimizations Enables reliable, cross-charset, release-grade performance measurement for AcBinary. |
||
|---|---|---|
| .. | ||
| AcSerializerModels.cs | ||
| BenchmarkTestDataProvider.cs | ||
| GeneratedSerializerTestModels.cs | ||
| README.md | ||
| SharedTestModels.cs | ||
| SignalRTestInfrastructure.cs | ||
| StockTakingTestModels.cs | ||
| TestDataFactory.cs | ||
| TestLogger.cs | ||
README.md
TestModels
Shared test entities, enums, data factories, and SignalR test infrastructure. Used across test and benchmark projects.
Key Files
SharedTestModels.cs— Enums (TestStatus, TestPriority, TestUserRole) and shared IId types (SharedTag, SharedCategory, SharedUser, MetadataInfo). Multi-serializer: [AcBinarySerializable], [MessagePackObject], [MemoryPackable].AcSerializerModels.cs— 30+ test models: simple, nested, collections, nullable, StockTaking hierarchy, circular references, generics, navigation properties, schema mismatch scenarios.GeneratedSerializerTestModels.cs— [AcBinarySerializable] models for source generator testing.StockTakingTestModels.cs— Production-like hierarchy: BaseEntity → MgEntityBase → MgStockTaking.TestDataFactory.cs— Centralized factory with ID sequencing: CreateTag(), CreateCategory(), CreateUser(), CreateOrder(), CreateOrderItem().SignalRTestInfrastructure.cs— SignalRMessageFactory, DTOs, CommonSignalRTags, SignalRBenchmarkData.TestLogger.cs— Logger with capture for assertions: HasErrorLogs, HasWarningLogs, GetErrorMessages().