Skip to content

Releases: JasonXuDeveloper/Nino

v3.3.9

23 May 09:24
Compare
Choose a tag to compare
  • [fix] compilation error when a derived class uses members from base class for a custom constructor #145
  • [fix] fix private field access error for polymorphic types
  • [fix] fix code generation error for polymorphic generic types

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.300
  [Host]            : .NET 8.0.16 (8.0.1625.21506), X64 RyuJIT AVX2
  ShortRun-.NET 9.0 : .NET 9.0.5 (9.0.525.21509), X64 RyuJIT AVX2

Job=ShortRun-.NET 9.0  Runtime=.NET 9.0  Server=True  
IterationCount=3  LaunchCount=1  WarmupCount=3  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,874.8188 ns 57.8132 ns 3.1689 ns 3.77 0.03 -
MemoryPackDeserializeSimpleClass 694.1353 ns 243.4620 ns 13.3450 ns 1.39 0.03 -
NinoDeserializeSimpleClass 497.6579 ns 86.4001 ns 4.7359 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,243.8142 ns 180.3179 ns 9.8838 ns 6.32 0.05 1.09KB
MemoryPackSerializeSimpleClass 543.4999 ns 5.3427 ns 0.2929 ns 2.76 0.01 1.12KB
NinoSerializeSimpleClass 196.9562 ns 12.6309 ns 0.6923 ns 1.00 0.00 1.13KB
MessagePackDeserializeSimpleClasses 199,174.0085 ns 19,557.9810 ns 1,072.0389 ns 3.73 0.06 -
MemoryPackDeserializeSimpleClasses 71,289.3483 ns 38,959.2276 ns 2,135.4867 ns 1.34 0.04 -
NinoDeserializeSimpleClasses 53,398.2427 ns 17,291.4954 ns 947.8052 ns 1.00 0.02 -
MessagePackSerializeSimpleClasses 117,349.6331 ns 7,725.7528 ns 423.4746 ns 5.88 0.10 108.6KB
MemoryPackSerializeSimpleClasses 51,799.9132 ns 14,858.6579 ns 814.4532 ns 2.59 0.06 112.11KB
NinoSerializeSimpleClasses 19,967.9115 ns 7,005.0638 ns 383.9712 ns 1.00 0.02 112.5KB
MessagePackDeserializeSimpleStruct 68.5779 ns 1.3410 ns 0.0735 ns 126.34 0.55 -
MemoryPackDeserializeSimpleStruct 2.0244 ns 0.1852 ns 0.0102 ns 3.73 0.02 -
NinoDeserializeSimpleStruct 0.5428 ns 0.0485 ns 0.0027 ns 1.00 0.01 -
MessagePackSerializeSimpleStruct 88.8541 ns 10.3646 ns 0.5681 ns 16.04 0.42 16B
MemoryPackSerializeSimpleStruct 4.8661 ns 0.5392 ns 0.0296 ns 0.88 0.02 16B
NinoSerializeSimpleStruct 5.5431 ns 3.0636 ns 0.1679 ns 1.00 0.04 16B
MessagePackDeserializeSimpleStructs 3,843.1786 ns 349.9556 ns 19.1822 ns 36.78 1.38 -
MemoryPackDeserializeSimpleStructs 134.7678 ns 24.7672 ns 1.3576 ns 1.29 0.05 -
NinoDeserializeSimpleStructs 104.6271 ns 84.5268 ns 4.6332 ns 1.00 0.05 -
MessagePackSerializeSimpleStructs 4,159.1754 ns 389.0420 ns 21.3247 ns 166.96 1.05 1.57KB
MemoryPackSerializeSimpleStructs 28.9188 ns 3.3076 ns 0.1813 ns 1.16 0.01 1.57KB
NinoSerializeSimpleStructs 24.9118 ns 2.3399 ns 0.1283 ns 1.00 0.01 1.57KB
MessagePackDeserializeVectors 356,818.5676 ns 41,124.3571 ns 2,254.1648 ns 3.06 0.04 -
MemoryPackDeserializeVectors 116,168.1546 ns 117,878.9609 ns 6,461.3436 ns 1.00 0.05 -
NinoDeserializeVectors 116,558.0834 ns 31,388.2000 ns 1,720.4932 ns 1.00 0.02 -
MessagePackSerializeVectors 309,710.0942 ns 41,870.8569 ns 2,295.0830 ns 5.84 0.04 205.08KB
MemoryPackSerializeVectors 53,781.3829 ns 3,415.8637 ns 187.2350 ns 1.01 0.01 156.25KB
NinoSerializeVectors 52,997.0375 ns 4,503.1742 ns 246.8342 ns 1.00 0.01 156.25KB

v3.3.8

12 Apr 12:36
Compare
Choose a tag to compare
  • [feat] allow directly serialize/deserialize IEnumerable of NinoTypes

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.203
  [Host]            : .NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2
  ShortRun-.NET 9.0 : .NET 9.0.4 (9.0.425.16305), X64 RyuJIT AVX2

