Repository navigation
v4.0.0-rc.4
Pre-releaseInstall: dotnet add package Nino --version 4.0.0-rc.4 (Unity package: 4.0.0-preview.204)
New
NinoSerializer.Serialize<T>(in T value, IBufferWriter<byte>),Serialize<T>(in T value, ref Writer)andWriter.WriteValue<T>(in T)take the value by reference too, so a struct read from a field is written without a copy on the stack. Source compatible.Writer.Write<T>(in T value)takes an unmanaged value by reference, as the Serialize overloads do. Source compatible.
Every change between v4 releases: Changelog.
What's Changed since v4.0.0-rc.3
3 commits
📦 Runtime, generator and analyzer
- Core: every Serialize overload takes in T (cab9f16) by @JasonXuDeveloper
- Core: Writer.Write<T>(in T) for unmanaged values (0dde3d7) by @JasonXuDeveloper
📖 Documentation
- Docs: the masked-copy cost is measured on padded SimpleStructs (50da549) by @JasonXuDeveloper
Contributors
Thanks to everyone who contributed to this release: @JasonXuDeveloper
Full Changelog: v4.0.0-rc.3...v4.0.0-rc.4
📊 v3 3.3.13 vs v4 (same machine)
Nino v3 3.3.13 (NuGet) against v4.0.0-rc.4, back to back on the same runner
benchmarks/v3 (the same SimpleTest, built against Nino 3.3.13 from nuget.org) ran directly before the v4
run below, in the same job on the same runner, with the same BenchmarkDotNet settings
(--launchCount 1 --warmupCount 5 --iterationCount 15). MemoryPack runs in both, so its two columns show how much the runner moved.
v4 vs v3
| case | v3 3.3.13 | v4 | v4 vs v3 | MemoryPack (v4 run) | MemoryPack (v3 run) |
|---|---|---|---|---|---|
| SerializeFixedClass | - | 9.93 ns | - | 18.51 ns | - |
| SerializeFixedClasses | - | 634.26 ns | - | 1.43 μs | - |
| SerializeFixedStruct | - | 8.98 ns | - | 12.99 ns | - |
| SerializeGraph | - | 4.47 μs | - | 23.34 μs | - |
| SerializePolymorphicClassArray | - | 59.47 μs | - | 229.29 μs | - |
| SerializePolymorphicClass | - | 6.62 μs | - | 21.31 μs | - |
| SerializePolymorphicFooArray | - | 5.69 μs | - | 21.51 μs | - |
| SerializeSimpleClass | 132.78 ns | 87.71 ns | 0.66x | 296.42 ns | 340.41 ns |
| SerializeSimpleClasses | 19.29 μs | 9.97 μs | 0.52x | 31.37 μs | 31.03 μs |
| SerializeSimpleStruct | 1.46 ns | 0.82 ns | 0.56x | 2.78 ns | 2.80 ns |
| SerializeSimpleStructs | 13.65 ns | 14.17 ns | 1.04x | 14.64 ns | 21.37 ns |
| SerializeTolerantClass | - | 85.92 ns | - | 375.76 ns | - |
| SerializeTolerantClasses | - | 9.64 μs | - | 39.17 μs | - |
| SerializeVectors | 3.90 μs | 3.90 μs | 1.00x | 3.91 μs | 3.90 μs |
| DeserializeFixedClass | - | 7.87 ns | - | 18.59 ns | - |
| DeserializeFixedClasses | - | 1.04 μs | - | 1.16 μs | - |
| DeserializeFixedStruct | - | 0.04 ns | - | 0.39 ns | - |
| DeserializeGraph | - | 5.16 μs | - | 16.53 μs | - |
| LeavesNew | - | 3.29 μs | - | 3.33 μs | - |
| LeavesPooledElements | - | 2.27 μs | - | - | - |
| LeavesInPlace | - | 467.56 ns | - | - | - |
| NodeNew | - | 535.74 ns | - | 548.04 ns | - |
| NodePooled | - | 185.17 ns | - | - | - |
| PlainNew | - | 2.53 μs | - | 3.36 μs | - |
| DeserializePolymorphicClassArray | - | 265.10 μs | - | 347.96 μs | - |
| DeserializePolymorphicClass | - | 17.63 μs | - | 24.85 μs | - |
| DeserializePolymorphicFooArray | - | 16.73 μs | - | 24.39 μs | - |
| DeserializeNew | - | 446.99 ns | - | 577.79 ns | - |
| DeserializePooled | - | 219.97 ns | - | - | - |
| DeserializeSimpleClass | 473.86 ns | 444.33 ns | 0.94x | 576.74 ns | 574.68 ns |
| DeserializeSimpleClasses | 49.74 μs | 45.41 μs | 0.91x | 57.24 μs | 57.18 μs |
| DeserializeSimpleStruct | 0.41 ns | 0.39 ns | 0.95x | 0.39 ns | 0.34 ns |
| DeserializeSimpleStructs | 86.34 ns | 86.60 ns | 1.00x | 97.57 ns | 97.67 ns |
| DeserializeTolerantClass | - | 431.29 ns | - | 629.27 ns | - |
| DeserializeTolerantClasses | - | 46.04 μs | - | 64.36 μs | - |
| DeserializeVectors | 102.72 μs | 106.24 μs | 1.03x | 109.03 μs | 103.44 μs |
v4 vs v3 = mean(v4) / mean(v3); below 1.00x means v4 is faster.
MemoryPack drift (v4 run / v3 run): min 0.69x, max 1.13x (same code in both runs; the spread is the noise floor of this comparison).
v3 3.3.13 report
BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
INTEL XEON PLATINUM 8573C 2.96GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.402
[Host] : .NET 10.0.13 (10.0.13, 10.0.1326.50504), X64 RyuJIT x86-64-v4
ShortRun-.NET 10.0 : .NET 10.0.13 (10.0.13, 10.0.1326.50504), X64 RyuJIT x86-64-v4
Job=ShortRun-.NET 10.0 Runtime=.NET 10.0 Server=True
IterationCount=15 LaunchCount=1 WarmupCount=5
| Method | Mean | Min | Max | Ratio | Payload | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|
| NinoDeserializeSimpleClass | 473.8551 ns | 472.5965 ns | 477.1593 ns | 1.00 | - | 0.2289 | - | - | 2552 B | 1.00 |
| MemoryPackDeserializeSimpleClass | 574.6807 ns | 572.1169 ns | 576.7391 ns | 1.21 | - | 0.2413 | - | - | 2528 B | 0.99 |
| MessagePackDeserializeSimpleClass | 1,559.2117 ns | 1,534.8606 ns | 1,586.1142 ns | 3.29 | - | 0.4215 | 0.0038 | 0.0019 | - | 0.00 |
| NinoSerializeSimpleClass | 132.7801 ns | 132.1466 ns | 133.2328 ns | 1.00 | 1.13KB | - | - | - | - | NA |
| MemoryPackSerializeSimpleClass | 340.4064 ns | 339.8059 ns | 341.7636 ns | 2.56 | 1.12KB | - | - | - | - | NA |
| MessagePackSerializeSimpleClass | 770.7891 ns | 768.8618 ns | 773.2303 ns | 5.81 | 1.09KB | - | - | - | - | NA |
| NinoDeserializeSimpleClasses | 49,738.7632 ns | 49,114.9208 ns | 50,121.0950 ns | 1.00 | - | 18.6768 | 5.7373 | - | 262424 B | 1.00 |
| MemoryPackDeserializeSimpleClasses | 57,178.4277 ns | 56,624.4812 ns | 57,770.5761 ns | 1.15 | - | 18.0054 | 5.5542 | - | 253624 B | 0.97 |
| MessagePackDeserializeSimpleClasses | 169,045.1661 ns | 168,474.3135 ns | 169,701.1729 ns | 3.40 | - | 18.0664 | 5.6152 | - | 253624 B | 0.97 |
| NinoSerializeSimpleClasses | 19,288.8669 ns | 19,098.7635 ns | 19,570.2582 ns | 1.00 | 112.5KB | - | - | - | - | NA |
| MemoryPackSerializeSimpleClasses | 31,029.8530 ns | 30,922.3727 ns | 31,120.7873 ns | 1.61 | 112.11KB | - | - | - | - | NA |
| MessagePackSerializeSimpleClasses | 75,124.6973 ns | 74,330.2264 ns | 76,406.2806 ns | 3.89 | 108.59KB | - | - | - | - | NA |
| NinoDeserializeSimpleStruct | 0.4064 ns | 0.4036 ns | 0.4108 ns | 1.00 | - | - | - | - | - | NA |
| MemoryPackDeserializeSimpleStruct | 0.3449 ns | 0.3430 ns | 0.3458 ns | 0.85 | - | - | - | - | - | NA |
| MessagePackDeserializeSimpleStruct | 58.2861 ns | 58.1223 ns | 58.3660 ns | 143.43 | - | - | - | - | - | NA |
| NinoSerializeSimpleStruct | 1.4587 ns | 1.4514 ns | 1.4691 ns | 1.00 | 12B | - | - | - | - | NA |
| MemoryPackSerializeSimpleStruct | 2.8005 ns | 2.7938 ns | 2.8086 ns | 1.92 | 12B | - | - | - | - | NA |
| MessagePackSerializeSimpleStruct | 40.9767 ns | 40.9223 ns | 41.0344 ns | 28.09 | 16B | - | - | - | - | NA |
| NinoDeserializeSimpleStructs | 86.3382 ns | 85.6932 ns | 87.2757 ns | 1.00 | - | 0.1214 | - | - | 1224 B | 1.00 |
| MemoryPackDeserializeSimpleStructs | 97.6653 ns | 96.9393 ns | 98.5113 ns | 1.13 | - | 0.1214 | - | - | 1224 B | 1.00 |
| MessagePackDeserializeSimpleStructs | 2,857.3145 ns | 2,840.3399 ns | 2,877.2556 ns | 33.10 | - | 0.1450 | 0.0038 | 0.0038 | - | 0.00 |
| NinoSerializeSimpleStructs | 13.6467 ns | 13.6191 ns | 13.6678 ns | 1.00 | 1.18KB | - | - | - | - | NA |
| MemoryPackSerializeSimpleStructs | 21.3655 ns | 21.3273 ns | 21.3889 ns | 1.57 | 1.18KB | - | - | - | - | NA |
| MessagePackSerializeSimpleStructs | 2,700.5408 ns | 2,695.9066 ns | 2,707.1305 ns | 197.89 | 1.57KB | - | - | - | - | NA |
| NinoDeserializeVectors | 102,718.4541 ns | 97,704.4089 ns | 108,695.6713 ns | 1.00 | - | 15.5029 | 15.5029 | 15.5029 | 160025 B | 1.00 |
| MemoryPackDeserializeVectors | 103,442.2671 ns | 99,469.9246 ns | 107,427.4281 ns | 1.01 | - | 15.5029 | 15.5029 | 15.5029 | 160025 B | 1.00 |
| MessagePackDeserializeVectors | 294,431.6337 ns | 283,511.2493 ns | 299,202.7693 ns | 2.87 | - | 19.5313 | 19.5313 | 19.5313 | - | 0.00 |
| NinoSerializeVectors | 3,896.4441 ns | 3,891.2290 ns | 3,900.0776 ns | 1.00 | 156.25KB | - | - | - | - | NA |
| MemoryPackSerializeVectors | 3,898.6930 ns | 3,893.8987 ns | 3,902.7247 ns | 1.00 | 156.25KB | - | - | - | - | NA |
| MessagePackSerializeVectors | 116,808.3310 ns | 116,485.8171 ns | 117,220.2031 ns | 29.98 | 205.08KB | - | - | - | - | NA |
📊 Performance Report
Click to expand benchmark results
BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
INTEL XEON PLATINUM 8573C 3.10GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.402
[Host] : .NET 10.0.13 (10.0.13, 10.0.1326.50504), X64 RyuJIT x86-64-v4
ShortRun-.NET 10.0 : .NET 10.0.13 (10.0.13, 10.0.1326.50504), X64 RyuJIT x86-64-v4
Job=ShortRun-.NET 10.0 Runtime=.NET 10.0 Server=True
IterationCount=15 LaunchCount=1 WarmupCount=5
| Type | Method | Mean | Min | Max | Ratio | Payload | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|
| FixedSizeTest | NinoDeserializeFixedClass | 7.8677 ns | 7.7746 ns | 7.9468 ns | 1.00 | - | 0.0055 | - | - | 56 B | 1.00 |
| FixedSizeTest | MemoryPackDeserializeFixedClass | 18.5890 ns | 18.4678 ns | 18.7757 ns | 2.36 | - | 0.0074 | - | - | 56 B | 1.00 |
| FixedSizeTest | NinoSerializeFixedClass | 9.9290 ns | 9.8560 ns | 10.0861 ns | 1.00 | 41 B | 0.0070 | - | - | 72 B | 1.00 |
| FixedSizeTest | MemoryPackSerializeFixedClass | 18.5086 ns | 18.4290 ns | 18.6789 ns | 1.86 | 41 B | 0.0094 | - | - | 72 B | 1.00 |
| FixedSizeTest | NinoDeserializeFixedClasses | 1,037.0787 ns | 1,031.1224 ns | 1,047.5445 ns | 1.00 | - | 0.5627 | 0.0038 | - | 6424 B | 1.00 |
| FixedSizeTest | MemoryPackDeserializeFixedClasses | 1,156.3644 ns | 1,150.4561 ns | 1,163.2933 ns | 1.12 | - | 0.5531 | 0.0038 | - | 6424 B | 1.00 |
| FixedSizeTest | NinoSerializeFixedClasses | 634.2620 ns | 629.8787 ns | 638.8735 ns | 1.00 | 4,104 B | 0.3643 | - | - | 4128 B | 1.00 |
| FixedSizeTest | MemoryPackSerializeFixedClasses | 1,430.5988 ns | 1,425.7744 ns | 1,435.3977 ns | 2.26 | 4,104 B | 0.5341 | - | - | 4128 B | 1.00 |
| FixedSizeTest | NinoDeserializeFixedStruct | 0.0400 ns | 0.0380 ns | 0.0435 ns | 1.00 | - | - | - | - | - | NA |
| FixedSizeTest | MemoryPackDeserializeFixedStruct | 0.3859 ns | 0.3827 ns | 0.3884 ns | 9.65 | - | - | - | - | - | NA |
| FixedSizeTest | NinoSerializeFixedStruct | 8.9845 ns | 8.9216 ns | 9.0565 ns | 1.00 | 40 B | 0.0062 | - | - | 64 B | 1.00 |
| FixedSizeTest | MemoryPackSerializeFixedStruct | 12.9931 ns | 12.8233 ns | 13.1301 ns | 1.45 | 40 B | 0.0063 | - | - | 64 B | 1.00 |
| ReferenceTest | NinoDeserializeGraph | 5,158.9772 ns | 5,121.1479 ns | 5,219.9410 ns | 1.00 | - | 1.3885 | 0.0305 | - | 14104 B | 1.00 |
| ReferenceTest | MemoryPackDeserializeGraph | 16,532.5873 ns | 16,298.6544 ns | 16,685.2753 ns | 3.20 | - | 2.2278 | 0.1221 | 0.0305 | - | 0.00 |
| ReferenceTest | NinoSerializeGraph | 4,473.4180 ns | 4,462.1990 ns | 4,491.8118 ns | 1.00 | 5,948 B | - | - | - | - | NA |
| ReferenceTest | MemoryPackSerializeGraph | 23,338.9246 ns | 23,298.9533 ns | 23,380.8504 ns | 5.22 | 5,584 B | - | - | - | - | NA |
| PooledGraphTest | NinoLeavesNew | 3,289.4191 ns | 3,272.7652 ns | 3,307.7148 ns | 1.00 | - | 1.2627 | 0.0229 | - | 13656 B | 1.00 |
| PooledGraphTest | NinoLeavesPooledElements | 2,273.2328 ns | 2,218.7624 ns | 2,328.3928 ns | 0.69 | - | 0.0916 | 0.0038 | 0.0038 | - | 0.00 |
| PooledGraphTest | NinoLeavesInPlace | 467.5558 ns | 467.1040 ns | 467.8376 ns | 0.14 | - | - | - | - | - | 0.00 |
| PooledGraphTest | MemoryPackLeavesNew | 3,329.5385 ns | 3,311.0686 ns | 3,348.9778 ns | 1.01 | - | 1.2817 | 0.0229 | - | 13656 B | 1.00 |
| PooledGraphTest | MemoryPackLeavesOverwrite | 3,749.3226 ns | 3,734.6867 ns | 3,762.5475 ns | 1.14 | - | 1.2589 | 0.0114 | - | 12800 B | 0.94 |
| PooledGraphTest | NinoNodeNew | 535.7398 ns | 532.7129 ns | 538.2036 ns | 1.00 | - | 0.2117 | - | - | 2192 B | 1.00 |
| PooledGraphTest | NinoNodePooled | 185.1691 ns | 184.7540 ns | 185.5947 ns | 0.35 | - | - | - | - | - | 0.00 |
| PooledGraphTest | MemoryPackNodeNew | 548.0421 ns | 543.6454 ns | 551.2459 ns | 1.02 | - | 0.2136 | - | - | 2192 B | 1.00 |
| PooledGraphTest | MemoryPackNodeOverwrite | 426.7869 ns | 423.3146 ns | 430.3461 ns | 0.80 | - | 0.1259 | 0.0005 | 0.0005 | - | 0.00 |
| PooledGraphTest | NinoPlainNew | 2,529.8096 ns | 2,516.0765 ns | 2,543.3843 ns | 1.00 | - | 1.0986 | 0.0153 | - | 12856 B | 1.00 |
| PooledGraphTest | MemoryPackPlainNew | 3,355.9479 ns | 3,340.8313 ns | 3,379.2838 ns | 1.33 | - | 1.2245 | 0.0191 | - | 12856 B | 1.00 |
| PolymorphicTest | NinoDeserializePolymorphicClassArray | 265,103.5561 ns | 259,338.8223 ns | 274,028.4717 ns | 1.00 | - | 30.7617 | 14.6484 | - | 745624 B | 1.00 |
| PolymorphicTest | MemoryPackDeserializePolymorphicClassArray | 347,955.3964 ns | 339,795.7383 ns | 358,903.6733 ns | 1.31 | - | 32.7148 | 15.1367 | - | 745624 B | 1.00 |
| PolymorphicTest | MessagePackDeserializePolymorphicClassArray | 1,464,538.3699 ns | 1,444,904.1777 ns | 1,477,588.2598 ns | 5.53 | - | 42.9688 | 19.5313 | - | 1162424 B | 1.56 |
| PolymorphicTest | NinoSerializePolymorphicClassArray | 59,473.1186 ns | 59,253.0259 ns | 59,846.2380 ns | 1.00 | 397,304 B | - | - | - | - | NA |
| PolymorphicTest | MemoryPackSerializePolymorphicClassArray | 229,291.9703 ns | 228,275.4678 ns | 230,659.7349 ns | 3.86 | 384,404 B | - | - | - | - | NA |
| PolymorphicTest | MessagePackSerializePolymorphicClassArray | 749,221.4043 ns | 747,933.2837 ns | 750,250.6382 ns | 12.60 | 487,103 B | - | - | - | - | NA |
| PolymorphicTest | NinoDeserializePolymorphicClass | 17,625.4096 ns | 17,546.0992 ns | 17,715.2197 ns | 1.00 | - | 7.2937 | 1.1292 | - | 79688 B | 1.00 |
| PolymorphicTest | MemoryPackDeserializePolymorphicClass | 24,851.0897 ns | 24,659.2137 ns | 25,013.9678 ns | 1.41 | - | 6.9580 | 1.0071 | - | 79688 B | 1.00 |
| PolymorphicTest | MessagePackDeserializePolymorphicClass | 177,516.1568 ns | 175,609.2214 ns | 178,929.7812 ns | 10.07 | - | 7.5684 | 1.2207 | - | 83856 B | 1.05 |
| PolymorphicTest | NinoSerializePolymorphicClass | 6,619.1815 ns | 6,600.9616 ns | 6,640.6761 ns | 1.00 | 53,789 B | - | - | - | - | NA |
| PolymorphicTest | MemoryPackSerializePolymorphicClass | 21,311.7664 ns | 21,263.1375 ns | 21,403.4323 ns | 3.22 | 51,760 B | - | - | - | - | NA |
| PolymorphicTest | MessagePackSerializePolymorphicClass | 106,041.6142 ns | 105,780.3676 ns | 106,454.7955 ns | 16.02 | 66,859 B | - | - | - | - | NA |
| PolymorphicTest | NinoDeserializePolymorphicFooArray | 16,726.2244 ns | 16,568.9104 ns | 16,859.3538 ns | 1.00 | - | 6.8665 | 0.8545 | - | 76024 B | 1.00 |
| PolymorphicTest | MemoryPackDeserializePolymorphicFooArray | 24,394.2729 ns | 23,997.1513 ns | 24,782.4669 ns | 1.46 | - | 6.8970 | 1.0376 | - | 76024 B | 1.00 |
| PolymorphicTest | MessagePackDeserializePolymorphicFooArray | 174,578.9623 ns | 173,645.8153 ns | 175,608.2740 ns | 10.44 | - | 7.0801 | 0.7324 | - | 76024 B | 1.00 |
| PolymorphicTest | NinoSerializePolymorphicFooArray | 5,685.1798 ns | 5,674.0356 ns | 5,701.5150 ns | 1.00 | 52,404 B | - | - | - | - | NA |
| PolymorphicTest | MemoryPackSerializePolymorphicFooArray | 21,510.5921 ns | 21,228.0417 ns | 21,843.4452 ns | 3.78 | 50,404 B | - | - | - | - | NA |
| PolymorphicTest | MessagePackSerializePolymorphicFooArray | 98,091.2565 ns | 97,942.0510 ns | 98,253.8026 ns | 17.25 | 65,203 B | - | - | - | - | NA |
| PooledTest | NinoDeserializeNew | 446.9862 ns | 441.2561 ns | 452.6360 ns | 1.00 | - | 0.2246 | 0.0005 | - | 2536 B | 1.00 |
| PooledTest | NinoDeserializePooled | 219.9710 ns | 219.5890 ns | 220.3791 ns | 0.49 | - | - | - | - | - | 0.00 |
| PooledTest | MemoryPackDeserializeNew | 577.7865 ns | 573.2164 ns | 582.4726 ns | 1.29 | - | 0.2413 | - | - | 2536 B | 1.00 |
| PooledTest | MemoryPackDeserializeOverwrite | 486.5314 ns | 480.7762 ns | 494.7757 ns | 1.09 | - | 0.1421 | - | - | 1080 B | 0.43 |
| SimpleTest | NinoDeserializeSimpleClass | 444.3269 ns | 442.3913 ns | 446.6616 ns | 1.00 | - | 0.2227 | 0.0005 | - | 2528 B | 1.00 |
| SimpleTest | MemoryPackDeserializeSimpleClass | 576.7375 ns | 569.9444 ns | 583.8567 ns | 1.30 | - | 0.2422 | - | - | 2528 B | 1.00 |
| SimpleTest | MessagePackDeserializeSimpleClass | 1,536.7755 ns | 1,505.9324 ns | 1,563.3735 ns | 3.46 | - | 0.3452 | 0.0038 | 0.0038 | - | 0.00 |
| SimpleTest | NinoSerializeSimpleClass | 87.7083 ns | 87.4232 ns | 87.9941 ns | 1.00 | 1,150 B | - | - | - | - | NA |
| SimpleTest | MemoryPackSerializeSimpleClass | 296.4231 ns | 295.9283 ns | 297.0738 ns | 3.38 | 1,148 B | - | - | - | - | NA |
| SimpleTest | MessagePackSerializeSimpleClass | 765.6256 ns | 762.6884 ns | 768.2087 ns | 8.73 | 1,112 B | - | - | - | - | NA |
| SimpleTest | NinoDeserializeSimpleClasses | 45,414.5864 ns | 45,219.9960 ns | 45,741.9126 ns | 1.00 | - | 18.0054 | 5.7373 | - | 253624 B | 1.00 |
| SimpleTest | MemoryPackDeserializeSimpleClasses | 57,237.2335 ns | 56,880.3178 ns | 57,575.4496 ns | 1.26 | - | 18.0054 | 5.7983 | - | 253624 B | 1.00 |
| SimpleTest | MessagePackDeserializeSimpleClasses | 168,744.5396 ns | 167,250.6846 ns | 171,125.4050 ns | 3.72 | - | 18.0664 | 5.6152 | - | 253624 B | 1.00 |
| SimpleTest | NinoSerializeSimpleClasses | 9,965.3545 ns | 9,952.9093 ns | 9,997.1304 ns | 1.00 | 115,004 B | - | - | - | - | NA |
| SimpleTest | MemoryPackSerializeSimpleClasses | 31,366.3461 ns | 31,249.5411 ns | 31,475.2836 ns | 3.15 | 114,804 B | - | - | - | - | NA |
| SimpleTest | MessagePackSerializeSimpleClasses | 77,900.3999 ns | 77,806.4708 ns | 78,047.0628 ns | 7.82 | 111,203 B | - | - | - | - | NA |
| SimpleTest | NinoDeserializeSimpleStruct | 0.3850 ns | 0.3810 ns | 0.3890 ns | 1.00 | - | - | - | - | - | NA |
| SimpleTest | MemoryPackDeserializeSimpleStruct | 0.3912 ns | 0.3887 ns | 0.3955 ns | 1.02 | - | - | - | - | - | NA |
| SimpleTest | MessagePackDeserializeSimpleStruct | 59.0122 ns | 58.9274 ns | 59.1240 ns | 153.28 | - | - | - | - | - | NA |
| SimpleTest | NinoSerializeSimpleStruct | 0.8201 ns | 0.8162 ns | 0.8229 ns | 1.00 | 12 B | - | - | - | - | NA |
| SimpleTest | MemoryPackSerializeSimpleStruct | 2.7830 ns | 2.7752 ns | 2.7939 ns | 3.39 | 12 B | - | - | - | - | NA |
| SimpleTest | MessagePackSerializeSimpleStruct | 40.9850 ns | 40.9151 ns | 41.1014 ns | 49.97 | 16 B | - | - | - | - | NA |
| SimpleTest | NinoDeserializeSimpleStructs | 86.5970 ns | 86.1239 ns | 87.1409 ns | 1.00 | - | 0.1214 | - | - | 1224 B | 1.00 |
| SimpleTest | MemoryPackDeserializeSimpleStructs | 97.5671 ns | 96.3554 ns | 98.5384 ns | 1.13 | - | 0.1214 | - | - | 1224 B | 1.00 |
| SimpleTest | MessagePackDeserializeSimpleStructs | 2,863.2573 ns | 2,845.8720 ns | 2,878.1186 ns | 33.06 | - | 0.1602 | - | - | 1224 B | 1.00 |
| SimpleTest | NinoSerializeSimpleStructs | 14.1736 ns | 14.1381 ns | 14.2261 ns | 1.00 | 1,204 B | - | - | - | - | NA |
| SimpleTest | MemoryPackSerializeSimpleStructs | 14.6364 ns | 14.6033 ns | 14.6563 ns | 1.03 | 1,204 B | - | - | - | - | NA |
| SimpleTest | MessagePackSerializeSimpleStructs | 2,702.3696 ns | 2,696.5198 ns | 2,712.5692 ns | 190.66 | 1,603 B | - | - | - | - | NA |
| VersionTolerantTest | NinoDeserializeTolerantClass | 431.2923 ns | 427.4209 ns | 435.9873 ns | 1.00 | - | 0.2208 | 0.0005 | - | 2528 B | 1.00 |
| VersionTolerantTest | MemoryPackDeserializeTolerantClass | 629.2733 ns | 623.3308 ns | 636.1892 ns | 1.46 | - | 0.2432 | - | - | 2528 B | 1.00 |
| VersionTolerantTest | NinoSerializeTolerantClass | 85.9152 ns | 85.5378 ns | 86.4299 ns | 1.00 | 1,154 B | - | - | - | - | NA |
| VersionTolerantTest | MemoryPackSerializeTolerantClass | 375.7570 ns | 374.6421 ns | 376.5347 ns | 4.37 | 1,164 B | - | - | - | - | NA |
| VersionTolerantTest | NinoDeserializeTolerantClasses | 46,038.1030 ns | 45,621.7922 ns | 46,503.4866 ns | 1.00 | - | 18.1274 | 5.3101 | - | 253624 B | 1.00 |
| VersionTolerantTest | MemoryPackDeserializeTolerantClasses | 64,358.4119 ns | 63,822.9777 ns | 64,990.1912 ns | 1.40 | - | 17.8223 | 5.4932 | - | 253624 B | 1.00 |
| VersionTolerantTest | NinoSerializeTolerantClasses | 9,637.6467 ns | 9,615.7467 ns | 9,676.8885 ns | 1.00 | 115,404 B | - | - | - | - | NA |
| VersionTolerantTest | MemoryPackSerializeTolerantClasses | 39,165.1600 ns | 39,035.5732 ns | 39,342.9345 ns | 4.06 | 116,404 B | - | - | - | - | NA |
| SimpleTest | NinoDeserializeVectors | 106,236.6148 ns | 101,511.4028 ns | 113,078.5926 ns | 1.00 | - | 15.7471 | 15.7471 | 15.7471 | 160031 B | 1.00 |
| SimpleTest | MemoryPackDeserializeVectors | 109,025.9715 ns | 102,681.1883 ns | 117,966.7514 ns | 1.03 | - | 16.3574 | 16.3574 | 16.3574 | 160032 B | 1.00 |
| SimpleTest | MessagePackDeserializeVectors | 303,525.6537 ns | 292,831.2266 ns | 313,891.6284 ns | 2.86 | - | 15.6250 | 15.6250 | 15.6250 | 160031 B | 1.00 |
| SimpleTest | NinoSerializeVectors | 3,899.3720 ns | 3,896.1209 ns | 3,905.1225 ns | 1.00 | 160,004 B | - | - | - | - | NA |
| SimpleTest | MemoryPackSerializeVectors | 3,905.4954 ns | 3,899.4798 ns | 3,911.5455 ns | 1.00 | 160,004 B | - | - | - | - | NA |
| SimpleTest | MessagePackSerializeVectors | 116,696.6161 ns | 116,539.3327 ns | 116,848.4871 ns | 29.93 | 210,003 B | - | - | - | - | NA |
Benchmark generated automatically on 2026-10-17 15:25:26 UTC