Skip to content

Releases: JasonXuDeveloper/Nino

v3.1.1

03 Feb 04:50
Compare
Choose a tag to compare
  • [fix] fix #139
  • [opt] optimised private accessor performance on <= NET6.0
  • [opt] attempt to optimize generator performance

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.1 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.102
  [Host]     : .NET 8.0.12 (8.0.1224.60305), X64 RyuJIT AVX2
  Job-UKTMNY : .NET 9.0.1 (9.0.124.61010), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 2,013.2626 ns 20.9576 ns 23.2943 ns 4.91 0.07 -
MemoryPackDeserializeSimpleClass 564.7577 ns 4.6940 ns 5.0225 ns 1.38 0.02 -
NinoDeserializeSimpleClass 409.7963 ns 3.2332 ns 3.5937 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,097.8625 ns 6.3690 ns 7.3346 ns 4.66 0.04 700B
MemoryPackSerializeSimpleClass 800.8720 ns 3.4950 ns 3.7396 ns 3.40 0.02 755B
NinoSerializeSimpleClass 235.5730 ns 1.2529 ns 1.3926 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 194,795.2414 ns 1,055.2742 ns 1,215.2554 ns 4.54 0.05 -
MemoryPackDeserializeSimpleClasses 56,710.0211 ns 406.5461 ns 451.8749 ns 1.32 0.02 -
NinoDeserializeSimpleClasses 42,932.4939 ns 408.5527 ns 437.1468 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 110,354.1231 ns 296.7171 ns 329.8003 ns 5.05 0.04 68.36KB
MemoryPackSerializeSimpleClasses 57,070.7891 ns 318.2118 ns 353.6916 ns 2.61 0.03 73.73KB
NinoSerializeSimpleClasses 21,845.3183 ns 156.8957 ns 174.3892 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 76.0482 ns 0.2877 ns 0.3079 ns 131.62 1.94 -
MemoryPackDeserializeSimpleStruct 2.1323 ns 0.0058 ns 0.0057 ns 3.69 0.05 -
NinoDeserializeSimpleStruct 0.5779 ns 0.0074 ns 0.0085 ns 1.00 0.02 -
MessagePackSerializeSimpleStruct 74.5083 ns 0.4213 ns 0.4852 ns 9.85 0.13 16B
MemoryPackSerializeSimpleStruct 17.1791 ns 1.7226 ns 1.9838 ns 2.27 0.26 16B
NinoSerializeSimpleStruct 7.5689 ns 0.0748 ns 0.0862 ns 1.00 0.02 16B
MessagePackDeserializeSimpleStructs 4,264.7692 ns 17.4364 ns 20.0798 ns 48.73 1.16 -
MemoryPackDeserializeSimpleStructs 110.6303 ns 1.1768 ns 1.3552 ns 1.26 0.03 -
NinoDeserializeSimpleStructs 87.5614 ns 1.8034 ns 2.0768 ns 1.00 0.03 -
MessagePackSerializeSimpleStructs 4,046.5285 ns 21.2497 ns 24.4712 ns 48.61 0.88 1.57KB
MemoryPackSerializeSimpleStructs 86.7707 ns 0.7580 ns 0.8110 ns 1.04 0.02 1.57KB
NinoSerializeSimpleStructs 83.2706 ns 1.3142 ns 1.4607 ns 1.00 0.02 1.57KB

v3.1.0

19 Jan 08:01
Compare
Choose a tag to compare
  • [fix] fix partial class generation error for classes without a namespace

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.1 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.102
  [Host]     : .NET 8.0.12 (8.0.1224.60305), X64 RyuJIT AVX2
  Job-NNDJUX : .NET 9.0.1 (9.0.124.61010), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 2,010.5330 ns 15.5317 ns 16.6187 ns 4.98 0.10 -