Job=ShortRun-.NET 9.0  Runtime=.NET 9.0  Server=True  
IterationCount=3  LaunchCount=1  WarmupCount=3  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,974.5849 ns 673.1826 ns 36.8994 ns 3.59 0.09 -
MemoryPackDeserializeSimpleClass 735.0675 ns 633.7822 ns 34.7397 ns 1.34 0.06 -
NinoDeserializeSimpleClass 550.7189 ns 228.6688 ns 12.5341 ns 1.00 0.03 -
MessagePackSerializeSimpleClass 1,224.7750 ns 48.5922 ns 2.6635 ns 6.44 0.04 1.09KB
MemoryPackSerializeSimpleClass 527.9796 ns 14.1311 ns 0.7746 ns 2.78 0.02 1.12KB
NinoSerializeSimpleClass 190.1723 ns 22.0207 ns 1.2070 ns 1.00 0.01 1.13KB
MessagePackDeserializeSimpleClasses 201,181.9643 ns 24,694.1187 ns 1,353.5680 ns 3.32 0.22 -
MemoryPackDeserializeSimpleClasses 73,253.0857 ns 10,042.5028 ns 550.4635 ns 1.21 0.08 -
NinoDeserializeSimpleClasses 60,885.5159 ns 87,443.8376 ns 4,793.0918 ns 1.00 0.09 -
MessagePackSerializeSimpleClasses 121,783.2017 ns 8,453.2966 ns 463.3537 ns 6.20 0.02 108.6KB
MemoryPackSerializeSimpleClasses 51,308.6338 ns 2,744.0722 ns 150.4119 ns 2.61 0.01 112.11KB
NinoSerializeSimpleClasses 19,633.2660 ns 138.2966 ns 7.5805 ns 1.00 0.00 112.5KB
MessagePackDeserializeSimpleStruct 67.1414 ns 2.7314 ns 0.1497 ns 115.66 0.93 -
MemoryPackDeserializeSimpleStruct 2.0091 ns 0.2738 ns 0.0150 ns 3.46 0.04 -
NinoDeserializeSimpleStruct 0.5805 ns 0.0959 ns 0.0053 ns 1.00 0.01 -
MessagePackSerializeSimpleStruct 85.5573 ns 7.7458 ns 0.4246 ns 16.38 0.09 16B
MemoryPackSerializeSimpleStruct 4.8984 ns 0.6032 ns 0.0331 ns 0.94 0.01 16B
NinoSerializeSimpleStruct 5.2238 ns 0.3855 ns 0.0211 ns 1.00 0.00 16B
MessagePackDeserializeSimpleStructs 3,885.8777 ns 428.3209 ns 23.4777 ns 35.41 0.19 -
MemoryPackDeserializeSimpleStructs 135.4230 ns 11.3555 ns 0.6224 ns 1.23 0.01 -
NinoDeserializeSimpleStructs 109.7307 ns 2.0808 ns 0.1141 ns 1.00 0.00 -
MessagePackSerializeSimpleStructs 4,356.1168 ns 567.4068 ns 31.1015 ns 180.04 1.12 1.57KB
MemoryPackSerializeSimpleStructs 27.6068 ns 1.9460 ns 0.1067 ns 1.14 0.00 1.57KB
NinoSerializeSimpleStructs 24.1954 ns 0.2774 ns 0.0152 ns 1.00 0.00 1.57KB
MessagePackDeserializeVectors 363,458.3370 ns 37,284.6276 ns 2,043.6963 ns 2.94 0.07 -
MemoryPackDeserializeVectors 120,653.2737 ns 39,785.1660 ns 2,180.7592 ns 0.98 0.03 -
NinoDeserializeVectors 123,740.6740 ns 63,724.0986 ns 3,492.9329 ns 1.00 0.03 -
MessagePackSerializeVectors 305,376.8722 ns 1,567.0323 ns 85.8943 ns 5.69 0.02 205.08KB
MemoryPackSerializeVectors 53,361.4252 ns 3,245.7684 ns 177.9115 ns 0.99 0.00 156.25KB
NinoSerializeVectors 53,649.6803 ns 3,273.6246 ns 179.4384 ns 1.00 0.00 156.25KB

v3.3.7

07 Apr 04:37
Compare
Choose a tag to compare
  • [fix] fix serialization field layout misordering

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.202
  [Host]            : .NET 8.0.14 (8.0.1425.11118), X64 RyuJIT AVX2
  ShortRun-.NET 9.0 : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2

