Skip to content

Releases: JasonXuDeveloper/Nino

v2.1.9

11 Nov 06:11
Compare
Choose a tag to compare

Nino.Serialization v2.1.9

  • [Optimization] Faster 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-rc.2.24474.11
  [Host]     : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2
  Job-SZEINI : .NET 9.0.0 (9.0.24.47305), X64 RyuJIT AVX2

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,656.9624 ns 9.9603 ns 11.4703 ns 2.91 0.02 -
MemoryPackDeserializeSimpleClass 608.0360 ns 3.1047 ns 3.4509 ns 1.07 0.01 -
NinoDeserializeSimpleClass 570.3600 ns 2.8679 ns 3.0687 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,125.5807 ns 5.5435 ns 6.1616 ns 3.48 0.03 674B
MemoryPackSerializeSimpleClass 609.3890 ns 3.5311 ns 4.0665 ns 1.88 0.02 730B
NinoSerializeSimpleClass 323.6658 ns 1.6040 ns 1.8472 ns 1.00 0.01 738B
MessagePackDeserializeSimpleClasses 162,804.0272 ns 343.7450 ns 353.0008 ns 2.79 0.02 -
MemoryPackDeserializeSimpleClasses 58,781.6250 ns 298.9097 ns 344.2249 ns 1.01 0.01 -
NinoDeserializeSimpleClasses 58,359.4109 ns 387.2718 ns 445.9828 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 113,251.7774 ns 739.2237 ns 851.2911 ns 3.65 0.03 65.82KB
MemoryPackSerializeSimpleClasses 54,493.0301 ns 206.2871 ns 229.2876 ns 1.75 0.01 71.29KB
NinoSerializeSimpleClasses 31,058.3509 ns 91.0732 ns 93.5254 ns 1.00 0.00 72.08KB
MessagePackDeserializeSimpleStruct 81.2077 ns 0.1415 ns 0.1390 ns 138.08 1.36 -
MemoryPackDeserializeSimpleStruct 2.0382 ns 0.0038 ns 0.0039 ns 3.47 0.03 -
NinoDeserializeSimpleStruct 0.5882 ns 0.0057 ns 0.0058 ns 1.00 0.01 -
MessagePackSerializeSimpleStruct 84.2770 ns 0.1370 ns 0.1346 ns 10.63 0.07 16B
MemoryPackSerializeSimpleStruct 9.2679 ns 0.0434 ns 0.0482 ns 1.17 0.01 16B
NinoSerializeSimpleStruct 7.9262 ns 0.0482 ns 0.0495 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 5,271.5162 ns 22.1376 ns 25.4937 ns 39.39 0.48 -
MemoryPackDeserializeSimpleStructs 157.9820 ns 1.3055 ns 1.4511 ns 1.18 0.02 -
NinoDeserializeSimpleStructs 133.8341 ns 1.3427 ns 1.5463 ns 1.00 0.02 -
MessagePackSerializeSimpleStructs 4,426.8278 ns 28.6685 ns 33.0147 ns 33.35 0.62 1.57KB
MemoryPackSerializeSimpleStructs 138.0466 ns 2.0237 ns 2.3305 ns 1.04 0.02 1.57KB
NinoSerializeSimpleStructs 132.7684 ns 2.1022 ns 2.3366 ns 1.00 0.02 1.57KB

v2.1.8

10 Nov 12:03
Compare
Choose a tag to compare

Nino.Serialization v2.1.8

  • [Optimization] Faster serialization

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

Runtime=.NET 9.0  IterationCount=20  WarmupCount=1  

