Skip to content

Releases: JasonXuDeveloper/Nino

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

v3.0.1

13 Nov 10:42
Compare
Choose a tag to compare

Nino.Serialization v3.0.1

  • [Fix] Fix endianness issue for empty collections
  • [Optimization] Faster deserialization for List types
  • [Feat] Nino for Unity now installs via UPM

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-UDEFYT : .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,996.9318 ns 5.8131 ns 5.7092 ns 4.51 0.03 -
MemoryPackDeserializeSimpleClass 609.7679 ns 2.2801 ns 2.5344 ns 1.38 0.01 -
NinoDeserializeSimpleClass 442.7896 ns 2.4367 ns 2.8061 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,112.9910 ns 1.4135 ns 1.4516 ns 4.46 0.02 700B
MemoryPackSerializeSimpleClass 610.6922 ns 2.0925 ns 2.2389 ns 2.45 0.01 755B
NinoSerializeSimpleClass 249.6187 ns 0.9144 ns 0.9784 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 196,423.8561 ns 1,025.8870 ns 1,181.4130 ns 4.24 0.03 -
MemoryPackDeserializeSimpleClasses 59,163.3138 ns 309.3698 ns 331.0222 ns 1.28 0.01 -
NinoDeserializeSimpleClasses 46,370.0857 ns 239.2497 ns 245.6918 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 108,997.3315 ns 171.3512 ns 190.4564 ns 4.82 0.02 68.36KB
MemoryPackSerializeSimpleClasses 57,760.9782 ns 227.7825 ns 243.7247 ns 2.55 0.02 73.73KB
NinoSerializeSimpleClasses 22,608.9590 ns 101.2861 ns 112.5792 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 74.2694 ns 0.2833 ns 0.3149 ns 128.61 2.33 -
MemoryPackDeserializeSimpleStruct 2.0172 ns 0.0050 ns 0.0056 ns 3.49 0.06 -
NinoDeserializeSimpleStruct 0.5777 ns 0.0096 ns 0.0106 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 76.6123 ns 0.4130 ns 0.4590 ns 10.23 0.11 16B
MemoryPackSerializeSimpleStruct 10.2233 ns 0.0691 ns 0.0795 ns 1.37 0.02 16B
NinoSerializeSimpleStruct 7.4894 ns 0.0623 ns 0.0667 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,194.2211 ns 8.8535 ns 9.4731 ns 32.94 0.65 -
MemoryPackDeserializeSimpleStructs 157.4929 ns 1.4636 ns 1.6268 ns 1.24 0.03 -
NinoDeserializeSimpleStructs 127.3916 ns 2.2524 ns 2.5939 ns 1.00 0.03 -
MessagePackSerializeSimpleStructs 4,157.2686 ns 22.5473 ns 25.9655 ns 32.05 0.67 1.57KB
MemoryPackSerializeSimpleStructs 142.3828 ns 2.2060 ns 2.5405 ns 1.10 0.03 1.57KB
NinoSerializeSimpleStructs 129.7484 ns 2.3266 ns 2.6793 ns 1.00 0.03 1.57KB

v3.0.0

12 Nov 14:24
Compare
Choose a tag to compare