Job=ShortRun-.NET 9.0  Runtime=.NET 9.0  Server=True  
IterationCount=3  LaunchCount=1  WarmupCount=3  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,940.2387 ns 1,557.3339 ns 85.3627 ns 3.77 0.15 -
MemoryPackDeserializeSimpleClass 705.7461 ns 410.4849 ns 22.5001 ns 1.37 0.04 -
NinoDeserializeSimpleClass 515.3493 ns 76.9652 ns 4.2187 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,187.9824 ns 49.2291 ns 2.6984 ns 6.29 0.02 1.09KB
MemoryPackSerializeSimpleClass 518.9760 ns 42.9293 ns 2.3531 ns 2.75 0.01 1.12KB
NinoSerializeSimpleClass 188.8623 ns 11.8261 ns 0.6482 ns 1.00 0.00 1.13KB
MessagePackDeserializeSimpleClasses 194,891.4757 ns 29,961.8337 ns 1,642.3092 ns 3.61 0.04 -
MemoryPackDeserializeSimpleClasses 68,842.3567 ns 3,898.2290 ns 213.6751 ns 1.27 0.01 -
NinoDeserializeSimpleClasses 54,025.1447 ns 11,387.3307 ns 624.1780 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 121,880.4333 ns 12,491.0083 ns 684.6743 ns 6.11 0.04 108.6KB
MemoryPackSerializeSimpleClasses 50,816.1441 ns 786.1273 ns 43.0903 ns 2.55 0.01 112.11KB
NinoSerializeSimpleClasses 19,952.0890 ns 1,439.3779 ns 78.8972 ns 1.00 0.00 112.5KB
MessagePackDeserializeSimpleStruct 69.3811 ns 5.9383 ns 0.3255 ns 127.16 1.03 -
MemoryPackDeserializeSimpleStruct 2.0151 ns 0.2235 ns 0.0123 ns 3.69 0.03 -
NinoDeserializeSimpleStruct 0.5456 ns 0.0802 ns 0.0044 ns 1.00 0.01 -
MessagePackSerializeSimpleStruct 81.7251 ns 8.4123 ns 0.4611 ns 15.65 0.12 16B
MemoryPackSerializeSimpleStruct 4.8628 ns 0.0327 ns 0.0018 ns 0.93 0.01 16B
NinoSerializeSimpleStruct 5.2236 ns 0.6348 ns 0.0348 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 3,756.3947 ns 192.4970 ns 10.5514 ns 36.19 0.32 -
MemoryPackDeserializeSimpleStructs 134.3984 ns 16.4283 ns 0.9005 ns 1.29 0.01 -
NinoDeserializeSimpleStructs 103.8168 ns 18.8230 ns 1.0318 ns 1.00 0.01 -
MessagePackSerializeSimpleStructs 4,138.1396 ns 80.6132 ns 4.4187 ns 168.17 0.18 1.57KB
MemoryPackSerializeSimpleStructs 27.9267 ns 2.8650 ns 0.1570 ns 1.13 0.01 1.57KB
NinoSerializeSimpleStructs 24.6074 ns 0.2785 ns 0.0153 ns 1.00 0.00 1.57KB
MessagePackDeserializeVectors 348,435.8768 ns 143,704.6475 ns 7,876.9367 ns 2.96 0.19 -
MemoryPackDeserializeVectors 119,899.6907 ns 26,169.6244 ns 1,434.4454 ns 1.02 0.06 -
NinoDeserializeVectors 118,268.2157 ns 155,664.7182 ns 8,532.5085 ns 1.00 0.09 -
MessagePackSerializeVectors 301,722.8768 ns 15,377.0647 ns 842.8688 ns 5.70 0.02 205.08KB
MemoryPackSerializeVectors 52,850.9150 ns 4,125.9026 ns 226.1546 ns 1.00 0.00 156.25KB
NinoSerializeVectors 52,961.6816 ns 3,357.4250 ns 184.0318 ns 1.00 0.00 156.25KB

v3.3.6

05 Apr 14:02
Compare
Choose a tag to compare
  • [opt] faster deserialization for unmanaged collection
  • [fix] remove redundant code gen for unmanaged dictionary

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.202
  [Host]             : .NET 8.0.14 (8.0.1425.11118), X64 RyuJIT AVX2
  MediumRun-.NET 9.0 : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2

Job=MediumRun-.NET 9.0  Runtime=.NET 9.0  Server=True  
IterationCount=15  LaunchCount=2  WarmupCount=10  