MemoryPackDeserializeSimpleClass 575.7378 ns 3.0352 ns 3.4953 ns 1.43 0.03 -
NinoDeserializeSimpleClass 403.8169 ns 6.7995 ns 7.8304 ns 1.00 0.03 -
MessagePackSerializeSimpleClass 1,094.5625 ns 6.1863 ns 6.6193 ns 4.71 0.03 700B
MemoryPackSerializeSimpleClass 568.5263 ns 2.4527 ns 2.7262 ns 2.45 0.01 755B
NinoSerializeSimpleClass 232.2723 ns 0.6473 ns 0.7195 ns 1.00 0.00 724B
MessagePackDeserializeSimpleClasses 202,755.2475 ns 889.1372 ns 988.2737 ns 4.72 0.03 -
MemoryPackDeserializeSimpleClasses 56,046.8218 ns 318.6344 ns 354.1613 ns 1.30 0.01 -
NinoDeserializeSimpleClasses 42,981.8313 ns 162.5538 ns 173.9308 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 108,806.6454 ns 467.0237 ns 499.7101 ns 5.20 0.04 68.36KB
MemoryPackSerializeSimpleClasses 54,769.3890 ns 436.1083 ns 502.2230 ns 2.62 0.03 73.73KB
NinoSerializeSimpleClasses 20,928.7493 ns 98.7316 ns 109.7399 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 74.5267 ns 0.0971 ns 0.0997 ns 129.61 3.30 -
MemoryPackDeserializeSimpleStruct 2.0430 ns 0.0092 ns 0.0102 ns 3.55 0.09 -
NinoDeserializeSimpleStruct 0.5754 ns 0.0138 ns 0.0153 ns 1.00 0.04 -
MessagePackSerializeSimpleStruct 75.8931 ns 0.3589 ns 0.3990 ns 10.21 0.08 16B
MemoryPackSerializeSimpleStruct 16.7747 ns 1.8990 ns 2.1869 ns 2.26 0.29 16B
NinoSerializeSimpleStruct 7.4340 ns 0.0475 ns 0.0488 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,556.3194 ns 28.9803 ns 33.3738 ns 55.01 1.75 -
MemoryPackDeserializeSimpleStructs 105.4677 ns 0.7143 ns 0.7939 ns 1.27 0.04 -
NinoDeserializeSimpleStructs 82.9036 ns 2.3420 ns 2.6970 ns 1.00 0.04 -
MessagePackSerializeSimpleStructs 4,008.2643 ns 23.2189 ns 26.7389 ns 51.80 0.53 1.57KB
MemoryPackSerializeSimpleStructs 88.9912 ns 1.1995 ns 1.3813 ns 1.15 0.02 1.57KB
NinoSerializeSimpleStructs 77.3913 ns 0.6615 ns 0.6497 ns 1.00 0.01 1.57KB

v3.0.9

19 Jan 05:09
Compare
Choose a tag to compare
  • [opt] optimised code generation for user-defined dictionary types
  • [opt] optimised source generator performance by caching collected types (experimental)

Performance Report

expand

BenchmarkDotNet v0.14.0, Ubuntu 24.04.1 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.102
  [Host]     : .NET 8.0.12 (8.0.1224.60305), X64 RyuJIT AVX2
  Job-NUFONJ : .NET 9.0.1 (9.0.124.61010), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 2,063.2658 ns 10.4621 ns 11.1944 ns 4.89 0.07 -