Nino.Serialization v3.0.0

  • [Optimization] Significantly faster serialization/deserialization
  • [Optimization] Reduce serialized binary size for string/collection/nullable
  • [Feat] Support serialize user-defined string in UTF-8
  • [Feat] Officially support cross-project referencing/inheriting NinoTypes

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-XNFPQM : .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,989.5675 ns 7.7502 ns 7.9589 ns 4.36 0.03 -
MemoryPackDeserializeSimpleClass 619.5664 ns 3.1183 ns 3.5910 ns 1.36 0.01 -
NinoDeserializeSimpleClass 456.3293 ns 2.3063 ns 2.6559 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,112.9107 ns 2.1391 ns 2.1009 ns 4.39 0.03 700B
MemoryPackSerializeSimpleClass 584.9595 ns 3.7039 ns 4.1169 ns 2.31 0.02 755B
NinoSerializeSimpleClass 253.3733 ns 1.8258 ns 1.9536 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 194,239.6624 ns 1,153.2492 ns 1,281.8334 ns 4.09 0.04 -
MemoryPackDeserializeSimpleClasses 60,379.9549 ns 360.4857 ns 370.1922 ns 1.27 0.01 -
NinoDeserializeSimpleClasses 47,537.9703 ns 278.0723 ns 320.2285 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 109,926.0461 ns 487.1932 ns 561.0524 ns 4.64 0.04 68.36KB
MemoryPackSerializeSimpleClasses 54,562.6891 ns 355.0711 ns 408.9004 ns 2.31 0.02 73.73KB
NinoSerializeSimpleClasses 23,670.9496 ns 170.5554 ns 189.5719 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 74.0065 ns 0.0545 ns 0.0560 ns 126.73 1.80 -
MemoryPackDeserializeSimpleStruct 2.0337 ns 0.0118 ns 0.0136 ns 3.48 0.05 -
NinoDeserializeSimpleStruct 0.5841 ns 0.0080 ns 0.0085 ns 1.00 0.02 -
MessagePackSerializeSimpleStruct 78.7078 ns 0.6090 ns 0.6769 ns 9.05 0.10 16B
MemoryPackSerializeSimpleStruct 16.0308 ns 1.1811 ns 1.2637 ns 1.84 0.14 16B
NinoSerializeSimpleStruct 8.7005 ns 0.0527 ns 0.0607 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,677.0999 ns 24.5057 ns 28.2208 ns 34.22 0.49 -
MemoryPackDeserializeSimpleStructs 164.0958 ns 1.3463 ns 1.4964 ns 1.20 0.02 -
NinoDeserializeSimpleStructs 136.6830 ns 1.6540 ns 1.8384 ns 1.00 0.02 -
MessagePackSerializeSimpleStructs 4,018.0001 ns 7.3613 ns 7.2298 ns 29.05 0.29 1.57KB
MemoryPackSerializeSimpleStructs 149.4565 ns 2.0011 ns 2.3045 ns 1.08 0.02 1.57KB
NinoSerializeSimpleStructs 138.3060 ns 1.2612 ns 1.4019 ns 1.00 0.01 1.57KB

v2.2.1

11 Nov 14:23
Compare
Choose a tag to compare

Nino.Serialization v2.2.1

  • [Feat] Support a more flexible version tolerance, useful for adding serialize members for a checkpoint data type remaining the capability to deserialize the old data 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.100-rc.2.24474.11
  [Host]     : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2
  Job-CFIGSB : .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,963.3181 ns 6.8516 ns 7.0361 ns 3.47 0.03 -
MemoryPackDeserializeSimpleClass 608.1763 ns 1.9795 ns 2.2796 ns 1.08 0.01 -
NinoDeserializeSimpleClass 565.6419 ns 4.1232 ns 4.5829 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,095.5106 ns 1.7042 ns 1.7501 ns 3.30 0.02 674B
MemoryPackSerializeSimpleClass 585.7018 ns 3.5549 ns 4.0938 ns 1.77 0.02 730B
NinoSerializeSimpleClass 331.6054 ns 1.9492 ns 2.2447 ns 1.00 0.01 738B
MessagePackDeserializeSimpleClasses 195,323.4316 ns 1,466.9097 ns 1,630.4662 ns 3.46 0.04 -
MemoryPackDeserializeSimpleClasses 58,790.4798 ns 141.8890 ns 145.7096 ns 1.04 0.01 -
NinoDeserializeSimpleClasses 56,375.4169 ns 327.4582 ns 377.1013 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 109,698.1583 ns 475.7013 ns 547.8183 ns 3.52 0.03 65.82KB
MemoryPackSerializeSimpleClasses 54,346.7589 ns 287.2081 ns 330.7493 ns 1.74 0.02 71.29KB
NinoSerializeSimpleClasses 31,168.5957 ns 191.6910 ns 213.0640 ns 1.00 0.01 72.08KB
MessagePackDeserializeSimpleStruct 74.1438 ns 0.0719 ns 0.0738 ns 129.46 2.79 -
MemoryPackDeserializeSimpleStruct 2.0490 ns 0.0090 ns 0.0103 ns 3.58 0.08 -
NinoDeserializeSimpleStruct 0.5730 ns 0.0111 ns 0.0128 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 79.3627 ns 0.3729 ns 0.4295 ns 9.75 0.09 16B
MemoryPackSerializeSimpleStruct 17.9138 ns 1.3988 ns 1.6109 ns 2.20 0.19 16B
NinoSerializeSimpleStruct 8.1384 ns 0.0613 ns 0.0681 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,219.9788 ns 6.6368 ns 7.1013 ns 31.04 0.47 -
MemoryPackDeserializeSimpleStructs 159.1069 ns 1.9502 ns 2.1676 ns 1.17 0.02 -
NinoDeserializeSimpleStructs 135.9825 ns 1.9739 ns 2.1121 ns 1.00 0.02 -
MessagePackSerializeSimpleStructs 4,071.2594 ns 9.3441 ns 9.1772 ns 30.35 0.79 1.57KB
MemoryPackSerializeSimpleStructs 144.2518 ns 1.7250 ns 1.8458 ns 1.08 0.03 1.57KB
NinoSerializeSimpleStructs 134.2493 ns 3.1132 ns 3.5852 ns 1.00 0.04 1.57KB