Method Mean Error StdDev Median Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,901.7855 ns 33.8249 ns 48.5106 ns 1,886.8243 ns 3.86 0.11 -
MemoryPackDeserializeSimpleClass 674.0734 ns 4.2315 ns 6.2024 ns 675.5915 ns 1.37 0.02 -
NinoDeserializeSimpleClass 492.3158 ns 4.9289 ns 7.2247 ns 492.4130 ns 1.00 0.02 -
MessagePackSerializeSimpleClass 1,222.8467 ns 7.9520 ns 11.6560 ns 1,228.4779 ns 6.27 0.15 1.09KB
MemoryPackSerializeSimpleClass 527.1709 ns 4.8454 ns 6.4684 ns 532.7050 ns 2.70 0.07 1.12KB
NinoSerializeSimpleClass 195.1424 ns 3.0242 ns 4.4329 ns 192.7551 ns 1.00 0.03 1.13KB
MessagePackDeserializeSimpleClasses 198,664.5049 ns 3,627.8243 ns 5,317.6183 ns 199,280.5917 ns 3.81 0.11 -
MemoryPackDeserializeSimpleClasses 67,332.9835 ns 844.0769 ns 1,237.2371 ns 66,949.4967 ns 1.29 0.03 -
NinoDeserializeSimpleClasses 52,144.2864 ns 317.1010 ns 464.8025 ns 52,272.6800 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 120,998.6319 ns 1,397.9771 ns 2,004.9372 ns 120,779.6481 ns 5.96 0.18 108.59KB
MemoryPackSerializeSimpleClasses 51,024.4556 ns 376.2627 ns 551.5210 ns 50,814.9736 ns 2.51 0.07 112.11KB
NinoSerializeSimpleClasses 20,325.2889 ns 366.2987 ns 536.9160 ns 19,874.7696 ns 1.00 0.04 112.5KB
MessagePackDeserializeSimpleStruct 68.4274 ns 0.2356 ns 0.3454 ns 68.3631 ns 115.92 8.38 -
MemoryPackDeserializeSimpleStruct 2.0510 ns 0.0248 ns 0.0339 ns 2.0566 ns 3.47 0.26 -
NinoDeserializeSimpleStruct 0.5934 ns 0.0304 ns 0.0435 ns 0.5933 ns 1.01 0.10 -
MessagePackSerializeSimpleStruct 81.6295 ns 1.1838 ns 1.6204 ns 83.0106 ns 15.55 0.34 16B
MemoryPackSerializeSimpleStruct 5.0117 ns 0.0288 ns 0.0423 ns 5.0084 ns 0.95 0.01 16B
NinoSerializeSimpleStruct 5.2491 ns 0.0388 ns 0.0544 ns 5.2844 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 3,674.4635 ns 18.6859 ns 26.7988 ns 3,671.9737 ns 36.98 0.68 -
MemoryPackDeserializeSimpleStructs 127.4423 ns 1.3779 ns 2.0623 ns 127.6397 ns 1.28 0.03 -
NinoDeserializeSimpleStructs 99.3804 ns 1.1802 ns 1.6926 ns 100.0591 ns 1.00 0.02 -
MessagePackSerializeSimpleStructs 3,984.5062 ns 19.7537 ns 27.0390 ns 4,004.9611 ns 165.93 1.22 1.57KB
MemoryPackSerializeSimpleStructs 28.1920 ns 0.3487 ns 0.5111 ns 28.1516 ns 1.17 0.02 1.57KB
NinoSerializeSimpleStructs 24.0128 ns 0.0529 ns 0.0758 ns 24.0276 ns 1.00 0.00 1.57KB
MessagePackDeserializeVectors 343,825.4665 ns 4,423.8800 ns 6,484.4664 ns 345,031.1562 ns 2.92 0.12 -
MemoryPackDeserializeVectors 120,885.6092 ns 2,932.7637 ns 4,389.6230 ns 122,328.6510 ns 1.03 0.05 -
NinoDeserializeVectors 118,007.2042 ns 2,863.9931 ns 4,198.0043 ns 118,105.6329 ns 1.00 0.05 -
MessagePackSerializeVectors 307,632.9223 ns 3,036.1537 ns 4,354.3613 ns 307,735.6495 ns 5.79 0.09 205.08KB
MemoryPackSerializeVectors 52,998.9201 ns 66.3756 ns 95.1939 ns 53,012.2952 ns 1.00 0.01 156.25KB
NinoSerializeVectors 53,173.6032 ns 189.4002 ns 271.6321 ns 53,285.0359 ns 1.00 0.01 156.25KB

v3.3.5

26 Mar 08:28
Compare
Choose a tag to compare
  • [opt] faster collection serialization/deserialization

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.202
  [Host]            : .NET 8.0.14 (8.0.1425.11118), X64 RyuJIT AVX2
  ShortRun-.NET 9.0 : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2