MemoryPackDeserializeSimpleClass 616.0847 ns 6.4575 ns 7.4364 ns 1.46 0.03 -
NinoDeserializeSimpleClass 421.7805 ns 5.1515 ns 5.7258 ns 1.00 0.02 -
MessagePackSerializeSimpleClass 1,116.6598 ns 8.7093 ns 10.0296 ns 4.74 0.06 700B
MemoryPackSerializeSimpleClass 598.0411 ns 4.0852 ns 4.5407 ns 2.54 0.03 755B
NinoSerializeSimpleClass 235.3723 ns 2.1701 ns 2.4991 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 198,152.8786 ns 1,128.6945 ns 1,207.6905 ns 4.55 0.06 -
MemoryPackDeserializeSimpleClasses 58,071.7230 ns 715.0983 ns 823.5082 ns 1.33 0.02 -
NinoDeserializeSimpleClasses 43,529.3830 ns 475.7481 ns 547.8722 ns 1.00 0.02 -
MessagePackSerializeSimpleClasses 110,117.0014 ns 438.4471 ns 487.3328 ns 5.11 0.06 68.36KB
MemoryPackSerializeSimpleClasses 61,208.8866 ns 502.5577 ns 578.7462 ns 2.84 0.04 73.73KB
NinoSerializeSimpleClasses 21,542.7051 ns 229.7729 ns 264.6069 ns 1.00 0.02 70.71KB
MessagePackDeserializeSimpleStruct 76.1772 ns 0.0966 ns 0.1034 ns 133.18 2.49 -
MemoryPackDeserializeSimpleStruct 2.0421 ns 0.0119 ns 0.0132 ns 3.57 0.07 -
NinoDeserializeSimpleStruct 0.5722 ns 0.0096 ns 0.0111 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 76.0309 ns 0.6313 ns 0.7270 ns 10.24 0.14 16B
MemoryPackSerializeSimpleStruct 16.9846 ns 0.8778 ns 1.0109 ns 2.29 0.14 16B
NinoSerializeSimpleStruct 7.4284 ns 0.0733 ns 0.0815 ns 1.00 0.02 16B
MessagePackDeserializeSimpleStructs 4,256.6025 ns 21.3214 ns 22.8137 ns 52.55 0.84 -
MemoryPackDeserializeSimpleStructs 102.2629 ns 0.6995 ns 0.7775 ns 1.26 0.02 -
NinoDeserializeSimpleStructs 81.0195 ns 1.1451 ns 1.2727 ns 1.00 0.02 -
MessagePackSerializeSimpleStructs 4,092.4152 ns 17.1752 ns 19.7790 ns 49.17 2.08 1.57KB
MemoryPackSerializeSimpleStructs 90.9573 ns 2.5875 ns 2.9797 ns 1.09 0.06 1.57KB
NinoSerializeSimpleStructs 83.3815 ns 3.3063 ns 3.6749 ns 1.00 0.06 1.57KB

v3.0.8

