Skip to content

v4.0.0-rc.2

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 11:23
· 1221 commits to main since this release

Install: dotnet add package Nino --version 4.0.0-rc.2 (Unity package: 4.0.0-preview.202)

Wire format

Only these types write different bytes than with rc.1:

  • A [NinoType] struct of another assembly whose members are auto-properties (a positional record struct, for
    example) is now copied as raw memory in every build. rc.1 did so when the struct was seen as source (the IDE, a
    project reference), but wrote it member by member from a package or a command-line build. A struct, array or list
    holding such a struct can therefore differ from an rc.1 package or command-line build where the struct has padding
    (#200).
  • nint and nuint members are serialized on netstandard (Unity included), as 8 bytes. rc.1 skipped them there with
    NINO007.

New

  • [assembly: NinoTypeLayout] describes how each [NinoType] is written, for compatibility checks between builds
    (#197). Layout Metadata
  • NinoRegistry.Remove(assembly) clears what Nino cached for an assembly, so a collectible AssemblyLoadContext can
    unload it; on .NET 8 and later this runs when the context unloads (#199).
    Unloading Assemblies
  • new NinoArrayBufferWriter(initialCapacity, pool) rents from your ArrayPool<byte> (#198).

Fixes

  • Two [NinoFormerName] on one type are reported as error NINO026; the generator took the first and
    NinoTypeId.Of threw AmbiguousMatchException (#201).

Every change between v4 releases: Changelog.

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

18 commits

📦 Runtime, generator and analyzer

🐛 Fixes

♻️ Refactoring and cleanup

📖 Documentation

🧪 Tests

🔧 Build, CI and dependencies

Other changes

Contributors

Thanks to everyone who contributed to this release: @JasonXuDeveloper

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

📊 v3 3.3.13 vs v4 (same machine)

Nino v3 3.3.13 (NuGet) against v4.0.0-rc.2, 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 - 8.95 ns - 17.26 ns -
SerializeFixedClasses - 562.88 ns - 1.30 μs -
SerializeFixedStruct - 8.67 ns - 7.05 ns -
SerializeGraph - 4.01 μs - 20.87 μs -
SerializePolymorphicClassArray - 54.26 μs - 206.14 μs -
SerializePolymorphicClass - 5.57 μs - 19.06 μs -
SerializePolymorphicFooArray - 5.30 μs - 18.87 μs -
SerializeSimpleClass 121.08 ns 79.77 ns 0.66x 262.33 ns 262.17 ns
SerializeSimpleClasses 17.40 μs 9.13 μs 0.52x 27.92 μs 27.92 μs
SerializeSimpleStruct 1.28 ns 1.11 ns 0.87x 2.48 ns 2.50 ns
SerializeSimpleStructs 12.28 ns 12.50 ns 1.02x 13.17 ns 14.83 ns
SerializeTolerantClass - 76.76 ns - 333.31 ns -
SerializeTolerantClasses - 8.47 μs - 34.23 μs -
SerializeVectors 3.53 μs 3.50 μs 0.99x 3.49 μs 3.54 μs
DeserializeFixedClass - 7.96 ns - 18.04 ns -
DeserializeFixedClasses - 928.57 ns - 1.04 μs -
DeserializeFixedStruct - 0.31 ns - 0.34 ns -
DeserializeGraph - 4.67 μs - 14.82 μs -
LeavesNew - 2.85 μs - 2.83 μs -
LeavesPooledElements - 2.07 μs - - -
LeavesInPlace - 462.52 ns - - -
NodeNew - 481.05 ns - 490.56 ns -
NodePooled - 171.12 ns - - -
PlainNew - 2.23 μs - 3.03 μs -
DeserializePolymorphicClassArray - 229.91 μs - 304.14 μs -
DeserializePolymorphicClass - 15.99 μs - 22.52 μs -
DeserializePolymorphicFooArray - 14.72 μs - 21.06 μs -
DeserializeNew - 418.04 ns - 520.93 ns -
DeserializePooled - 198.71 ns - - -
DeserializeSimpleClass 414.06 ns 387.21 ns 0.94x 523.76 ns 533.20 ns
DeserializeSimpleClasses 44.05 μs 41.51 μs 0.94x 52.21 μs 51.64 μs
DeserializeSimpleStruct 0.35 ns 0.00 ns 0.01x 0.32 ns 0.33 ns
DeserializeSimpleStructs 79.89 ns 78.58 ns 0.98x 89.00 ns 88.63 ns
DeserializeTolerantClass - 393.59 ns - 569.93 ns -
DeserializeTolerantClasses - 40.06 μs - 56.37 μs -
DeserializeVectors 91.62 μs 92.97 μs 1.01x 94.23 μs 91.63 μs

v4 vs v3 = mean(v4) / mean(v3); below 1.00x means v4 is faster.
MemoryPack drift (v4 run / v3 run): min 0.89x, 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)
INTEL XEON PLATINUM 8573C 3.31GHz, 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 414.0598 ns 404.8757 ns 428.2833 ns 1.00 - 0.2260 - - 2552 B 1.00
MemoryPackDeserializeSimpleClass 533.2007 ns 513.5039 ns 559.7653 ns 1.29 - 0.2422 - - 2528 B 0.99
MessagePackDeserializeSimpleClass 1,424.7749 ns 1,391.5295 ns 1,456.2514 ns 3.44 - 0.3357 0.0038 0.0038 - 0.00
NinoSerializeSimpleClass 121.0786 ns 116.5016 ns 126.8835 ns 1.00 1.13KB - - - - NA
MemoryPackSerializeSimpleClass 262.1720 ns 256.4128 ns 266.7264 ns 2.17 1.12KB - - - - NA
MessagePackSerializeSimpleClass 657.7158 ns 643.9486 ns 669.0529 ns 5.44 1.09KB - - - - NA
NinoDeserializeSimpleClasses 44,052.8141 ns 43,034.4359 ns 45,118.6680 ns 1.00 - 18.8599 5.8594 - 262424 B 1.00
MemoryPackDeserializeSimpleClasses 51,635.5054 ns 50,017.2853 ns 53,419.9848 ns 1.17 - 17.9443 5.4321 - 253624 B 0.97
MessagePackDeserializeSimpleClasses 148,377.1468 ns 145,711.9545 ns 152,337.4623 ns 3.37 - 18.0664 5.1270 - 253624 B 0.97
NinoSerializeSimpleClasses 17,401.4817 ns 16,934.1377 ns 17,877.7633 ns 1.00 112.5KB - - - - NA
MemoryPackSerializeSimpleClasses 27,918.4156 ns 27,640.0568 ns 28,376.9148 ns 1.60 112.11KB - - - - NA
MessagePackSerializeSimpleClasses 67,343.1906 ns 65,655.7316 ns 68,447.7802 ns 3.87 108.6KB - - - - NA
NinoDeserializeSimpleStruct 0.3459 ns 0.3042 ns 0.4255 ns 1.01 - - - - - NA
MemoryPackDeserializeSimpleStruct 0.3327 ns 0.2806 ns 0.3838 ns 0.97 - - - - - NA
MessagePackDeserializeSimpleStruct 51.2057 ns 50.6776 ns 52.2812 ns 149.19 - - - - - NA
NinoSerializeSimpleStruct 1.2802 ns 1.2373 ns 1.3783 ns 1.00 12B - - - - NA
MemoryPackSerializeSimpleStruct 2.4981 ns 2.4235 ns 2.5762 ns 1.95 12B - - - - NA
MessagePackSerializeSimpleStruct 47.7352 ns 47.1755 ns 48.1599 ns 37.33 16B - - - - NA
NinoDeserializeSimpleStructs 79.8855 ns 78.1302 ns 81.2025 ns 1.00 - 0.1214 - - 1224 B 1.00
MemoryPackDeserializeSimpleStructs 88.6263 ns 86.6090 ns 90.1672 ns 1.11 - 0.1214 - - 1224 B 1.00
MessagePackDeserializeSimpleStructs 2,559.9280 ns 2,524.9336 ns 2,592.4386 ns 32.05 - 0.1335 0.0038 0.0038 - 0.00
NinoSerializeSimpleStructs 12.2798 ns 11.9495 ns 12.8369 ns 1.00 1.18KB - - - - NA
MemoryPackSerializeSimpleStructs 14.8344 ns 14.4723 ns 15.2371 ns 1.21 1.18KB - - - - NA
MessagePackSerializeSimpleStructs 2,438.3250 ns 2,376.4934 ns 2,505.9384 ns 198.66 1.57KB - - - - NA
NinoDeserializeVectors 91,619.3605 ns 86,758.1314 ns 99,910.8886 ns 1.00 - 15.2588 15.2588 15.2588 160025 B 1.00
MemoryPackDeserializeVectors 91,629.3846 ns 87,839.6074 ns 96,532.9772 ns 1.00 - 15.6250 15.6250 15.6250 160025 B 1.00
MessagePackDeserializeVectors 267,629.7093 ns 256,361.9722 ns 279,932.0488 ns 2.93 - 18.0664 18.0664 18.0664 160029 B 1.00
NinoSerializeVectors 3,534.9891 ns 3,452.9625 ns 3,646.0755 ns 1.00 156.25KB - - - - NA
MemoryPackSerializeVectors 3,543.2336 ns 3,506.8120 ns 3,575.4920 ns 1.00 156.25KB - - - - NA
MessagePackSerializeVectors 105,737.9612 ns 103,902.0030 ns 107,307.6758 ns 29.92 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.17GHz, 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 Median Min Max Ratio Payload Gen0 Gen1 Gen2 Allocated Alloc Ratio
FixedSizeTest NinoDeserializeFixedClass 7.9603 ns 7.9894 ns 7.7226 ns 8.0931 ns 1.00 - 0.0055 - - 56 B 1.00
FixedSizeTest MemoryPackDeserializeFixedClass 18.0411 ns 17.8965 ns 17.6606 ns 18.7490 ns 2.27 - 0.0110 - - 56 B 1.00
FixedSizeTest NinoSerializeFixedClass 8.9542 ns 8.9104 ns 8.7093 ns 9.2722 ns 1.00 41 B 0.0069 - - 72 B 1.00
FixedSizeTest MemoryPackSerializeFixedClass 17.2610 ns 17.2022 ns 16.8589 ns 17.8277 ns 1.93 41 B 0.0094 - - 72 B 1.00
FixedSizeTest NinoDeserializeFixedClasses 928.5733 ns 927.5320 ns 912.8620 ns 947.1308 ns 1.00 - 0.5636 0.0038 - 6424 B 1.00
FixedSizeTest MemoryPackDeserializeFixedClasses 1,040.6951 ns 1,037.7072 ns 1,015.2863 ns 1,064.8156 ns 1.12 - 0.5703 0.0038 - 6424 B 1.00
FixedSizeTest NinoSerializeFixedClasses 562.8806 ns 561.6380 ns 545.9303 ns 578.5409 ns 1.00 4,104 B 0.3681 - - 4128 B 1.00
FixedSizeTest MemoryPackSerializeFixedClasses 1,296.2371 ns 1,300.2081 ns 1,271.2403 ns 1,311.4495 ns 2.30 4,104 B 0.5341 - - 4128 B 1.00
FixedSizeTest NinoDeserializeFixedStruct 0.3058 ns 0.2908 ns 0.2485 ns 0.3624 ns 1.01 - - - - - NA
FixedSizeTest MemoryPackDeserializeFixedStruct 0.3436 ns 0.3305 ns 0.2728 ns 0.4444 ns 1.14 - - - - - NA
FixedSizeTest NinoSerializeFixedStruct 8.6735 ns 8.6625 ns 8.5078 ns 8.8848 ns 1.00 40 B 0.0062 - - 64 B 1.00
FixedSizeTest MemoryPackSerializeFixedStruct 7.0463 ns 6.9933 ns 6.8496 ns 7.4190 ns 0.81 40 B 0.0061 - - 64 B 1.00
ReferenceTest NinoDeserializeGraph 4,669.2391 ns 4,667.2546 ns 4,603.9427 ns 4,741.5993 ns 1.00 - 1.3885 0.0305 - 14104 B 1.00
ReferenceTest MemoryPackDeserializeGraph 14,815.7443 ns 14,811.0464 ns 14,538.6681 ns 15,397.8316 ns 3.17 - 2.7618 0.1221 - 14104 B 1.00
ReferenceTest NinoSerializeGraph 4,010.8475 ns 4,017.5253 ns 3,946.3285 ns 4,071.4204 ns 1.00 5,948 B - - - - NA
ReferenceTest MemoryPackSerializeGraph 20,872.9824 ns 20,910.9182 ns 20,598.1994 ns 21,208.1867 ns 5.20 5,584 B - - - - NA
PooledGraphTest NinoLeavesNew 2,847.3823 ns 2,849.0897 ns 2,778.6375 ns 2,927.7768 ns 1.00 - 1.2436 0.0267 - 13656 B 1.00
PooledGraphTest NinoLeavesPooledElements 2,065.7212 ns 2,062.7890 ns 2,041.3164 ns 2,102.7987 ns 0.73 - 0.0839 - - 856 B 0.06
PooledGraphTest NinoLeavesInPlace 462.5170 ns 462.0804 ns 458.0175 ns 466.9595 ns 0.16 - - - - - 0.00
PooledGraphTest MemoryPackLeavesNew 2,825.4024 ns 2,824.9509 ns 2,771.4915 ns 2,883.7291 ns 0.99 - 1.2627 0.0267 - 13656 B 1.00
PooledGraphTest MemoryPackLeavesOverwrite 3,521.3842 ns 3,513.4459 ns 3,478.0278 ns 3,562.9564 ns 1.24 - 1.2550 0.0076 - 12800 B 0.94
PooledGraphTest NinoNodeNew 481.0451 ns 477.0926 ns 463.9069 ns 502.2382 ns 1.00 - 0.2098 - - 2192 B 1.00
PooledGraphTest NinoNodePooled 171.1200 ns 171.1183 ns 168.7478 ns 173.4899 ns 0.36 - - - - - 0.00
PooledGraphTest MemoryPackNodeNew 490.5624 ns 489.9887 ns 477.4860 ns 508.8863 ns 1.02 - 0.2108 - - 2192 B 1.00
PooledGraphTest MemoryPackNodeOverwrite 388.2578 ns 387.0091 ns 376.2807 ns 401.1830 ns 0.81 - 0.1254 0.0005 0.0005 - 0.00
PooledGraphTest NinoPlainNew 2,233.4570 ns 2,238.7785 ns 2,205.7916 ns 2,250.7403 ns 1.00 - 1.1520 0.0153 - 12856 B 1.00
PooledGraphTest MemoryPackPlainNew 3,029.4173 ns 3,028.9318 ns 2,980.6007 ns 3,081.5492 ns 1.36 - 1.2283 0.0229 - 12856 B 1.00
PolymorphicTest NinoDeserializePolymorphicClassArray 229,911.4282 ns 229,849.0833 ns 224,049.1558 ns 237,692.4004 ns 1.00 - 30.0293 14.1602 - 745624 B 1.00
PolymorphicTest MemoryPackDeserializePolymorphicClassArray 304,143.3878 ns 304,968.8494 ns 294,739.6599 ns 312,124.0662 ns 1.32 - 32.7148 13.6719 - 745624 B 1.00
PolymorphicTest MessagePackDeserializePolymorphicClassArray 1,311,827.5042 ns 1,301,329.1865 ns 1,277,364.7236 ns 1,356,738.0400 ns 5.71 - 46.8750 21.4844 - 1162424 B 1.56
PolymorphicTest NinoSerializePolymorphicClassArray 54,259.3790 ns 54,046.3712 ns 52,923.7769 ns 56,545.8755 ns 1.00 397,304 B - - - - NA
PolymorphicTest MemoryPackSerializePolymorphicClassArray 206,138.1278 ns 205,682.1726 ns 201,659.4500 ns 209,404.0693 ns 3.80 384,404 B - - - - NA
PolymorphicTest MessagePackSerializePolymorphicClassArray 666,853.0456 ns 665,245.3350 ns 654,737.1445 ns 677,919.3896 ns 12.29 487,103 B - - - - NA
PolymorphicTest NinoDeserializePolymorphicClass 15,989.5236 ns 16,001.8381 ns 15,653.5999 ns 16,549.2442 ns 1.00 - 7.3242 0.9766 - 79688 B 1.00
PolymorphicTest MemoryPackDeserializePolymorphicClass 22,522.4536 ns 22,536.3169 ns 22,209.2340 ns 22,837.9660 ns 1.41 - 7.1411 0.8850 - 79688 B 1.00
PolymorphicTest MessagePackDeserializePolymorphicClass 156,949.2387 ns 157,267.4541 ns 151,490.7922 ns 160,607.3689 ns 9.82 - 11.7188 1.2207 0.2441 - 0.00
PolymorphicTest NinoSerializePolymorphicClass 5,569.7353 ns 5,582.1420 ns 5,484.2558 ns 5,650.9783 ns 1.00 53,789 B - - - - NA
PolymorphicTest MemoryPackSerializePolymorphicClass 19,060.0369 ns 19,103.7304 ns 18,705.3859 ns 19,538.1357 ns 3.42 51,760 B - - - - NA
PolymorphicTest MessagePackSerializePolymorphicClass 91,580.2509 ns 91,173.4438 ns 89,273.8198 ns 94,235.8266 ns 16.44 66,859 B - - - - NA
PolymorphicTest NinoDeserializePolymorphicFooArray 14,724.9818 ns 14,691.5693 ns 14,574.8540 ns 14,919.5461 ns 1.00 - 6.9122 0.9766 - 76024 B 1.00
PolymorphicTest MemoryPackDeserializePolymorphicFooArray 21,061.9120 ns 20,989.5862 ns 20,754.3346 ns 21,468.5655 ns 1.43 - 6.9885 0.9460 - 76024 B 1.00
PolymorphicTest MessagePackDeserializePolymorphicFooArray 156,572.2292 ns 156,957.8685 ns 154,049.3805 ns 158,452.8812 ns 10.63 - 7.0801 0.9766 - 76024 B 1.00
PolymorphicTest NinoSerializePolymorphicFooArray 5,300.5762 ns 5,297.7079 ns 5,237.9107 ns 5,380.6911 ns 1.00 52,404 B - - - - NA
PolymorphicTest MemoryPackSerializePolymorphicFooArray 18,867.5011 ns 18,851.3992 ns 18,587.6191 ns 19,208.4680 ns 3.56 50,404 B - - - - NA
PolymorphicTest MessagePackSerializePolymorphicFooArray 91,155.9083 ns 91,040.4235 ns 90,106.6616 ns 92,922.4644 ns 17.20 65,203 B - - - - NA
PooledTest NinoDeserializeNew 418.0389 ns 418.8265 ns 411.5895 ns 423.4871 ns 1.00 - 0.2227 0.0005 - 2536 B 1.00
PooledTest NinoDeserializePooled 198.7050 ns 198.8570 ns 196.5964 ns 201.4912 ns 0.48 - - - - - 0.00
PooledTest MemoryPackDeserializeNew 520.9262 ns 521.6845 ns 511.5565 ns 534.8488 ns 1.25 - 0.2403 - - 2536 B 1.00
PooledTest MemoryPackDeserializeOverwrite 439.9460 ns 439.2349 ns 429.0195 ns 452.1600 ns 1.05 - 0.2122 0.0005 - 1080 B 0.43
SimpleTest NinoDeserializeSimpleClass 387.2075 ns 385.9861 ns 381.7117 ns 396.3624 ns 1.00 - 0.2151 0.0005 - 2528 B 1.00
SimpleTest MemoryPackDeserializeSimpleClass 523.7597 ns 521.7397 ns 517.0685 ns 534.2052 ns 1.35 - 0.2403 - - 2528 B 1.00
SimpleTest MessagePackDeserializeSimpleClass 1,469.3209 ns 1,463.6979 ns 1,424.4594 ns 1,536.3834 ns 3.80 - 0.4940 0.0038 - 2528 B 1.00
SimpleTest NinoSerializeSimpleClass 79.7686 ns 79.4940 ns 77.0502 ns 83.9615 ns 1.00 1,150 B - - - - NA
SimpleTest MemoryPackSerializeSimpleClass 262.3328 ns 259.9155 ns 256.6254 ns 270.9978 ns 3.29 1,148 B - - - - NA
SimpleTest MessagePackSerializeSimpleClass 671.3877 ns 670.3674 ns 659.2954 ns 683.6789 ns 8.42 1,112 B - - - - NA
SimpleTest NinoDeserializeSimpleClasses 41,509.8315 ns 41,562.7994 ns 40,600.2062 ns 42,526.0764 ns 1.00 - 18.1885 5.6763 - 253624 B 1.00
SimpleTest MemoryPackDeserializeSimpleClasses 52,212.2917 ns 52,124.3447 ns 50,111.2345 ns 54,051.8146 ns 1.26 - 18.1274 5.6763 - 253624 B 1.00
SimpleTest MessagePackDeserializeSimpleClasses 148,895.5901 ns 149,074.7585 ns 145,629.3193 ns 150,509.6360 ns 3.59 - 18.3105 5.3711 - 253624 B 1.00
SimpleTest NinoSerializeSimpleClasses 9,129.9504 ns 9,075.4228 ns 8,898.6148 ns 9,512.6317 ns 1.00 115,004 B - - - - NA
SimpleTest MemoryPackSerializeSimpleClasses 27,923.4676 ns 27,833.4460 ns 27,510.2140 ns 28,577.7197 ns 3.06 114,804 B - - - - NA
SimpleTest MessagePackSerializeSimpleClasses 66,934.5802 ns 66,922.7982 ns 64,995.1449 ns 68,082.3518 ns 7.33 111,203 B - - - - NA
SimpleTest NinoDeserializeSimpleStruct 0.0043 ns 0.0000 ns 0.0000 ns 0.0195 ns ? - - - - - ?
SimpleTest MemoryPackDeserializeSimpleStruct 0.3198 ns 0.3230 ns 0.2660 ns 0.3770 ns ? - - - - - ?
SimpleTest MessagePackDeserializeSimpleStruct 51.3546 ns 51.1451 ns 50.5029 ns 52.4133 ns ? - - - - - ?
SimpleTest NinoSerializeSimpleStruct 1.1129 ns 1.1052 ns 1.0759 ns 1.1958 ns 1.00 12 B - - - - NA
SimpleTest MemoryPackSerializeSimpleStruct 2.4785 ns 2.4807 ns 2.4030 ns 2.5546 ns 2.23 12 B - - - - NA
SimpleTest MessagePackSerializeSimpleStruct 54.6065 ns 54.5511 ns 53.5475 ns 56.0964 ns 49.10 16 B - - - - NA
SimpleTest NinoDeserializeSimpleStructs 78.5848 ns 78.5587 ns 76.7210 ns 80.3427 ns 1.00 - 0.1214 - - 1224 B 1.00
SimpleTest MemoryPackDeserializeSimpleStructs 88.9988 ns 88.3321 ns 87.4238 ns 91.2708 ns 1.13 - 0.1214 - - 1224 B 1.00
SimpleTest MessagePackDeserializeSimpleStructs 2,582.5795 ns 2,578.1190 ns 2,468.9581 ns 2,692.5738 ns 32.87 - 0.1106 - - 1224 B 1.00
SimpleTest NinoSerializeSimpleStructs 12.4968 ns 12.4662 ns 12.2554 ns 12.8028 ns 1.00 1,204 B - - - - NA
SimpleTest MemoryPackSerializeSimpleStructs 13.1690 ns 13.0561 ns 12.8112 ns 13.8962 ns 1.05 1,204 B - - - - NA
SimpleTest MessagePackSerializeSimpleStructs 2,445.7509 ns 2,440.7327 ns 2,367.5460 ns 2,524.0544 ns 195.75 1,603 B - - - - NA
VersionTolerantTest NinoDeserializeTolerantClass 393.5918 ns 394.5995 ns 386.5329 ns 399.9211 ns 1.00 - 0.2289 0.0005 - 2528 B 1.00
VersionTolerantTest MemoryPackDeserializeTolerantClass 569.9317 ns 571.5069 ns 548.2326 ns 593.4835 ns 1.45 - 0.2441 - - 2528 B 1.00
VersionTolerantTest NinoSerializeTolerantClass 76.7601 ns 76.9557 ns 75.0368 ns 77.9081 ns 1.00 1,154 B - - - - NA
VersionTolerantTest MemoryPackSerializeTolerantClass 333.3084 ns 332.5491 ns 328.7759 ns 340.7748 ns 4.34 1,164 B - - - - NA
VersionTolerantTest NinoDeserializeTolerantClasses 40,057.1337 ns 40,163.9520 ns 39,542.6307 ns 40,445.1497 ns 1.00 - 18.1885 5.6152 - 253624 B 1.00
VersionTolerantTest MemoryPackDeserializeTolerantClasses 56,371.0890 ns 56,377.3380 ns 55,352.3831 ns 57,183.9251 ns 1.41 - 17.9443 5.4321 - 253624 B 1.00
VersionTolerantTest NinoSerializeTolerantClasses 8,466.3495 ns 8,427.3201 ns 8,342.9010 ns 8,651.7025 ns 1.00 115,404 B - - - - NA
VersionTolerantTest MemoryPackSerializeTolerantClasses 34,227.3815 ns 34,200.3911 ns 33,919.2686 ns 34,633.9902 ns 4.04 116,404 B - - - - NA
SimpleTest NinoDeserializeVectors 92,973.9461 ns 93,718.3854 ns 85,849.0925 ns 95,489.8906 ns 1.00 - 14.6484 14.6484 14.6484 160030 B 1.00
SimpleTest MemoryPackDeserializeVectors 94,227.4950 ns 92,546.2515 ns 88,480.6789 ns 101,366.6600 ns 1.01 - 15.5029 15.5029 15.5029 160031 B 1.00
SimpleTest MessagePackDeserializeVectors 271,441.4140 ns 271,694.8042 ns 257,259.1453 ns 286,670.1218 ns 2.92 - 20.0195 20.0195 20.0195 - 0.00
SimpleTest NinoSerializeVectors 3,499.3051 ns 3,494.0753 ns 3,436.3905 ns 3,566.7647 ns 1.00 160,004 B - - - - NA
SimpleTest MemoryPackSerializeVectors 3,490.9203 ns 3,483.4684 ns 3,466.8321 ns 3,539.8703 ns 1.00 160,004 B - - - - NA
SimpleTest MessagePackSerializeVectors 109,414.5315 ns 109,306.2482 ns 107,551.5930 ns 112,759.1559 ns 31.27 210,003 B - - - - NA

Benchmark generated automatically on 2026-10-17 12:01:35 UTC