Job=ShortRun-.NET 9.0  Runtime=.NET 9.0  Server=False  
IterationCount=3  LaunchCount=1  WarmupCount=3  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,889.3446 ns 672.4318 ns 36.8583 ns 3.83 0.08 -
MemoryPackDeserializeSimpleClass 668.5830 ns 185.9545 ns 10.1928 ns 1.36 0.03 -
NinoDeserializeSimpleClass 493.3199 ns 145.9256 ns 7.9987 ns 1.00 0.02 -
MessagePackSerializeSimpleClass 1,207.4327 ns 31.0907 ns 1.7042 ns 6.40 0.03 1.09KB
MemoryPackSerializeSimpleClass 519.5092 ns 10.6405 ns 0.5832 ns 2.76 0.01 1.12KB
NinoSerializeSimpleClass 188.5452 ns 21.0393 ns 1.1532 ns 1.00 0.01 1.13KB
MessagePackDeserializeSimpleClasses 193,283.6253 ns 37,864.8750 ns 2,075.5016 ns 3.61 0.04 -
MemoryPackDeserializeSimpleClasses 65,509.8048 ns 26,932.7669 ns 1,476.2758 ns 1.22 0.03 -
NinoDeserializeSimpleClasses 53,577.5059 ns 7,831.2402 ns 429.2567 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 120,312.1837 ns 5,459.8871 ns 299.2748 ns 5.97 0.03 108.59KB
MemoryPackSerializeSimpleClasses 52,296.4545 ns 2,564.4665 ns 140.5671 ns 2.60 0.01 112.11KB
NinoSerializeSimpleClasses 20,136.2970 ns 1,776.9374 ns 97.3999 ns 1.00 0.01 112.5KB
MessagePackDeserializeSimpleStruct 69.4596 ns 7.6991 ns 0.4220 ns 122.44 3.32 -
MemoryPackDeserializeSimpleStruct 2.0306 ns 0.4143 ns 0.0227 ns 3.58 0.10 -
NinoDeserializeSimpleStruct 0.5677 ns 0.3220 ns 0.0176 ns 1.00 0.04 -
MessagePackSerializeSimpleStruct 81.9990 ns 6.0192 ns 0.3299 ns 15.46 0.21 16B
MemoryPackSerializeSimpleStruct 4.8723 ns 0.4894 ns 0.0268 ns 0.92 0.01 16B
NinoSerializeSimpleStruct 5.3032 ns 1.4551 ns 0.0798 ns 1.00 0.02 16B
MessagePackDeserializeSimpleStructs 3,663.1182 ns 10.3840 ns 0.5692 ns 40.30 0.74 -
MemoryPackDeserializeSimpleStructs 113.0653 ns 46.9907 ns 2.5757 ns 1.24 0.03 -
NinoDeserializeSimpleStructs 90.9140 ns 34.8835 ns 1.9121 ns 1.00 0.03 -
MessagePackSerializeSimpleStructs 4,156.4250 ns 1,228.8231 ns 67.3559 ns 169.47 2.40 1.57KB
MemoryPackSerializeSimpleStructs 44.9605 ns 6.5619 ns 0.3597 ns 1.83 0.01 1.57KB
NinoSerializeSimpleStructs 24.5262 ns 1.0347 ns 0.0567 ns 1.00 0.00 1.57KB
MessagePackDeserializeVectors 256,074.2666 ns 19,582.3588 ns 1,073.3752 ns 14.81 0.39 -
MemoryPackDeserializeVectors 16,201.9727 ns 13,766.5980 ns 754.5937 ns 0.94 0.05 -
NinoDeserializeVectors 17,297.2189 ns 9,683.8178 ns 530.8027 ns 1.00 0.04 -
MessagePackSerializeVectors 300,785.6821 ns 98,485.8971 ns 5,398.3444 ns 5.69 0.09 205.08KB
MemoryPackSerializeVectors 52,621.8651 ns 139.2816 ns 7.6345 ns 1.00 0.00 156.25KB
NinoSerializeVectors 52,852.8931 ns 3,785.0383 ns 207.4707 ns 1.00 0.00 156.25KB

v3.3.4

26 Mar 07:19
Compare
Choose a tag to compare
  • [opt] inline unmanaged fields
  • [change] new members for benchmark data

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.202
  [Host]            : .NET 8.0.14 (8.0.1425.11118), X64 RyuJIT AVX2
  ShortRun-.NET 9.0 : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2