Method Mean Error StdDev Median Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,684.0757 ns 7.1423 ns 8.2251 ns 1,681.4270 ns 3.03 0.02 -
MemoryPackDeserializeSimpleClass 618.1002 ns 2.3659 ns 2.7246 ns 617.0318 ns 1.11 0.01 -
NinoDeserializeSimpleClass 555.8418 ns 1.9607 ns 2.1793 ns 555.5859 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,141.3295 ns 5.7109 ns 6.5767 ns 1,137.6271 ns 3.51 0.02 674B
MemoryPackSerializeSimpleClass 604.3100 ns 2.0698 ns 2.3006 ns 603.3671 ns 1.86 0.01 730B
NinoSerializeSimpleClass 325.4018 ns 0.6526 ns 0.6983 ns 325.1884 ns 1.00 0.00 738B
MessagePackDeserializeSimpleClasses 166,229.3099 ns 341.8615 ns 351.0665 ns 166,196.4658 ns 2.78 0.02 -
MemoryPackDeserializeSimpleClasses 78,579.7798 ns 182.0141 ns 202.3082 ns 78,542.1035 ns 1.32 0.01 -
NinoDeserializeSimpleClasses 59,750.6624 ns 302.3367 ns 348.1714 ns 59,637.2159 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 111,610.1828 ns 514.2769 ns 592.2420 ns 111,416.6483 ns 3.56 0.02 65.82KB
MemoryPackSerializeSimpleClasses 55,009.0673 ns 150.6921 ns 167.4938 ns 54,951.1398 ns 1.76 0.01 71.29KB
NinoSerializeSimpleClasses 31,325.3520 ns 64.6677 ns 71.8780 ns 31,324.9421 ns 1.00 0.00 72.08KB
MessagePackDeserializeSimpleStruct 80.7844 ns 0.3209 ns 0.3295 ns 80.7307 ns 137.99 2.99 -
MemoryPackDeserializeSimpleStruct 2.0323 ns 0.0097 ns 0.0107 ns 2.0282 ns 3.47 0.08 -
NinoDeserializeSimpleStruct 0.5857 ns 0.0112 ns 0.0129 ns 0.5824 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 85.0759 ns 0.5106 ns 0.5675 ns 84.8559 ns 10.66 0.09 16B
MemoryPackSerializeSimpleStruct 9.2735 ns 0.0498 ns 0.0533 ns 9.2607 ns 1.16 0.01 16B
NinoSerializeSimpleStruct 7.9793 ns 0.0376 ns 0.0402 ns 7.9722 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 5,208.1481 ns 27.7600 ns 30.8551 ns 5,187.7041 ns 39.48 0.42 -
MemoryPackDeserializeSimpleStructs 154.1539 ns 0.9280 ns 1.0687 ns 154.0452 ns 1.17 0.01 -
NinoDeserializeSimpleStructs 131.9351 ns 1.0877 ns 1.2090 ns 131.8611 ns 1.00 0.01 -
MessagePackSerializeSimpleStructs 4,519.1601 ns 27.7335 ns 30.8257 ns 4,503.9492 ns 33.74 0.45 1.57KB
MemoryPackSerializeSimpleStructs 140.6034 ns 0.9953 ns 1.1063 ns 140.8824 ns 1.05 0.01 1.57KB
NinoSerializeSimpleStructs 133.9771 ns 1.4751 ns 1.5784 ns 134.0042 ns 1.00 0.02 1.57KB

v2.1.7

09 Nov 10:38
Compare
Choose a tag to compare

Nino.Serialization v2.1.7

  • [Optimization] Slightly more efficient serialization/deserialization code for polymorphic types
  • [Experimental] Attempt to make deserialization faster for unmanaged types (no guarantee)

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

Runtime=.NET 9.0  IterationCount=10  WarmupCount=1  