v2.2.0

11 Nov 08:34
Compare
Choose a tag to compare

Nino.Serialization v2.2.0

  • [Fix] Fixed problematic code - SubClass serialization/deserialization methods missing BaseClass members

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-XWECNB : .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,976.3903 ns 13.6301 ns 15.1498 ns 3.51 0.03 -
MemoryPackDeserializeSimpleClass 613.2330 ns 3.1437 ns 3.3637 ns 1.09 0.01 -
NinoDeserializeSimpleClass 563.6727 ns 3.4443 ns 3.8283 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,104.6602 ns 4.3398 ns 4.8236 ns 3.28 0.02 674B
MemoryPackSerializeSimpleClass 587.1644 ns 2.5572 ns 2.9448 ns 1.75 0.01 730B
NinoSerializeSimpleClass 336.4735 ns 1.2712 ns 1.3602 ns 1.00 0.01 738B
MessagePackDeserializeSimpleClasses 197,116.4836 ns 1,160.3236 ns 1,336.2304 ns 3.39 0.03 -
MemoryPackDeserializeSimpleClasses 60,976.2618 ns 382.2775 ns 440.2313 ns 1.05 0.01 -
NinoDeserializeSimpleClasses 58,110.1033 ns 302.6248 ns 310.7734 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 110,426.4808 ns 529.7528 ns 610.0641 ns 3.50 0.03 65.82KB
MemoryPackSerializeSimpleClasses 53,251.4175 ns 356.2841 ns 396.0088 ns 1.69 0.02 71.29KB
NinoSerializeSimpleClasses 31,524.5615 ns 221.8942 ns 246.6348 ns 1.00 0.01 72.08KB
MessagePackDeserializeSimpleStruct 74.2676 ns 0.3259 ns 0.3622 ns 128.72 2.15 -
MemoryPackDeserializeSimpleStruct 2.0519 ns 0.0074 ns 0.0076 ns 3.56 0.06 -
NinoDeserializeSimpleStruct 0.5771 ns 0.0086 ns 0.0096 ns 1.00 0.02 -
MessagePackSerializeSimpleStruct 81.7755 ns 0.3839 ns 0.4421 ns 9.81 0.11 16B
MemoryPackSerializeSimpleStruct 20.1224 ns 0.5498 ns 0.6332 ns 2.41 0.08 16B
NinoSerializeSimpleStruct 8.3332 ns 0.0711 ns 0.0819 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,306.4840 ns 24.0243 ns 27.6665 ns 31.12 0.84 -
MemoryPackDeserializeSimpleStructs 169.3851 ns 1.8789 ns 2.0884 ns 1.22 0.04 -
NinoDeserializeSimpleStructs 138.4975 ns 3.2730 ns 3.7692 ns 1.00 0.04 -
MessagePackSerializeSimpleStructs 4,462.7371 ns 24.0981 ns 27.7515 ns 31.17 1.02 1.57KB
MemoryPackSerializeSimpleStructs 143.6142 ns 3.5640 ns 3.9614 ns 1.00 0.04 1.57KB
NinoSerializeSimpleStructs 143.3231 ns 4.3826 ns 4.8712 ns 1.00 0.05 1.57KB