Job=ShortRun-.NET 9.0  Runtime=.NET 9.0  Server=False  
IterationCount=3  LaunchCount=1  WarmupCount=3  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 2,047.3854 ns 1,425.5074 ns 78.1369 ns 3.18 0.14 -
MemoryPackDeserializeSimpleClass 734.8690 ns 46.1852 ns 2.5316 ns 1.14 0.04 -
NinoDeserializeSimpleClass 645.0957 ns 427.1854 ns 23.4155 ns 1.00 0.04 -
MessagePackSerializeSimpleClass 1,250.2101 ns 201.4115 ns 11.0400 ns 4.47 0.03 1.79KB
MemoryPackSerializeSimpleClass 525.8854 ns 67.0160 ns 3.6734 ns 1.88 0.01 1.82KB
NinoSerializeSimpleClass 279.7754 ns 9.8207 ns 0.5383 ns 1.00 0.00 2.89KB
MessagePackDeserializeSimpleClasses 206,502.5404 ns 66,494.5241 ns 3,644.7893 ns 3.07 0.05 -
MemoryPackDeserializeSimpleClasses 74,607.7183 ns 39,882.3430 ns 2,186.0858 ns 1.11 0.03 -
NinoDeserializeSimpleClasses 67,242.5993 ns 10,310.4613 ns 565.1512 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 122,205.7438 ns 18,487.4576 ns 1,013.3599 ns 3.67 0.03 178.91KB
MemoryPackSerializeSimpleClasses 55,016.0881 ns 2,104.4764 ns 115.3535 ns 1.65 0.01 182.43KB
NinoSerializeSimpleClasses 33,309.2745 ns 3,055.4992 ns 167.4822 ns 1.00 0.01 289.07KB
MessagePackDeserializeSimpleStruct 67.6245 ns 4.6131 ns 0.2529 ns 126.65 1.42 -
MemoryPackDeserializeSimpleStruct 2.0379 ns 0.2643 ns 0.0145 ns 3.82 0.05 -
NinoDeserializeSimpleStruct 0.5340 ns 0.1212 ns 0.0066 ns 1.00 0.02 -
MessagePackSerializeSimpleStruct 81.5293 ns 7.0298 ns 0.3853 ns 14.74 0.09 16B
MemoryPackSerializeSimpleStruct 4.8902 ns 0.7868 ns 0.0431 ns 0.88 0.01 16B
NinoSerializeSimpleStruct 5.5304 ns 0.5318 ns 0.0291 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 3,615.4956 ns 125.8015 ns 6.8956 ns 41.47 1.52 -
MemoryPackDeserializeSimpleStructs 111.1674 ns 40.2768 ns 2.2077 ns 1.27 0.05 -
NinoDeserializeSimpleStructs 87.2982 ns 67.9857 ns 3.7265 ns 1.00 0.05 -
MessagePackSerializeSimpleStructs 3,957.8484 ns 681.0285 ns 37.3295 ns 159.04 1.54 1.57KB
MemoryPackSerializeSimpleStructs 30.1698 ns 0.2746 ns 0.0151 ns 1.21 0.01 1.57KB
NinoSerializeSimpleStructs 24.8870 ns 2.7458 ns 0.1505 ns 1.00 0.01 1.57KB
MessagePackDeserializeVectors 281,730.6367 ns 449,577.0244 ns 24,642.8338 ns 18.08 1.43 -
MemoryPackDeserializeVectors 16,908.8044 ns 7,769.9193 ns 425.8955 ns 1.09 0.03 -
NinoDeserializeVectors 15,586.7635 ns 7,130.8086 ns 390.8637 ns 1.00 0.03 -
MessagePackSerializeVectors 302,103.2515 ns 36,925.7191 ns 2,024.0233 ns 5.66 0.05 205.08KB
MemoryPackSerializeVectors 53,349.0179 ns 4,597.2626 ns 251.9915 ns 1.00 0.01 156.25KB
NinoSerializeVectors 53,333.9039 ns 8,340.0391 ns 457.1457 ns 1.00 0.01 156.25KB

v3.3.3

26 Mar 05:17
Compare
Choose a tag to compare
  • [feat] export type graphs
  • [opt] faster source generator
  • [opt] inline code for serializing primitive fields

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.202
  [Host]            : .NET 8.0.14 (8.0.1425.11118), X64 RyuJIT AVX2
  ShortRun-.NET 9.0 : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2

Job=ShortRun-.NET 9.0  Runtime=.NET 9.0  Server=False  
IterationCount=3  LaunchCount=1  WarmupCount=3  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,510.7319 ns 49.6305 ns 2.7204 ns 3.55 0.01 -
MemoryPackDeserializeSimpleClass 576.7467 ns 137.7227 ns 7.5490 ns 1.36 0.02 -
NinoDeserializeSimpleClass 425.6011 ns 31.2785 ns 1.7145 ns 1.00 0.00 -
MessagePackSerializeSimpleClass 1,095.8050 ns 117.1172 ns 6.4196 ns 5.10 0.03 700B
MemoryPackSerializeSimpleClass 514.3767 ns 132.9812 ns 7.2892 ns 2.39 0.03 755B
NinoSerializeSimpleClass 214.9606 ns 3.0843 ns 0.1691 ns 1.00 0.00 764B
MessagePackDeserializeSimpleClasses 146,107.6226 ns 16,316.3279 ns 894.3530 ns 3.20 0.02 -
MemoryPackDeserializeSimpleClasses 56,722.6425 ns 5,379.8308 ns 294.8867 ns 1.24 0.01 -
NinoDeserializeSimpleClasses 45,697.7693 ns 4,838.5714 ns 265.2184 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 106,932.4196 ns 10,306.6702 ns 564.9434 ns 4.34 0.02 68.36KB
MemoryPackSerializeSimpleClasses 48,896.6642 ns 3,744.3172 ns 205.2387 ns 1.99 0.01 73.73KB
NinoSerializeSimpleClasses 24,623.9408 ns 876.6453 ns 48.0519 ns 1.00 0.00 75KB
MessagePackDeserializeSimpleStruct 72.6673 ns 3.0213 ns 0.1656 ns 130.98 3.10 -
MemoryPackDeserializeSimpleStruct 2.1505 ns 0.1841 ns 0.0101 ns 3.88 0.09 -
NinoDeserializeSimpleStruct 0.5551 ns 0.2733 ns 0.0150 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 96.0800 ns 5.5783 ns 0.3058 ns 17.61 0.06 16B
MemoryPackSerializeSimpleStruct 4.8642 ns 0.4491 ns 0.0246 ns 0.89 0.00 16B
NinoSerializeSimpleStruct 5.4575 ns 0.2672 ns 0.0146 ns 1.00 0.00 16B
MessagePackDeserializeSimpleStructs 3,572.3238 ns 282.6606 ns 15.4936 ns 40.37 0.95 -
MemoryPackDeserializeSimpleStructs 108.1457 ns 49.6393 ns 2.7209 ns 1.22 0.04 -
NinoDeserializeSimpleStructs 88.5289 ns 42.7152 ns 2.3414 ns 1.00 0.03 -
MessagePackSerializeSimpleStructs 4,138.0597 ns 303.5177 ns 16.6368 ns 161.53 0.58 1.57KB
MemoryPackSerializeSimpleStructs 29.1358 ns 0.6991 ns 0.0383 ns 1.14 0.00 1.57KB
NinoSerializeSimpleStructs 25.6187 ns 0.4031 ns 0.0221 ns 1.00 0.00 1.57KB
MessagePackDeserializeVectors 258,449.3195 ns 9,379.0581 ns 514.0978 ns 16.36 0.59 -
MemoryPackDeserializeVectors 15,979.2846 ns 14,707.5263 ns 806.1691 ns 1.01 0.06 -
NinoDeserializeVectors 15,814.1666 ns 11,781.7373 ns 645.7968 ns 1.00 0.05 -
MessagePackSerializeVectors 309,154.6090 ns 3,640.7633 ns 199.5625 ns 5.84 0.00 205.08KB
MemoryPackSerializeVectors 52,963.5716 ns 194.0152 ns 10.6346 ns 1.00 0.00 156.25KB
NinoSerializeVectors 52,981.3045 ns 277.7074 ns 15.2221 ns 1.00 0.00 156.25KB