Method Mean Error StdDev Ratio RatioSD Payload
MessagePackDeserializeSimpleClass 1,735.7269 ns 64.7997 ns 42.8610 ns 3.06 0.07 -
MemoryPackDeserializeSimpleClass 600.1559 ns 3.1143 ns 1.8533 ns 1.06 0.01 -
NinoDeserializeSimpleClass 567.8731 ns 4.7725 ns 3.1567 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,121.5226 ns 5.4303 ns 3.2315 ns 3.50 0.02 674B
MemoryPackSerializeSimpleClass 574.5112 ns 4.6980 ns 3.1074 ns 1.79 0.01 730B
NinoSerializeSimpleClass 320.4567 ns 2.6210 ns 1.7337 ns 1.00 0.01 738B
MessagePackDeserializeSimpleClasses 167,518.8501 ns 2,634.1002 ns 1,742.2942 ns 2.93 0.03 -
MemoryPackDeserializeSimpleClasses 60,703.9168 ns 611.0878 ns 363.6485 ns 1.06 0.01 -
NinoDeserializeSimpleClasses 57,152.4554 ns 403.0304 ns 266.5797 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 115,971.2970 ns 676.3904 ns 402.5091 ns 3.80 0.02 65.82KB
MemoryPackSerializeSimpleClasses 53,379.3370 ns 344.3084 ns 204.8924 ns 1.75 0.01 71.29KB
NinoSerializeSimpleClasses 30,551.2235 ns 151.5804 ns 90.2031 ns 1.00 0.00 72.08KB
MessagePackDeserializeSimpleStruct 82.2872 ns 0.6339 ns 0.4193 ns 142.58 1.42 -
MemoryPackDeserializeSimpleStruct 2.0471 ns 0.0201 ns 0.0133 ns 3.55 0.04 -
NinoDeserializeSimpleStruct 0.5772 ns 0.0079 ns 0.0052 ns 1.00 0.01 -
MessagePackSerializeSimpleStruct 83.8371 ns 0.1810 ns 0.0947 ns 10.70 0.07 16B
MemoryPackSerializeSimpleStruct 9.3587 ns 0.0745 ns 0.0390 ns 1.19 0.01 16B
NinoSerializeSimpleStruct 7.8357 ns 0.0912 ns 0.0543 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 5,212.0233 ns 44.5651 ns 29.4771 ns 37.71 0.60 -
MemoryPackDeserializeSimpleStructs 156.2208 ns 2.8479 ns 1.6947 ns 1.13 0.02 -
NinoDeserializeSimpleStructs 138.2517 ns 3.2592 ns 2.1558 ns 1.00 0.02 -
MessagePackSerializeSimpleStructs 4,379.8118 ns 57.8007 ns 38.2316 ns 32.25 0.79 1.57KB
MemoryPackSerializeSimpleStructs 133.2084 ns 1.5474 ns 1.0235 ns 0.98 0.02 1.57KB
NinoSerializeSimpleStructs 135.8834 ns 4.9176 ns 3.2527 ns 1.00 0.03 1.57KB

v2.1.6

07 Nov 13:03
Compare
Choose a tag to compare

Nino.Serialization v2.1.6

  • [Feature] Support record struct
  • [Optimization] Smarter NinoType collect strategy

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-rc.2.24474.11
  [Host]     : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2
  Job-PQZETG : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2

Runtime=.NET 8.0  IterationCount=10  WarmupCount=1  

