Skip to content

v4.0.0-rc.3

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 13:34
· 1228 commits to main since this release

Install: dotnet add package Nino --version 4.0.0-rc.3 (Unity package: 4.0.0-preview.203)

Wire format

Only these write different bytes than v4.0.0-rc.2:

  • A [NinoType] struct with [StructLayout(LayoutKind.Explicit)] from another assembly is written member by member in every build, as it already was when seen as source. From a package or a command-line build, rc.2 copied it as raw memory (#202).

New

  • [assembly: NinoTypeLayout] shows the bytes of every value copied as raw memory: its size and each field's offset, also inside structs that are not [NinoType]s, so changing a field, Pack, Size or [FieldOffset] changes the layout. Raw members now read raw(n){name:type@offset:encoding,...}, and the members of a raw type are its raw encoding (#202). Layout Metadata
  • NinoSerializer.Serialize<T>(in T value) takes the value by reference, so serializing a large struct read from a field no longer copies it to the stack first. Source compatible; a method group converted to Func<T, byte[]> needs a lambda instead.

Fixes

  • The generator reads [StructLayout] and [FieldOffset] of structs from another assembly, which Roslyn does not show as attributes. A struct with explicit field offsets from a package could be copied as raw memory, whose size differs between 64-bit and 32-bit runtimes (#202).

Every change between v4 releases: Changelog.

What's Changed since v4.0.0-rc.2

6 commits

📦 Runtime, generator and analyzer

🔧 Build, CI and dependencies

Contributors

Thanks to everyone who contributed to this release: @JasonXuDeveloper

Full Changelog: v4.0.0-rc.2...v4.0.0-rc.3

📊 v3 3.3.13 vs v4 (same machine)

Nino v3 3.3.13 (NuGet) against v4.0.0-rc.3, 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 - 11.44 ns - 26.99 ns -
SerializeFixedClasses - 825.19 ns - 1.92 μs -
SerializeFixedStruct - 9.86 ns - 10.53 ns -
SerializeGraph - 5.63 μs - 30.77 μs -
SerializePolymorphicClassArray - 76.71 μs - 347.94 μs -
SerializePolymorphicClass - 6.56 μs - 38.11 μs -
SerializePolymorphicFooArray - 6.66 μs - 32.54 μs -
SerializeSimpleClass 180.80 ns 106.89 ns 0.59x 385.68 ns 395.15 ns
SerializeSimpleClasses 23.58 μs 12.47 μs 0.53x 38.58 μs 56.75 μs
SerializeSimpleStruct 3.51 ns 4.71 ns 1.34x 4.93 ns 5.22 ns
SerializeSimpleStructs 22.71 ns 18.18 ns 0.80x 21.67 ns 21.99 ns
SerializeTolerantClass - 129.70 ns - 506.90 ns -
SerializeTolerantClasses - 12.46 μs - 51.39 μs -
SerializeVectors 3.40 μs 3.31 μs 0.97x 3.29 μs 3.20 μs
DeserializeFixedClass - 10.27 ns - 26.25 ns -
DeserializeFixedClasses - 1.25 μs - 1.39 μs -
DeserializeFixedStruct - 0.29 ns - 1.25 ns -
DeserializeGraph - 7.00 μs - 20.90 μs -
LeavesNew - 3.42 μs - 3.87 μs -
LeavesPooledElements - 3.09 μs - - -
LeavesInPlace - 491.51 ns - - -
NodeNew - 577.54 ns - 669.59 ns -
NodePooled - 225.00 ns - - -
PlainNew - 2.97 μs - 4.01 μs -
DeserializePolymorphicClassArray - 259.05 μs - 386.73 μs -
DeserializePolymorphicClass - 16.95 μs - 29.64 μs -
DeserializePolymorphicFooArray - 15.27 μs - 28.36 μs -
DeserializeNew - 515.95 ns - 747.52 ns -
DeserializePooled - 285.05 ns - - -
DeserializeSimpleClass 539.17 ns 524.91 ns 0.97x 791.29 ns 791.43 ns
DeserializeSimpleClasses 62.95 μs 54.97 μs 0.87x 75.47 μs 75.03 μs
DeserializeSimpleStruct 0.77 ns 0.72 ns 0.93x 1.46 ns 1.47 ns
DeserializeSimpleStructs 87.55 ns 86.91 ns 0.99x 98.44 ns 99.63 ns
DeserializeTolerantClass - 484.16 ns - 757.28 ns -
DeserializeTolerantClasses - 50.13 μs - 81.64 μs -
DeserializeVectors 125.09 μs 123.03 μs 0.98x 118.64 μs 121.72 μs

v4 vs v3 = mean(v4) / mean(v3); below 1.00x means v4 is faster.
MemoryPack drift (v4 run / v3 run): min 0.68x, max 1.03x (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)
AMD EPYC 7763 2.59GHz, 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-v3
  ShortRun-.NET 10.0 : .NET 10.0.13 (10.0.13, 10.0.1326.50504), X64 RyuJIT x86-64-v3

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 539.1745 ns 525.8775 ns 557.6440 ns 1.00 - 0.2232 - - 2552 B 1.00
MemoryPackDeserializeSimpleClass 791.4254 ns 782.5133 ns 803.6820 ns 1.47 - 0.2460 - - 2528 B 0.99
MessagePackDeserializeSimpleClass 1,818.5518 ns 1,802.6458 ns 1,834.3951 ns 3.37 - 0.3319 0.0019 - 2528 B 0.99
NinoSerializeSimpleClass 180.7997 ns 180.4435 ns 181.2094 ns 1.00 1.13KB - - - - NA
MemoryPackSerializeSimpleClass 395.1499 ns 394.4798 ns 396.9213 ns 2.19 1.12KB - - - - NA
MessagePackSerializeSimpleClass 1,158.8586 ns 1,149.5939 ns 1,182.8563 ns 6.41 1.09KB - - - - NA
NinoDeserializeSimpleClasses 62,954.8765 ns 60,595.9494 ns 65,918.5325 ns 1.00 - 18.5547 5.8594 - 262424 B 1.00
MemoryPackDeserializeSimpleClasses 75,029.7935 ns 74,049.4639 ns 76,177.6270 ns 1.19 - 17.5781 5.6152 - 253624 B 0.97
MessagePackDeserializeSimpleClasses 188,140.4509 ns 186,175.6875 ns 192,263.7874 ns 2.99 - 18.3105 5.6152 - 253624 B 0.97
NinoSerializeSimpleClasses 23,580.4184 ns 23,539.7456 ns 23,646.6360 ns 1.00 112.5KB - - - - NA
MemoryPackSerializeSimpleClasses 56,749.6765 ns 56,691.3507 ns 56,862.3419 ns 2.41 112.11KB - - - - NA
MessagePackSerializeSimpleClasses 112,794.2754 ns 112,382.2236 ns 113,640.8375 ns 4.78 108.6KB - - - - NA
NinoDeserializeSimpleStruct 0.7674 ns 0.7630 ns 0.7833 ns 1.00 - - - - - NA
MemoryPackDeserializeSimpleStruct 1.4698 ns 1.4631 ns 1.4802 ns 1.92 - - - - - NA
MessagePackDeserializeSimpleStruct 76.9737 ns 76.8155 ns 77.4138 ns 100.31 - - - - - NA
NinoSerializeSimpleStruct 3.5094 ns 3.4992 ns 3.5200 ns 1.00 12B - - - - NA
MemoryPackSerializeSimpleStruct 5.2197 ns 5.2047 ns 5.2523 ns 1.49 12B - - - - NA
MessagePackSerializeSimpleStruct 58.1284 ns 58.0794 ns 58.1831 ns 16.56 16B - - - - NA
NinoDeserializeSimpleStructs 87.5522 ns 86.3317 ns 90.3648 ns 1.00 - 0.1214 - - 1224 B 1.00
MemoryPackDeserializeSimpleStructs 99.6336 ns 99.1300 ns 100.2531 ns 1.14 - 0.1214 - - 1224 B 1.00
MessagePackDeserializeSimpleStructs 3,362.8607 ns 3,353.1814 ns 3,379.3586 ns 38.42 - 0.1907 0.0038 0.0038 - 0.00
NinoSerializeSimpleStructs 22.7103 ns 22.6413 ns 22.7714 ns 1.00 1.18KB - - - - NA
MemoryPackSerializeSimpleStructs 21.9937 ns 21.9397 ns 22.0704 ns 0.97 1.18KB - - - - NA
MessagePackSerializeSimpleStructs 3,622.9763 ns 3,615.6915 ns 3,632.7937 ns 159.53 1.57KB - - - - NA
NinoDeserializeVectors 125,090.0080 ns 111,358.4496 ns 135,519.4342 ns 1.00 - 17.3340 17.3340 17.3340 160028 B 1.00
MemoryPackDeserializeVectors 121,719.4107 ns 116,371.1533 ns 128,941.2471 ns 0.98 - 17.3340 17.3340 17.3340 160028 B 1.00
MessagePackDeserializeVectors 386,144.8009 ns 368,845.1074 ns 398,890.8823 ns 3.10 - 18.0664 18.0664 18.0664 160030 B 1.00
NinoSerializeVectors 3,395.0833 ns 3,386.5401 ns 3,405.1695 ns 1.00 156.25KB - - - - NA
MemoryPackSerializeVectors 3,196.7077 ns 3,194.5389 ns 3,202.7027 ns 0.94 156.25KB - - - - NA
MessagePackSerializeVectors 165,294.5013 ns 164,919.5762 ns 166,389.8538 ns 48.69 205.08KB - - - - NA

📊 Performance Report

Click to expand benchmark results

BenchmarkDotNet v0.15.8, Linux Ubuntu 26.04.1 LTS (Resolute Raccoon)
AMD EPYC 7763 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-v3
  ShortRun-.NET 10.0 : .NET 10.0.13 (10.0.13, 10.0.1326.50504), X64 RyuJIT x86-64-v3

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 10.2685 ns 9.5797 ns 10.8149 ns 1.00 - 0.0052 - - 56 B 1.00
FixedSizeTest MemoryPackDeserializeFixedClass 26.2468 ns 25.8802 ns 26.8918 ns 2.56 - 0.0074 - - 56 B 1.00
FixedSizeTest NinoSerializeFixedClass 11.4426 ns 11.1073 ns 11.9217 ns 1.00 41 B 0.0060 - - 72 B 1.00
FixedSizeTest MemoryPackSerializeFixedClass 26.9887 ns 26.4153 ns 27.5875 ns 2.36 41 B 0.0071 - - 72 B 1.00
FixedSizeTest NinoDeserializeFixedClasses 1,254.1323 ns 1,226.4364 ns 1,308.2103 ns 1.00 - 0.5379 0.0038 - 6424 B 1.00
FixedSizeTest MemoryPackDeserializeFixedClasses 1,387.7008 ns 1,331.1118 ns 1,480.1019 ns 1.11 - 0.5569 0.0038 - 6424 B 1.00
FixedSizeTest NinoSerializeFixedClasses 825.1911 ns 812.7566 ns 845.6565 ns 1.00 4,104 B 0.3490 - - 4128 B 1.00
FixedSizeTest MemoryPackSerializeFixedClasses 1,916.0670 ns 1,891.4067 ns 1,948.4130 ns 2.32 4,104 B 0.4005 - - 4128 B 1.00
FixedSizeTest NinoDeserializeFixedStruct 0.2895 ns 0.2822 ns 0.3042 ns 1.00 - - - - - NA
FixedSizeTest MemoryPackDeserializeFixedStruct 1.2500 ns 1.2454 ns 1.2561 ns 4.32 - - - - - NA
FixedSizeTest NinoSerializeFixedStruct 9.8599 ns 9.6533 ns 10.2232 ns 1.00 40 B 0.0059 - - 64 B 1.00
FixedSizeTest MemoryPackSerializeFixedStruct 10.5273 ns 9.9554 ns 11.1514 ns 1.07 40 B 0.0057 - - 64 B 1.00
ReferenceTest NinoDeserializeGraph 7,002.0688 ns 6,871.2588 ns 7,088.2655 ns 1.00 - 1.3885 0.0305 - 14104 B 1.00
ReferenceTest MemoryPackDeserializeGraph 20,904.1601 ns 20,601.7972 ns 21,025.1591 ns 2.99 - 1.4648 0.0610 0.0305 - 0.00
ReferenceTest NinoSerializeGraph 5,626.7143 ns 5,584.1506 ns 5,751.9855 ns 1.00 5,948 B - - - - NA
ReferenceTest MemoryPackSerializeGraph 30,771.5813 ns 30,666.7894 ns 30,934.7155 ns 5.47 5,584 B - - - - NA
PooledGraphTest NinoLeavesNew 3,424.9676 ns 3,236.1155 ns 3,609.3615 ns 1.00 - 1.1711 0.0191 - 13656 B 1.00
PooledGraphTest NinoLeavesPooledElements 3,092.0084 ns 3,077.5970 ns 3,124.2380 ns 0.90 - 0.1106 - - 856 B 0.06
PooledGraphTest NinoLeavesInPlace 491.5135 ns 487.7659 ns 493.0379 ns 0.14 - - - - - 0.00
PooledGraphTest MemoryPackLeavesNew 3,869.3213 ns 3,827.1634 ns 3,921.6104 ns 1.13 - 1.2817 0.0229 - 13656 B 1.00
PooledGraphTest MemoryPackLeavesOverwrite 5,253.2534 ns 5,174.9049 ns 5,396.6413 ns 1.54 - 1.2589 0.0076 - 12800 B 0.94
PooledGraphTest NinoNodeNew 577.5398 ns 556.5231 ns 596.0135 ns 1.00 - 0.2060 - - 2192 B 1.00
PooledGraphTest NinoNodePooled 225.0003 ns 224.6259 ns 225.6466 ns 0.39 - - - - - 0.00
PooledGraphTest MemoryPackNodeNew 669.5888 ns 651.2939 ns 679.5042 ns 1.16 - 0.2146 - - 2192 B 1.00
PooledGraphTest MemoryPackNodeOverwrite 599.0391 ns 590.3100 ns 611.0105 ns 1.04 - 0.1345 - - 1024 B 0.47
PooledGraphTest NinoPlainNew 2,971.0173 ns 2,863.3556 ns 3,054.0120 ns 1.00 - 1.0376 0.0267 - 12856 B 1.00
PooledGraphTest MemoryPackPlainNew 4,012.2591 ns 3,979.1945 ns 4,042.9128 ns 1.35 - 1.2207 0.0229 - 12856 B 1.00
PolymorphicTest NinoDeserializePolymorphicClassArray 259,048.9684 ns 253,905.4775 ns 269,073.1099 ns 1.00 - 30.7617 13.1836 - 745624 B 1.00
PolymorphicTest MemoryPackDeserializePolymorphicClassArray 386,728.7118 ns 378,740.4500 ns 398,947.3479 ns 1.49 - 31.7383 14.6484 - 745624 B 1.00
PolymorphicTest MessagePackDeserializePolymorphicClassArray 1,734,220.6836 ns 1,714,566.2812 ns 1,759,621.0547 ns 6.70 - 42.9688 19.5313 - 1162424 B 1.56
PolymorphicTest NinoSerializePolymorphicClassArray 76,710.1462 ns 76,504.8229 ns 77,140.9023 ns 1.00 397,304 B - - - - NA
PolymorphicTest MemoryPackSerializePolymorphicClassArray 347,940.0213 ns 343,455.5562 ns 357,253.4937 ns 4.54 384,404 B - - - - NA
PolymorphicTest MessagePackSerializePolymorphicClassArray 918,981.4348 ns 907,694.3413 ns 934,824.8765 ns 11.98 487,103 B - - - - NA
PolymorphicTest NinoDeserializePolymorphicClass 16,953.9825 ns 16,437.3311 ns 17,583.1497 ns 1.00 - 6.7749 0.9460 - 79688 B 1.00
PolymorphicTest MemoryPackDeserializePolymorphicClass 29,640.0806 ns 29,234.3936 ns 29,817.3289 ns 1.75 - 7.4463 1.1902 - 79688 B 1.00
PolymorphicTest MessagePackDeserializePolymorphicClass 219,227.4916 ns 217,661.9287 ns 221,666.9126 ns 12.94 - 14.4043 2.6855 - 83856 B 1.05
PolymorphicTest NinoSerializePolymorphicClass 6,555.0711 ns 6,549.8734 ns 6,560.5064 ns 1.00 53,789 B - - - - NA
PolymorphicTest MemoryPackSerializePolymorphicClass 38,105.3367 ns 36,601.2180 ns 40,249.0663 ns 5.81 51,760 B - - - - NA
PolymorphicTest MessagePackSerializePolymorphicClass 123,758.2916 ns 123,437.6885 ns 124,198.5996 ns 18.88 66,859 B - - - - NA
PolymorphicTest NinoDeserializePolymorphicFooArray 15,269.4189 ns 14,948.7771 ns 15,790.1055 ns 1.00 - 6.5613 0.8545 - 76024 B 1.00
PolymorphicTest MemoryPackDeserializePolymorphicFooArray 28,357.6889 ns 27,942.0350 ns 29,013.6228 ns 1.86 - 7.2021 1.0071 - 76024 B 1.00
PolymorphicTest MessagePackDeserializePolymorphicFooArray 215,984.3923 ns 214,108.3584 ns 218,138.3699 ns 14.15 - 10.9863 2.1973 0.2441 - 0.00
PolymorphicTest NinoSerializePolymorphicFooArray 6,658.4806 ns 6,648.5596 ns 6,675.8799 ns 1.00 52,404 B - - - - NA
PolymorphicTest MemoryPackSerializePolymorphicFooArray 32,544.5473 ns 32,499.6801 ns 32,637.3989 ns 4.89 50,404 B - - - - NA
PolymorphicTest MessagePackSerializePolymorphicFooArray 119,246.7268 ns 118,774.7721 ns 120,006.7089 ns 17.91 65,203 B - - - - NA
PooledTest NinoDeserializeNew 515.9495 ns 498.4818 ns 551.6444 ns 1.00 - 0.2146 - - 2536 B 1.00
PooledTest NinoDeserializePooled 285.0481 ns 284.6184 ns 285.9831 ns 0.55 - - - - - 0.00
PooledTest MemoryPackDeserializeNew 747.5201 ns 726.9336 ns 779.8845 ns 1.45 - 0.2489 - - 2536 B 1.00
PooledTest MemoryPackDeserializeOverwrite 634.0581 ns 616.6475 ns 652.5271 ns 1.23 - 0.1421 - - 1080 B 0.43
SimpleTest NinoDeserializeSimpleClass 524.9060 ns 503.3392 ns 545.9742 ns 1.00 - 0.2098 - - 2528 B 1.00
SimpleTest MemoryPackDeserializeSimpleClass 791.2875 ns 773.1844 ns 824.6852 ns 1.51 - 0.2441 - - 2528 B 1.00
SimpleTest MessagePackDeserializeSimpleClass 1,897.4974 ns 1,842.2402 ns 1,968.4221 ns 3.62 - 0.3319 - - 2528 B 1.00
SimpleTest NinoSerializeSimpleClass 106.8892 ns 106.6624 ns 107.2499 ns 1.00 1,150 B - - - - NA
SimpleTest MemoryPackSerializeSimpleClass 385.6792 ns 384.9203 ns 386.6010 ns 3.61 1,148 B - - - - NA
SimpleTest MessagePackSerializeSimpleClass 1,128.4843 ns 1,126.3735 ns 1,132.0369 ns 10.56 1,112 B - - - - NA
SimpleTest NinoDeserializeSimpleClasses 54,974.2623 ns 52,249.7043 ns 56,235.7712 ns 1.00 - 17.8833 5.6152 - 253624 B 1.00
SimpleTest MemoryPackDeserializeSimpleClasses 75,469.5279 ns 71,971.6541 ns 78,009.6971 ns 1.37 - 17.5781 5.4932 - 253624 B 1.00
SimpleTest MessagePackDeserializeSimpleClasses 193,767.7275 ns 188,244.0160 ns 198,172.7782 ns 3.53 - 18.5547 5.6152 - 253624 B 1.00
SimpleTest NinoSerializeSimpleClasses 12,470.3743 ns 12,163.5596 ns 12,851.5166 ns 1.00 115,004 B - - - - NA
SimpleTest MemoryPackSerializeSimpleClasses 38,578.7006 ns 38,522.4869 ns 38,613.1440 ns 3.09 114,804 B - - - - NA
SimpleTest MessagePackSerializeSimpleClasses 110,577.9985 ns 110,255.0040 ns 110,674.1385 ns 8.87 111,203 B - - - - NA
SimpleTest NinoDeserializeSimpleStruct 0.7174 ns 0.7129 ns 0.7230 ns 1.00 - - - - - NA
SimpleTest MemoryPackDeserializeSimpleStruct 1.4629 ns 1.4565 ns 1.4751 ns 2.04 - - - - - NA
SimpleTest MessagePackDeserializeSimpleStruct 77.2278 ns 77.0511 ns 77.6084 ns 107.65 - - - - - NA
SimpleTest NinoSerializeSimpleStruct 4.7096 ns 4.7040 ns 4.7137 ns 1.00 12 B - - - - NA
SimpleTest MemoryPackSerializeSimpleStruct 4.9279 ns 4.9190 ns 4.9479 ns 1.05 12 B - - - - NA
SimpleTest MessagePackSerializeSimpleStruct 57.9600 ns 57.9046 ns 58.0147 ns 12.31 16 B - - - - NA
SimpleTest NinoDeserializeSimpleStructs 86.9148 ns 85.1687 ns 88.1994 ns 1.00 - 0.1214 - - 1224 B 1.00
SimpleTest MemoryPackDeserializeSimpleStructs 98.4383 ns 97.0851 ns 99.7108 ns 1.13 - 0.1214 - - 1224 B 1.00
SimpleTest MessagePackDeserializeSimpleStructs 3,417.5674 ns 3,393.9581 ns 3,465.0714 ns 39.33 - 0.1793 0.0038 0.0038 - 0.00
SimpleTest NinoSerializeSimpleStructs 18.1776 ns 18.1191 ns 18.2884 ns 1.00 1,204 B - - - - NA
SimpleTest MemoryPackSerializeSimpleStructs 21.6651 ns 21.5612 ns 21.7475 ns 1.19 1,204 B - - - - NA
SimpleTest MessagePackSerializeSimpleStructs 3,577.5127 ns 3,573.9002 ns 3,583.7001 ns 196.81 1,603 B - - - - NA
VersionTolerantTest NinoDeserializeTolerantClass 484.1642 ns 477.4966 ns 495.7797 ns 1.00 - 0.2098 - - 2528 B 1.00
VersionTolerantTest MemoryPackDeserializeTolerantClass 757.2776 ns 746.3483 ns 774.7480 ns 1.56 - 0.2480 - - 2528 B 1.00
VersionTolerantTest NinoSerializeTolerantClass 129.7017 ns 129.0743 ns 130.4947 ns 1.00 1,154 B - - - - NA
VersionTolerantTest MemoryPackSerializeTolerantClass 506.8982 ns 506.4208 ns 507.5093 ns 3.91 1,164 B - - - - NA
VersionTolerantTest NinoDeserializeTolerantClasses 50,129.9392 ns 49,298.3006 ns 50,744.8070 ns 1.00 - 17.8833 5.5542 - 253624 B 1.00
VersionTolerantTest MemoryPackDeserializeTolerantClasses 81,635.6448 ns 80,663.5094 ns 82,507.9683 ns 1.63 - 17.2119 5.3711 - 253624 B 1.00
VersionTolerantTest NinoSerializeTolerantClasses 12,462.4790 ns 12,420.6280 ns 12,595.1102 ns 1.00 115,404 B - - - - NA
VersionTolerantTest MemoryPackSerializeTolerantClasses 51,394.2034 ns 51,361.2393 ns 51,441.9163 ns 4.12 116,404 B - - - - NA
SimpleTest NinoDeserializeVectors 123,025.4289 ns 115,902.1872 ns 129,728.2682 ns 1.00 - 16.7236 16.7236 16.7236 160033 B 1.00
SimpleTest MemoryPackDeserializeVectors 118,641.1069 ns 112,647.2773 ns 122,545.6609 ns 0.97 - 14.5264 14.5264 14.5264 160028 B 1.00
SimpleTest MessagePackDeserializeVectors 374,780.5771 ns 365,567.3196 ns 388,239.5203 ns 3.05 - 17.0898 17.0898 17.0898 160034 B 1.00
SimpleTest NinoSerializeVectors 3,306.5613 ns 3,299.2709 ns 3,313.3637 ns 1.00 160,004 B - - - - NA
SimpleTest MemoryPackSerializeVectors 3,285.2044 ns 3,280.1836 ns 3,295.0524 ns 0.99 160,004 B - - - - NA
SimpleTest MessagePackSerializeVectors 165,364.0805 ns 165,201.0515 ns 165,589.4927 ns 50.01 210,003 B - - - - NA

Benchmark generated automatically on 2026-10-17 14:12:16 UTC