v3.3.2

21 Mar 00:06
Compare
Choose a tag to compare
  • [fix] fixed #144 error code generation for custom struct collection type with no op_Equality implemented
  • [fix] fixed jagged array code generation error
  • [feat] supported deserialization for any collection type that accepts an array type to construct
  • [feat] support serializing more collection types

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.202
  [Host]     : .NET 8.0.14 (8.0.1425.11118), X64 RyuJIT AVX2
  Job-YMSDNH : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,566.1821 ns 33.8147 ns 38.9410 ns 3.61 0.19 -
MemoryPackDeserializeSimpleClass 581.7058 ns 6.3686 ns 7.3341 ns 1.34 0.07 -
NinoDeserializeSimpleClass 434.5717 ns 18.6862 ns 21.5191 ns 1.00 0.07 -
MessagePackSerializeSimpleClass 1,095.5500 ns 5.8196 ns 6.4684 ns 4.47 0.03 700B
MemoryPackSerializeSimpleClass 510.7746 ns 1.0703 ns 1.0512 ns 2.08 0.01 755B
NinoSerializeSimpleClass 245.1557 ns 1.1207 ns 1.2907 ns 1.00 0.01 764B
MessagePackDeserializeSimpleClasses 156,110.1872 ns 1,169.5099 ns 1,251.3624 ns 3.12 0.16 -
MemoryPackDeserializeSimpleClasses 58,767.7599 ns 2,099.4753 ns 2,417.7589 ns 1.17 0.08 -
NinoDeserializeSimpleClasses 50,244.9692 ns 2,259.3444 ns 2,601.8644 ns 1.00 0.07 -
MessagePackSerializeSimpleClasses 106,519.8737 ns 115.9466 ns 124.0616 ns 4.06 0.01 68.36KB
MemoryPackSerializeSimpleClasses 46,174.5775 ns 222.9381 ns 247.7951 ns 1.76 0.01 73.73KB
NinoSerializeSimpleClasses 26,217.4418 ns 24.4297 ns 25.0875 ns 1.00 0.00 75KB
MessagePackDeserializeSimpleStruct 69.1839 ns 0.0656 ns 0.0645 ns 129.94 1.22 -
MemoryPackDeserializeSimpleStruct 2.0659 ns 0.0182 ns 0.0209 ns 3.88 0.05 -
NinoDeserializeSimpleStruct 0.5325 ns 0.0048 ns 0.0051 ns 1.00 0.01 -
MessagePackSerializeSimpleStruct 82.8198 ns 0.3340 ns 0.3846 ns 12.94 0.08 16B
MemoryPackSerializeSimpleStruct 5.9272 ns 0.0085 ns 0.0084 ns 0.93 0.00 16B
NinoSerializeSimpleStruct 6.3992 ns 0.0256 ns 0.0285 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,166.2226 ns 76.2465 ns 84.7478 ns 29.59 5.42 -
MemoryPackDeserializeSimpleStructs 116.3191 ns 5.8833 ns 6.5393 ns 0.83 0.16 -
NinoDeserializeSimpleStructs 145.3941 ns 22.8250 ns 26.2853 ns 1.03 0.26 -
MessagePackSerializeSimpleStructs 4,071.1888 ns 5.5355 ns 6.1527 ns 146.04 0.54 1.57KB
MemoryPackSerializeSimpleStructs 29.7827 ns 0.1953 ns 0.2249 ns 1.07 0.01 1.57KB
NinoSerializeSimpleStructs 27.8771 ns 0.0849 ns 0.0978 ns 1.00 0.00 1.57KB
MessagePackDeserializeVectors 269,957.2084 ns 5,830.7636 ns 6,714.7161 ns 17.10 0.66 -
MemoryPackDeserializeVectors 16,816.4012 ns 571.8114 ns 635.5668 ns 1.07 0.05 -
NinoDeserializeVectors 15,800.1293 ns 456.7226 ns 488.6881 ns 1.00 0.04 -
MessagePackSerializeVectors 307,791.3494 ns 3,906.5190 ns 4,179.9315 ns 83.48 2.68 205.08KB
MemoryPackSerializeVectors 4,246.4606 ns 9.7238 ns 10.8079 ns 1.15 0.03 156.25KB
NinoSerializeVectors 3,690.2986 ns 119.4024 ns 117.2691 ns 1.00 0.04 156.25KB

