v3.0.0
Nino.Serialization v3.0.0
- [Optimization] Significantly faster serialization/deserialization
- [Optimization] Reduce serialized binary size for string/collection/nullable
- [Feat] Support serialize user-defined string in UTF-8
- [Feat] Officially support cross-project referencing/inheriting
NinoType
s
Performance Report
expand
BenchmarkDotNet v0.14.0, Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100-rc.2.24474.11
[Host] : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2
Job-XNFPQM : .NET 9.0.0 (9.0.24.47305), X64 RyuJIT AVX2
Runtime=.NET 9.0 IterationCount=20 WarmupCount=1
Method | Mean | Error | StdDev | Ratio | RatioSD | Payload |
---|---|---|---|---|---|---|
MessagePackDeserializeSimpleClass | 1,989.5675 ns | 7.7502 ns | 7.9589 ns | 4.36 | 0.03 | - |
MemoryPackDeserializeSimpleClass | 619.5664 ns | 3.1183 ns | 3.5910 ns | 1.36 | 0.01 | - |
NinoDeserializeSimpleClass | 456.3293 ns | 2.3063 ns | 2.6559 ns | 1.00 | 0.01 | - |
MessagePackSerializeSimpleClass | 1,112.9107 ns | 2.1391 ns | 2.1009 ns | 4.39 | 0.03 | 700B |
MemoryPackSerializeSimpleClass | 584.9595 ns | 3.7039 ns | 4.1169 ns | 2.31 | 0.02 | 755B |
NinoSerializeSimpleClass | 253.3733 ns | 1.8258 ns | 1.9536 ns | 1.00 | 0.01 | 724B |
MessagePackDeserializeSimpleClasses | 194,239.6624 ns | 1,153.2492 ns | 1,281.8334 ns | 4.09 | 0.04 | - |
MemoryPackDeserializeSimpleClasses | 60,379.9549 ns | 360.4857 ns | 370.1922 ns | 1.27 | 0.01 | - |
NinoDeserializeSimpleClasses | 47,537.9703 ns | 278.0723 ns | 320.2285 ns | 1.00 | 0.01 | - |
MessagePackSerializeSimpleClasses | 109,926.0461 ns | 487.1932 ns | 561.0524 ns | 4.64 | 0.04 | 68.36KB |
MemoryPackSerializeSimpleClasses | 54,562.6891 ns | 355.0711 ns | 408.9004 ns | 2.31 | 0.02 | 73.73KB |
NinoSerializeSimpleClasses | 23,670.9496 ns | 170.5554 ns | 189.5719 ns | 1.00 | 0.01 | 70.71KB |
MessagePackDeserializeSimpleStruct | 74.0065 ns | 0.0545 ns | 0.0560 ns | 126.73 | 1.80 | - |
MemoryPackDeserializeSimpleStruct | 2.0337 ns | 0.0118 ns | 0.0136 ns | 3.48 | 0.05 | - |
NinoDeserializeSimpleStruct | 0.5841 ns | 0.0080 ns | 0.0085 ns | 1.00 | 0.02 | - |
MessagePackSerializeSimpleStruct | 78.7078 ns | 0.6090 ns | 0.6769 ns | 9.05 | 0.10 | 16B |
MemoryPackSerializeSimpleStruct | 16.0308 ns | 1.1811 ns | 1.2637 ns | 1.84 | 0.14 | 16B |
NinoSerializeSimpleStruct | 8.7005 ns | 0.0527 ns | 0.0607 ns | 1.00 | 0.01 | 16B |
MessagePackDeserializeSimpleStructs | 4,677.0999 ns | 24.5057 ns | 28.2208 ns | 34.22 | 0.49 | - |
MemoryPackDeserializeSimpleStructs | 164.0958 ns | 1.3463 ns | 1.4964 ns | 1.20 | 0.02 | - |
NinoDeserializeSimpleStructs | 136.6830 ns | 1.6540 ns | 1.8384 ns | 1.00 | 0.02 | - |
MessagePackSerializeSimpleStructs | 4,018.0001 ns | 7.3613 ns | 7.2298 ns | 29.05 | 0.29 | 1.57KB |
MemoryPackSerializeSimpleStructs | 149.4565 ns | 2.0011 ns | 2.3045 ns | 1.08 | 0.02 | 1.57KB |
NinoSerializeSimpleStructs | 138.3060 ns | 1.2612 ns | 1.4019 ns | 1.00 | 0.01 | 1.57KB |