Method Mean Error StdDev Min Max Ratio Payload
MessagePackDeserializeSimpleClass 1,696.7026 ns 10.2447 ns 6.7762 ns 1,689.9501 ns 1,706.3650 ns 1.00 -
MemoryPackDeserializeSimpleClass 668.3706 ns 5.9804 ns 3.5588 ns 663.3981 ns 674.3817 ns 0.39 -
NinoDeserializeSimpleClass 580.4483 ns 3.4642 ns 2.0615 ns 576.7685 ns 583.5801 ns 0.34 -
MessagePackSerializeSimpleClass 1,196.2691 ns 11.1028 ns 7.3438 ns 1,187.9833 ns 1,205.9336 ns 1.00 674B
MemoryPackSerializeSimpleClass 714.3994 ns 5.9792 ns 3.5581 ns 710.4542 ns 719.9061 ns 0.60 730B
NinoSerializeSimpleClass 353.8937 ns 3.5052 ns 2.0859 ns 351.0278 ns 356.0494 ns 0.30 738B
MessagePackDeserializeSimpleClasses 50,126.3883 ns 202.9287 ns 106.1356 ns 49,994.0969 ns 50,252.6737 ns 1.00 -
MemoryPackDeserializeSimpleClasses 19,243.0195 ns 285.1748 ns 188.6255 ns 19,029.8776 ns 19,574.7762 ns 0.38 -
NinoDeserializeSimpleClasses 18,071.2733 ns 254.5807 ns 168.3894 ns 17,780.7536 ns 18,378.7213 ns 0.36 -
MessagePackSerializeSimpleClasses 34,206.6663 ns 224.5739 ns 133.6403 ns 34,038.8065 ns 34,431.9599 ns 1.00 19.75KB
MemoryPackSerializeSimpleClasses 19,440.4672 ns 141.6365 ns 84.2856 ns 19,346.9999 ns 19,595.8338 ns 0.57 21.39KB
NinoSerializeSimpleClasses 9,730.9522 ns 116.7321 ns 69.4654 ns 9,579.3028 ns 9,807.7810 ns 0.28 21.63KB
MessagePackDeserializeSimpleStruct 78.8479 ns 0.2152 ns 0.1280 ns 78.7127 ns 79.1365 ns 1.000 -
MemoryPackDeserializeSimpleStruct 2.7834 ns 0.0195 ns 0.0129 ns 2.7709 ns 2.8103 ns 0.035 -
NinoDeserializeSimpleStruct 0.5744 ns 0.0122 ns 0.0081 ns 0.5644 ns 0.5882 ns 0.007 -
MessagePackSerializeSimpleStruct 93.3848 ns 0.4568 ns 0.2718 ns 93.1425 ns 93.9194 ns 1.00 16B
MemoryPackSerializeSimpleStruct 22.3635 ns 0.8405 ns 0.5560 ns 21.6189 ns 23.0827 ns 0.24 16B
NinoSerializeSimpleStruct 8.3228 ns 0.1912 ns 0.1265 ns 8.2018 ns 8.5444 ns 0.09 16B
MessagePackDeserializeSimpleStructs 1,498.3710 ns 11.8682 ns 7.8501 ns 1,491.2468 ns 1,511.4347 ns 1.00 -
MemoryPackDeserializeSimpleStructs 86.7634 ns 1.1466 ns 0.7584 ns 85.8071 ns 87.6628 ns 0.06 -
NinoDeserializeSimpleStructs 51.9450 ns 0.7975 ns 0.5275 ns 51.2141 ns 52.6226 ns 0.03 -
MessagePackSerializeSimpleStructs 1,383.3442 ns 11.1277 ns 7.3603 ns 1,371.1882 ns 1,393.7797 ns 1.00 483B
MemoryPackSerializeSimpleStructs 59.6197 ns 0.7400 ns 0.4895 ns 58.9063 ns 60.4814 ns 0.04 484B
NinoSerializeSimpleStructs 52.5786 ns 0.5026 ns 0.3324 ns 52.0968 ns 53.1515 ns 0.04 486B

v2.1.5

02 Nov 02:48
Compare
Choose a tag to compare

Nino.Serialization v2.1.5

  • [Feature] Generic type serialization support (Closes #131)

v2.1.4

01 Nov 11:59
Compare
Choose a tag to compare

Nino.Serialization v2.1.4

  • [Optimization] Remove redundant code generation
  • [Optimization] Faster list deserialization
  • [Optimization] Slightly improved string serialization performance

v2.1.3

31 Oct 14:00
Compare
Choose a tag to compare

Nino.Serialization v2.1.3

  • [Optimization] Remove redundant type id allocation (i.e. abstract class/interface)
  • [Optimization] Slightly optimized serialization code (i.e. one less branch but a jump table)

v2.1.2

28 Oct 07:50
Compare
Choose a tag to compare

Nino.Serialization v2.1.2

  • [Optimisation] Faster serialization and deserialization for all present data types

v2.1.1

28 Oct 03:49
Compare
Choose a tag to compare

Nino.Serialization v2.1.1

  • [Fix] Fix overheads when deserializing a type with parameterless constructor
  • [Optimization] Optimize performance when deserializing types with custom parameters, make deserializing field members way faster

v2.1.0

27 Oct 11:03
Compare
Choose a tag to compare

Nino.Serialization v2.1.0

  • [Feature] Allow custom constructors for deserialization
  • [Feature] Allow record with primary constructors
  • [Feature] Fully support records