13 Jan 12:25
Compare
Choose a tag to compare
  • [fix] fixed source generator cannot detect the correct dictionary type parameters for a user defined dictionary subclass (#137)

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.101
  [Host]     : .NET 8.0.11 (8.0.1124.51707), X64 RyuJIT AVX2
  Job-INMBPX : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,998.6471 ns 19.1642 ns 22.0695 ns 4.42 0.06 -
MemoryPackDeserializeSimpleClass 647.1084 ns 1.3373 ns 1.3733 ns 1.43 0.01 -
NinoDeserializeSimpleClass 452.4172 ns 2.9334 ns 3.3781 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,120.2543 ns 1.8802 ns 2.0118 ns 4.52 0.03 700B
MemoryPackSerializeSimpleClass 623.4701 ns 2.2861 ns 2.5409 ns 2.52 0.02 755B
NinoSerializeSimpleClass 247.6820 ns 1.4196 ns 1.6348 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 195,282.6004 ns 617.8311 ns 661.0723 ns 4.22 0.02 -
MemoryPackDeserializeSimpleClasses 59,571.2941 ns 424.2646 ns 453.9583 ns 1.29 0.01 -
NinoDeserializeSimpleClasses 46,264.4674 ns 134.0171 ns 137.6257 ns 1.00 0.00 -
MessagePackSerializeSimpleClasses 108,406.1172 ns 612.3853 ns 680.6646 ns 4.64 0.04 68.36KB
MemoryPackSerializeSimpleClasses 58,256.3206 ns 227.9582 ns 262.5170 ns 2.49 0.02 73.73KB
NinoSerializeSimpleClasses 23,356.9886 ns 142.5557 ns 164.1674 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 75.2755 ns 0.3221 ns 0.3710 ns 136.25 4.00 -
MemoryPackDeserializeSimpleStruct 2.0350 ns 0.0184 ns 0.0205 ns 3.68 0.11 -
NinoDeserializeSimpleStruct 0.5530 ns 0.0153 ns 0.0170 ns 1.00 0.04 -
MessagePackSerializeSimpleStruct 74.0020 ns 0.2952 ns 0.3032 ns 9.35 0.09 16B
MemoryPackSerializeSimpleStruct 19.3432 ns 0.6606 ns 0.7607 ns 2.44 0.10 16B
NinoSerializeSimpleStruct 7.9121 ns 0.0600 ns 0.0666 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,137.6010 ns 20.3281 ns 23.4099 ns 29.94 0.45 -
MemoryPackDeserializeSimpleStructs 148.5899 ns 1.3888 ns 1.5994 ns 1.08 0.02 -
NinoDeserializeSimpleStructs 138.2269 ns 1.8006 ns 2.0013 ns 1.00 0.02 -
MessagePackSerializeSimpleStructs 4,111.8844 ns 22.4804 ns 24.0538 ns 30.57 0.53 1.57KB
MemoryPackSerializeSimpleStructs 142.9942 ns 2.2535 ns 2.4112 ns 1.06 0.02 1.57KB
NinoSerializeSimpleStructs 134.5482 ns 1.9504 ns 2.2461 ns 1.00 0.02 1.57KB

v3.0.7

05 Jan 09:45
Compare
Choose a tag to compare
  • [fix] fixed duplicate generated unsafe accessors to private members of a same type

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.101
  [Host]     : .NET 8.0.11 (8.0.1124.51707), X64 RyuJIT AVX2
  Job-VYYIYT : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Median Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,982.6813 ns 10.4537 ns 12.0385 ns 1,977.4613 ns 4.45 0.03 -
MemoryPackDeserializeSimpleClass 618.8695 ns 3.7704 ns 4.1908 ns 618.6636 ns 1.39 0.01 -
NinoDeserializeSimpleClass 445.6380 ns 2.0014 ns 2.2246 ns 446.0888 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,112.6178 ns 5.8777 ns 6.5330 ns 1,109.1845 ns 4.42 0.04 700B
MemoryPackSerializeSimpleClass 587.1748 ns 1.9954 ns 1.9598 ns 587.3810 ns 2.33 0.02 755B
NinoSerializeSimpleClass 251.9944 ns 1.4430 ns 1.6039 ns 251.9033 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 194,792.3228 ns 880.0652 ns 941.6600 ns 194,325.8888 ns 4.18 0.03 -
MemoryPackDeserializeSimpleClasses 59,595.3570 ns 218.5891 ns 242.9612 ns 59,630.0292 ns 1.28 0.01 -
NinoDeserializeSimpleClasses 46,645.7849 ns 282.3500 ns 302.1113 ns 46,576.6700 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 108,443.5696 ns 191.6576 ns 196.8182 ns 108,416.7607 ns 4.66 0.04 68.36KB
MemoryPackSerializeSimpleClasses 55,781.3597 ns 122.7035 ns 136.3846 ns 55,781.8162 ns 2.40 0.02 73.73KB
NinoSerializeSimpleClasses 23,271.7105 ns 187.4044 ns 215.8152 ns 23,246.9346 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 74.6299 ns 0.0916 ns 0.0900 ns 74.6081 ns 133.72 2.56 -
MemoryPackDeserializeSimpleStruct 2.0454 ns 0.0177 ns 0.0204 ns 2.0378 ns 3.66 0.08 -
NinoDeserializeSimpleStruct 0.5583 ns 0.0099 ns 0.0110 ns 0.5547 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 74.9144 ns 0.4222 ns 0.4862 ns 74.5956 ns 9.47 0.15 16B
MemoryPackSerializeSimpleStruct 19.2639 ns 0.6906 ns 0.7953 ns 18.9870 ns 2.44 0.10 16B
NinoSerializeSimpleStruct 7.9085 ns 0.1059 ns 0.1219 ns 7.8651 ns 1.00 0.02 16B
MessagePackDeserializeSimpleStructs 4,182.3643 ns 27.6525 ns 31.8446 ns 4,177.8929 ns 31.10 0.49 -
MemoryPackDeserializeSimpleStructs 161.6057 ns 1.1641 ns 1.2939 ns 161.8811 ns 1.20 0.02 -
NinoDeserializeSimpleStructs 134.5283 ns 1.6615 ns 1.9133 ns 135.3251 ns 1.00 0.02 -
MessagePackSerializeSimpleStructs 4,009.8648 ns 21.3580 ns 23.7394 ns 4,000.2133 ns 29.96 0.47 1.57KB
MemoryPackSerializeSimpleStructs 142.6947 ns 1.7321 ns 1.9252 ns 142.7637 ns 1.07 0.02 1.57KB
NinoSerializeSimpleStructs 133.8488 ns 1.7135 ns 1.9733 ns 134.4384 ns 1.00 0.02 1.57KB

v3.0.6

05 Jan 07:53
Compare
Choose a tag to compare

Nino.Serialization v3.0.6

  • [Feat] Support serialize/deserialize private members (fix #136)

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.101
  [Host]     : .NET 8.0.11 (8.0.1124.51707), X64 RyuJIT AVX2
  Job-VWOXME : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,981.4656 ns 16.6829 ns 18.5430 ns 4.39 0.04 -
MemoryPackDeserializeSimpleClass 621.6240 ns 2.8433 ns 3.1603 ns 1.38 0.01 -
NinoDeserializeSimpleClass 451.5295 ns 1.3389 ns 1.5419 ns 1.00 0.00 -
MessagePackSerializeSimpleClass 1,100.3947 ns 2.7849 ns 2.7351 ns 4.40 0.02 700B
MemoryPackSerializeSimpleClass 626.6149 ns 2.5707 ns 2.7506 ns 2.50 0.01 755B
NinoSerializeSimpleClass 250.3579 ns 0.8063 ns 0.8962 ns 1.00 0.00 724B
MessagePackDeserializeSimpleClasses 204,022.6816 ns 555.7700 ns 570.7349 ns 4.38 0.02 -
MemoryPackDeserializeSimpleClasses 61,802.0785 ns 369.2693 ns 410.4418 ns 1.33 0.01 -
NinoDeserializeSimpleClasses 46,629.7258 ns 209.7701 ns 233.1589 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 108,682.3576 ns 316.3904 ns 338.5342 ns 4.54 0.02 68.36KB
MemoryPackSerializeSimpleClasses 54,154.6057 ns 221.9510 ns 246.6980 ns 2.26 0.01 73.73KB
NinoSerializeSimpleClasses 23,919.6656 ns 95.9851 ns 98.5696 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 79.6687 ns 0.0960 ns 0.0986 ns 144.31 2.91 -
MemoryPackDeserializeSimpleStruct 2.0353 ns 0.0109 ns 0.0112 ns 3.69 0.08 -
NinoDeserializeSimpleStruct 0.5523 ns 0.0105 ns 0.0116 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 73.2844 ns 0.3950 ns 0.4549 ns 9.20 0.08 16B
MemoryPackSerializeSimpleStruct 20.3414 ns 0.6374 ns 0.7340 ns 2.55 0.09 16B
NinoSerializeSimpleStruct 7.9694 ns 0.0439 ns 0.0469 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,205.9200 ns 22.1014 ns 24.5656 ns 31.59 0.40 -
MemoryPackDeserializeSimpleStructs 153.8184 ns 0.7814 ns 0.8999 ns 1.16 0.01 -
NinoDeserializeSimpleStructs 133.1590 ns 1.4161 ns 1.5740 ns 1.00 0.02 -
MessagePackSerializeSimpleStructs 4,039.5743 ns 10.4096 ns 10.6899 ns 30.45 0.27 1.57KB
MemoryPackSerializeSimpleStructs 138.7835 ns 1.4208 ns 1.6362 ns 1.05 0.01 1.57KB
NinoSerializeSimpleStructs 132.6775 ns 1.0771 ns 1.1525 ns 1.00 0.01 1.57KB

v3.0.5

17 Nov 23:20
Compare
Choose a tag to compare

Nino.Serialization v3.0.5

  • [Fix] Ignore collecting raw generic nested types (unity 6000)

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
  [Host]     : .NET 8.0.11 (8.0.1124.51707), X64 RyuJIT AVX2
  Job-SCNGFD : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Median Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,985.3743 ns 24.4607 ns 27.1880 ns 1,970.5170 ns 4.37 0.06 -
MemoryPackDeserializeSimpleClass 624.6797 ns 4.3747 ns 5.0380 ns 623.2197 ns 1.37 0.01 -
NinoDeserializeSimpleClass 454.7945 ns 1.4516 ns 1.6135 ns 454.7303 ns 1.00 0.00 -
MessagePackSerializeSimpleClass 1,096.5773 ns 4.7833 ns 5.5085 ns 1,093.7260 ns 4.34 0.03 700B
MemoryPackSerializeSimpleClass 614.8886 ns 3.4028 ns 3.6409 ns 613.4310 ns 2.43 0.02 755B
NinoSerializeSimpleClass 252.8491 ns 1.3410 ns 1.5443 ns 252.3363 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 195,828.9172 ns 978.9880 ns 1,088.1426 ns 195,326.0630 ns 4.18 0.03 -
MemoryPackDeserializeSimpleClasses 59,729.5078 ns 212.9275 ns 227.8300 ns 59,718.1633 ns 1.27 0.01 -
NinoDeserializeSimpleClasses 46,881.8082 ns 201.2176 ns 223.6529 ns 46,838.2684 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 112,076.2754 ns 375.3113 ns 417.1575 ns 112,022.2861 ns 4.80 0.03 68.36KB
MemoryPackSerializeSimpleClasses 53,984.3838 ns 285.8302 ns 329.1625 ns 54,003.0208 ns 2.31 0.02 73.73KB
NinoSerializeSimpleClasses 23,346.1559 ns 103.4530 ns 114.9877 ns 23,322.6455 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 74.7648 ns 0.3147 ns 0.3624 ns 74.5211 ns 133.60 2.95 -
MemoryPackDeserializeSimpleStruct 2.0421 ns 0.0104 ns 0.0116 ns 2.0392 ns 3.65 0.08 -
NinoDeserializeSimpleStruct 0.5599 ns 0.0108 ns 0.0124 ns 0.5577 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 78.0735 ns 0.4018 ns 0.4466 ns 77.8533 ns 9.91 0.09 16B
MemoryPackSerializeSimpleStruct 20.3852 ns 0.4674 ns 0.5382 ns 20.4906 ns 2.59 0.07 16B
NinoSerializeSimpleStruct 7.8808 ns 0.0525 ns 0.0604 ns 7.8659 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,274.3509 ns 8.6680 ns 8.9014 ns 4,272.7397 ns 31.57 0.47 -
MemoryPackDeserializeSimpleStructs 156.6848 ns 1.8358 ns 2.1142 ns 156.2027 ns 1.16 0.02 -
NinoDeserializeSimpleStructs 135.4275 ns 1.7698 ns 2.0381 ns 135.7594 ns 1.00 0.02 -
MessagePackSerializeSimpleStructs 4,127.7329 ns 15.3387 ns 16.4123 ns 4,123.9753 ns 30.12 0.37 1.57KB
MemoryPackSerializeSimpleStructs 145.9662 ns 1.4931 ns 1.7195 ns 146.5467 ns 1.07 0.02 1.57KB
NinoSerializeSimpleStructs 137.0517 ns 1.4162 ns 1.6309 ns 137.2876 ns 1.00 0.02 1.57KB

v3.0.4

16 Nov 03:22
Compare
Choose a tag to compare

Nino.Serialization v3.0.4

  • [Fix] Skip collecting static public members
  • [Feat] Support ReadOnlySpan<byte> for deserialization

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
  [Host]     : .NET 8.0.11 (8.0.1124.51707), X64 RyuJIT AVX2
  Job-MGHRFM : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 2,035.9715 ns 37.3584 ns 41.5237 ns 4.25 0.17 -
MemoryPackDeserializeSimpleClass 644.3042 ns 16.3109 ns 18.7837 ns 1.35 0.06 -
NinoDeserializeSimpleClass 479.2612 ns 14.2505 ns 16.4109 ns 1.00 0.05 -
MessagePackSerializeSimpleClass 1,127.8851 ns 13.4621 ns 14.9631 ns 4.26 0.14 700B
MemoryPackSerializeSimpleClass 607.1775 ns 4.0852 ns 4.3711 ns 2.29 0.07 755B
NinoSerializeSimpleClass 265.0927 ns 7.3339 ns 8.4457 ns 1.00 0.04 724B
MessagePackDeserializeSimpleClasses 197,149.2356 ns 2,229.1963 ns 2,567.1458 ns 4.23 0.06 -
MemoryPackDeserializeSimpleClasses 59,685.6655 ns 324.4230 ns 360.5953 ns 1.28 0.01 -
NinoDeserializeSimpleClasses 46,650.3091 ns 218.4433 ns 242.7991 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 109,739.7219 ns 430.5003 ns 460.6305 ns 4.76 0.03 68.36KB
MemoryPackSerializeSimpleClasses 64,925.0475 ns 850.6376 ns 979.5955 ns 2.81 0.04 73.73KB
NinoSerializeSimpleClasses 23,077.6987 ns 107.3350 ns 119.3026 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 74.7333 ns 0.0551 ns 0.0566 ns 136.40 1.51 -
MemoryPackDeserializeSimpleStruct 2.0369 ns 0.0048 ns 0.0051 ns 3.72 0.04 -
NinoDeserializeSimpleStruct 0.5480 ns 0.0059 ns 0.0063 ns 1.00 0.02 -
MessagePackSerializeSimpleStruct 74.6543 ns 0.5264 ns 0.6062 ns 9.38 0.13 16B
MemoryPackSerializeSimpleStruct 19.0431 ns 0.5523 ns 0.6360 ns 2.39 0.08 16B
NinoSerializeSimpleStruct 7.9577 ns 0.0811 ns 0.0934 ns 1.00 0.02 16B
MessagePackDeserializeSimpleStructs 4,286.3970 ns 16.6636 ns 19.1898 ns 30.65 0.74 -
MemoryPackDeserializeSimpleStructs 169.2933 ns 3.5751 ns 3.8253 ns 1.21 0.04 -
NinoDeserializeSimpleStructs 139.9229 ns 3.2106 ns 3.4353 ns 1.00 0.03 -
MessagePackSerializeSimpleStructs 4,165.7576 ns 8.8820 ns 8.7233 ns 22.12 3.61 1.57KB
MemoryPackSerializeSimpleStructs 205.1384 ns 48.0905 ns 55.3810 ns 1.09 0.34 1.57KB
NinoSerializeSimpleStructs 194.1909 ns 32.1944 ns 37.0751 ns 1.03 0.26 1.57KB

v3.0.3

15 Nov 09:19
Compare
Choose a tag to compare

Nino.Serialization v3.0.3

  • [Fix] Consists serialization strategy for unmanaged polymorphic structs
  • [Fix] Fix Unity unable to serialize unmanaged list correctly
  • [Fix] Add check endianness to ensure collection can be serialized appropriately on big endian architectures

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
  [Host]     : .NET 8.0.11 (8.0.1124.51707), X64 RyuJIT AVX2
  Job-TBROBM : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 2,007.0603 ns 2.7570 ns 2.8312 ns 4.47 0.02 -
MemoryPackDeserializeSimpleClass 623.9433 ns 3.0995 ns 3.4450 ns 1.39 0.01 -
NinoDeserializeSimpleClass 449.0151 ns 2.1602 ns 2.3114 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,085.5300 ns 4.0350 ns 4.1436 ns 4.16 0.03 700B
MemoryPackSerializeSimpleClass 605.7858 ns 2.2351 ns 2.5740 ns 2.32 0.02 755B
NinoSerializeSimpleClass 260.7239 ns 1.2057 ns 1.3401 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 199,262.0091 ns 1,044.2809 ns 1,202.5954 ns 4.24 0.04 -
MemoryPackDeserializeSimpleClasses 59,698.0319 ns 435.3903 ns 483.9352 ns 1.27 0.01 -
NinoDeserializeSimpleClasses 46,980.7832 ns 273.5270 ns 304.0246 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 110,112.6896 ns 797.2330 ns 886.1223 ns 4.68 0.06 68.36KB
MemoryPackSerializeSimpleClasses 55,278.4835 ns 358.9509 ns 413.3683 ns 2.35 0.03 73.73KB
NinoSerializeSimpleClasses 23,546.6177 ns 192.6321 ns 214.1101 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 76.2198 ns 0.2691 ns 0.2991 ns 131.55 2.59 -
MemoryPackDeserializeSimpleStruct 2.0279 ns 0.0052 ns 0.0053 ns 3.50 0.07 -
NinoDeserializeSimpleStruct 0.5796 ns 0.0101 ns 0.0116 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 76.0057 ns 0.6046 ns 0.6470 ns 9.53 0.10 16B
MemoryPackSerializeSimpleStruct 18.9084 ns 0.7117 ns 0.8196 ns 2.37 0.10 16B
NinoSerializeSimpleStruct 7.9725 ns 0.0472 ns 0.0524 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,177.5059 ns 10.3970 ns 10.6769 ns 32.33 0.24 -
MemoryPackDeserializeSimpleStructs 157.9368 ns 0.9536 ns 1.0982 ns 1.22 0.01 -
NinoDeserializeSimpleStructs 129.2308 ns 0.8464 ns 0.9408 ns 1.00 0.01 -
MessagePackSerializeSimpleStructs 4,048.5905 ns 7.5575 ns 8.0864 ns 30.90 0.37 1.57KB
MemoryPackSerializeSimpleStructs 140.2601 ns 1.1547 ns 1.2356 ns 1.07 0.02 1.57KB
NinoSerializeSimpleStructs 131.0608 ns 1.3623 ns 1.5689 ns 1.00 0.02 1.57KB

v3.0.2

15 Nov 01:24
Compare
Choose a tag to compare

Nino.Serialization v3.0.1

  • [Optimization] Faster list serialization/deserialization
  • [Feat] Support project with Nullable Reference Type enabled
  • [Feat] Support polymorphic struct (i.e. struct that inherits an interface annotated with [NinoType])

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
  [Host]     : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2
  Job-JXCOWS : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 2,030.5168 ns 14.8413 ns 16.4961 ns 4.17 0.08 -
MemoryPackDeserializeSimpleClass 636.4012 ns 5.1759 ns 5.7530 ns 1.31 0.03 -
NinoDeserializeSimpleClass 487.4967 ns 7.4729 ns 8.6058 ns 1.00 0.02 -
MessagePackSerializeSimpleClass 1,128.0798 ns 3.3490 ns 3.7225 ns 4.23 0.03 700B
MemoryPackSerializeSimpleClass 622.8903 ns 3.0521 ns 3.2657 ns 2.34 0.02 755B
NinoSerializeSimpleClass 266.5958 ns 1.7920 ns 1.9174 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 197,048.0165 ns 1,060.4166 ns 1,178.6503 ns 3.96 0.04 -
MemoryPackDeserializeSimpleClasses 61,694.0561 ns 378.7293 ns 420.9567 ns 1.24 0.01 -
NinoDeserializeSimpleClasses 49,805.8159 ns 383.7896 ns 441.9727 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 110,620.9334 ns 603.2758 ns 694.7333 ns 4.51 0.06 68.36KB
MemoryPackSerializeSimpleClasses 55,654.1749 ns 366.6118 ns 422.1906 ns 2.27 0.03 73.73KB
NinoSerializeSimpleClasses 24,507.1581 ns 249.4635 ns 287.2826 ns 1.00 0.02 70.71KB
MessagePackDeserializeSimpleStruct 77.0299 ns 0.5067 ns 0.5632 ns 136.57 2.87 -
MemoryPackDeserializeSimpleStruct 2.0380 ns 0.0138 ns 0.0153 ns 3.61 0.08 -
NinoDeserializeSimpleStruct 0.5642 ns 0.0116 ns 0.0119 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 77.0848 ns 0.4632 ns 0.5335 ns 9.11 0.13 16B
MemoryPackSerializeSimpleStruct 19.4318 ns 0.7446 ns 0.8574 ns 2.30 0.10 16B
NinoSerializeSimpleStruct 8.4626 ns 0.0917 ns 0.1056 ns 1.00 0.02 16B
MessagePackDeserializeSimpleStructs 4,233.1078 ns 13.6853 ns 14.6431 ns 26.91 0.76 -
MemoryPackDeserializeSimpleStructs 184.2313 ns 2.7592 ns 3.1775 ns 1.17 0.04 -
NinoDeserializeSimpleStructs 157.4491 ns 4.1533 ns 4.6163 ns 1.00 0.04 -
MessagePackSerializeSimpleStructs 4,174.6225 ns 9.8653 ns 10.1310 ns 26.64 0.69 1.57KB
MemoryPackSerializeSimpleStructs 160.8183 ns 3.3246 ns 3.4141 ns 1.03 0.03 1.57KB
NinoSerializeSimpleStructs 156.8028 ns 3.7646 ns 4.1844 ns 1.00 0.04 1.57KB