v3.3.0

09 Mar 13:40
Compare
Choose a tag to compare
  • [update] officially support dotnet version fallback

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.200
  [Host]     : .NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2
  Job-IRKPCB : .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,502.1464 ns 12.0982 ns 13.4472 ns 3.58 0.04 -
MemoryPackDeserializeSimpleClass 566.6671 ns 2.0244 ns 2.1661 ns 1.35 0.01 -
NinoDeserializeSimpleClass 419.0553 ns 2.2934 ns 2.6411 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,101.5650 ns 4.2906 ns 4.7690 ns 4.39 0.03 700B
MemoryPackSerializeSimpleClass 503.1250 ns 2.5960 ns 2.9896 ns 2.00 0.01 755B
NinoSerializeSimpleClass 251.0767 ns 0.8607 ns 0.9912 ns 1.00 0.01 764B
MessagePackDeserializeSimpleClasses 145,453.2194 ns 618.4212 ns 687.3736 ns 3.18 0.03 -
MemoryPackDeserializeSimpleClasses 55,852.2566 ns 213.7742 ns 246.1827 ns 1.22 0.01 -
NinoDeserializeSimpleClasses 45,730.1921 ns 304.2706 ns 325.5661 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 103,248.3358 ns 293.4252 ns 313.9617 ns 3.96 0.02 68.36KB
MemoryPackSerializeSimpleClasses 47,731.6167 ns 217.3131 ns 250.2581 ns 1.83 0.01 73.73KB
NinoSerializeSimpleClasses 26,102.4994 ns 118.9478 ns 136.9805 ns 1.00 0.01 75KB
MessagePackDeserializeSimpleStruct 69.3452 ns 0.3313 ns 0.3815 ns 128.49 3.40 -
MemoryPackDeserializeSimpleStruct 2.0697 ns 0.0163 ns 0.0188 ns 3.83 0.11 -
NinoDeserializeSimpleStruct 0.5401 ns 0.0133 ns 0.0147 ns 1.00 0.04 -
MessagePackSerializeSimpleStruct 90.7266 ns 0.8335 ns 0.9599 ns 14.14 0.17 16B
MemoryPackSerializeSimpleStruct 5.8496 ns 0.0070 ns 0.0072 ns 0.91 0.01 16B
NinoSerializeSimpleStruct 6.4164 ns 0.0318 ns 0.0366 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,386.0391 ns 26.5756 ns 28.4356 ns 54.01 1.27 -
MemoryPackDeserializeSimpleStructs 107.4861 ns 1.3304 ns 1.5320 ns 1.32 0.04 -
NinoDeserializeSimpleStructs 81.2524 ns 1.6889 ns 1.9450 ns 1.00 0.03 -
MessagePackSerializeSimpleStructs 4,149.0567 ns 17.7833 ns 19.7661 ns 145.08 1.34 1.57KB
MemoryPackSerializeSimpleStructs 43.3763 ns 0.3032 ns 0.3492 ns 1.52 0.02 1.57KB
NinoSerializeSimpleStructs 28.5994 ns 0.1979 ns 0.2279 ns 1.00 0.01 1.57KB
MessagePackDeserializeVectors 258,891.5072 ns 1,379.8270 ns 1,589.0108 ns 16.62 0.38 -
MemoryPackDeserializeVectors 16,063.0714 ns 596.8111 ns 687.2885 ns 1.03 0.05 -
NinoDeserializeVectors 15,581.9830 ns 308.6372 ns 355.4270 ns 1.00 0.03 -
MessagePackSerializeVectors 306,479.4598 ns 1,289.2335 ns 1,379.4654 ns 78.17 3.03 205.08KB
MemoryPackSerializeVectors 3,819.3988 ns 2.5341 ns 2.7115 ns 0.97 0.04 156.25KB
NinoSerializeVectors 3,926.7998 ns 136.0418 ns 156.6659 ns 1.00 0.05 156.25KB

v3.2.13

09 Mar 12:34
Compare
Choose a tag to compare
  • [change] downgrade minimum required dotnet version so it is now compatible with projects using netstandard