Skip to content

Releases: JasonXuDeveloper/Nino

v3.1.5

20 Feb 15:19
Compare
Choose a tag to compare
  • [fix] throw exception when serializing a non-ninotype polymorphic subtype in basetype's method
  • [feat] analyzer to provide useful code feedbacks to avoid compilation/runtime errors - with unit test provided

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.200
  [Host]     : .NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2
  Job-CFYWUE : .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 2,051.2741 ns 20.0670 ns 19.7085 ns 5.02 0.06 -
MemoryPackDeserializeSimpleClass 573.9536 ns 4.3352 ns 4.9924 ns 1.40 0.02 -
NinoDeserializeSimpleClass 408.5756 ns 2.7146 ns 2.9046 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,031.4298 ns 3.6260 ns 4.1757 ns 6.11 0.03 700B
MemoryPackSerializeSimpleClass 514.9892 ns 0.4587 ns 0.4505 ns 3.05 0.01 755B
NinoSerializeSimpleClass 168.8037 ns 0.2201 ns 0.2446 ns 1.00 0.00 724B
MessagePackDeserializeSimpleClasses 195,050.5637 ns 674.5578 ns 692.7212 ns 4.39 0.05 -
MemoryPackDeserializeSimpleClasses 57,322.2983 ns 225.5577 ns 241.3442 ns 1.29 0.01 -
NinoDeserializeSimpleClasses 44,471.1779 ns 445.7855 ns 495.4895 ns 1.00 0.02 -
MessagePackSerializeSimpleClasses 101,050.0174 ns 457.4877 ns 526.8435 ns 5.68 0.03 68.36KB
MemoryPackSerializeSimpleClasses 50,614.4208 ns 227.6230 ns 262.1310 ns 2.85 0.02 73.73KB
NinoSerializeSimpleClasses 17,788.9549 ns 35.7569 ns 35.1181 ns 1.00 0.00 70.71KB
MessagePackDeserializeSimpleStruct 76.4640 ns 0.1853 ns 0.2134 ns 138.17 2.56 -
MemoryPackDeserializeSimpleStruct 2.0247 ns 0.0084 ns 0.0093 ns 3.66 0.07 -
NinoDeserializeSimpleStruct 0.5536 ns 0.0092 ns 0.0106 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 82.1678 ns 0.2645 ns 0.3046 ns 9.63 0.04 16B
MemoryPackSerializeSimpleStruct 7.8518 ns 0.0284 ns 0.0327 ns 0.92 0.00 16B
NinoSerializeSimpleStruct 8.5364 ns 0.0163 ns 0.0167 ns 1.00 0.00 16B
MessagePackDeserializeSimpleStructs 4,243.5838 ns 49.4621 ns 52.9238 ns 51.77 0.87 -
MemoryPackDeserializeSimpleStructs 106.6506 ns 1.5457 ns 1.7180 ns 1.30 0.03 -
NinoDeserializeSimpleStructs 81.9746 ns 0.9104 ns 0.9741 ns 1.00 0.02 -
MessagePackSerializeSimpleStructs 3,902.1322 ns 16.3904 ns 18.8752 ns 79.61 0.40 1.57KB
MemoryPackSerializeSimpleStructs 50.0928 ns 0.0782 ns 0.0803 ns 1.02 0.00 1.57KB
NinoSerializeSimpleStructs 49.0182 ns 0.0762 ns 0.0782 ns 1.00 0.00 1.57KB

v3.1.4

18 Feb 11:16
Compare
Choose a tag to compare
  • [opt] make serialization slightly faster via using a shared bufferwriter while it is not serializing things in parallel

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.200
  [Host]     : .NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2
  Job-WVNICL : .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,988.2697 ns 32.0367 ns 36.8936 ns 4.96 0.09 -
MemoryPackDeserializeSimpleClass 573.2507 ns 2.6845 ns 2.9838 ns 1.43 0.01 -
NinoDeserializeSimpleClass 400.7535 ns 1.4634 ns 1.6265 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,030.4215 ns 4.5942 ns 5.1064 ns 5.87 0.05 700B
MemoryPackSerializeSimpleClass 532.3163 ns 2.1490 ns 2.2994 ns 3.03 0.02 755B
NinoSerializeSimpleClass 175.5698 ns 1.0395 ns 1.1123 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 192,175.7068 ns 872.1247 ns 1,004.3401 ns 4.28 0.08 -
MemoryPackDeserializeSimpleClasses 57,253.8884 ns 350.3758 ns 359.8101 ns 1.28 0.02 -
NinoDeserializeSimpleClasses 44,905.2994 ns 744.1691 ns 856.9862 ns 1.00 0.03 -
MessagePackSerializeSimpleClasses 101,128.9258 ns 329.4064 ns 352.4612 ns 5.50 0.03 68.36KB
MemoryPackSerializeSimpleClasses 50,107.6096 ns 468.9850 ns 540.0838 ns 2.73 0.03 73.73KB
NinoSerializeSimpleClasses 18,384.2238 ns 76.1675 ns 87.7147 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 76.5394 ns 0.1847 ns 0.2127 ns 136.36 2.56 -
MemoryPackDeserializeSimpleStruct 2.0440 ns 0.0137 ns 0.0152 ns 3.64 0.07 -
NinoDeserializeSimpleStruct 0.5615 ns 0.0093 ns 0.0108 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 83.4835 ns 0.3941 ns 0.4539 ns 9.74 0.08 16B
MemoryPackSerializeSimpleStruct 7.8985 ns 0.0449 ns 0.0518 ns 0.92 0.01 16B
NinoSerializeSimpleStruct 8.5739 ns 0.0437 ns 0.0503 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,190.5427 ns 45.5507 ns 52.4563 ns 50.67 0.79 -
MemoryPackDeserializeSimpleStructs 109.8279 ns 1.3538 ns 1.5047 ns 1.33 0.02 -
NinoDeserializeSimpleStructs 82.7086 ns 0.7211 ns 0.8304 ns 1.00 0.01 -
MessagePackSerializeSimpleStructs 3,911.8417 ns 4.3079 ns 4.2309 ns 80.05 0.23 1.57KB
MemoryPackSerializeSimpleStructs 49.5671 ns 0.2052 ns 0.2281 ns 1.01 0.01 1.57KB
NinoSerializeSimpleStructs 48.8707 ns 0.1394 ns 0.1370 ns 1.00 0.00 1.57KB

v3.1.3

18 Feb 06:45
Compare
Choose a tag to compare
  • [fix] empty collection runtime error fixed

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.200
  [Host]     : .NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2
  Job-LNGWMH : .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,981.0547 ns 10.0887 ns 11.6182 ns 4.93 0.04 -
MemoryPackDeserializeSimpleClass 580.9453 ns 7.1468 ns 8.2303 ns 1.45 0.02 -
NinoDeserializeSimpleClass 401.9138 ns 2.5479 ns 2.9342 ns 1.00 0.01 -
MessagePackSerializeSimpleClass 1,096.9102 ns 5.0955 ns 5.8680 ns 4.72 0.03 700B
MemoryPackSerializeSimpleClass 579.1345 ns 4.6559 ns 5.1750 ns 2.49 0.02 755B
NinoSerializeSimpleClass 232.3109 ns 0.9650 ns 1.0726 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 196,530.0433 ns 674.9711 ns 777.2978 ns 4.55 0.10 -
MemoryPackDeserializeSimpleClasses 55,913.9641 ns 498.6692 ns 554.2695 ns 1.30 0.03 -
NinoDeserializeSimpleClasses 43,185.7512 ns 865.2979 ns 961.7763 ns 1.00 0.03 -
MessagePackSerializeSimpleClasses 109,216.6918 ns 629.6977 ns 725.1608 ns 5.14 0.04 68.36KB
MemoryPackSerializeSimpleClasses 54,326.3359 ns 284.6133 ns 316.3469 ns 2.55 0.02 73.73KB
NinoSerializeSimpleClasses 21,267.2834 ns 83.1261 ns 88.9440 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 75.0119 ns 0.2080 ns 0.2226 ns 128.91 2.94 -
MemoryPackDeserializeSimpleStruct 2.0474 ns 0.0159 ns 0.0176 ns 3.52 0.08 -
NinoDeserializeSimpleStruct 0.5822 ns 0.0117 ns 0.0135 ns 1.00 0.03 -
MessagePackSerializeSimpleStruct 75.3467 ns 0.1494 ns 0.1598 ns 9.89 0.15 16B
MemoryPackSerializeSimpleStruct 16.9597 ns 0.7726 ns 0.8897 ns 2.23 0.12 16B
NinoSerializeSimpleStruct 7.6175 ns 0.1021 ns 0.1135 ns 1.00 0.02 16B
MessagePackDeserializeSimpleStructs 4,275.7878 ns 30.8739 ns 34.3162 ns 49.41 0.96 -
MemoryPackDeserializeSimpleStructs 118.9930 ns 1.9307 ns 2.2234 ns 1.37 0.04 -
NinoDeserializeSimpleStructs 86.5706 ns 1.3754 ns 1.5839 ns 1.00 0.03 -
MessagePackSerializeSimpleStructs 4,047.4877 ns 20.1925 ns 23.2537 ns 30.68 0.30 1.57KB
MemoryPackSerializeSimpleStructs 97.0084 ns 1.9391 ns 2.2330 ns 0.74 0.02 1.57KB
NinoSerializeSimpleStructs 131.9256 ns 0.9293 ns 1.0701 ns 1.00 0.01 1.57KB

v3.1.2

15 Feb 07:26
Compare
Choose a tag to compare
  • [fix] fix #140
  • [opt] optimised generator performance (removed 90% of the overhead) via IncrementalValuesProvider and virtualization

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.200
  [Host]     : .NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2
  Job-UEWEOT : .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,959.1359 ns 18.7002 ns 20.0090 ns 4.90 0.08 -
MemoryPackDeserializeSimpleClass 573.6932 ns 5.8954 ns 6.5527 ns 1.43 0.03 -
NinoDeserializeSimpleClass 400.1451 ns 5.6657 ns 5.8182 ns 1.00 0.02 -
MessagePackSerializeSimpleClass 1,092.3580 ns 5.7120 ns 6.5779 ns 4.66 0.04 700B
MemoryPackSerializeSimpleClass 593.3275 ns 5.2399 ns 6.0343 ns 2.53 0.03 755B
NinoSerializeSimpleClass 234.5256 ns 1.2272 ns 1.3640 ns 1.00 0.01 724B
MessagePackDeserializeSimpleClasses 194,933.4930 ns 1,301.0434 ns 1,498.2835 ns 4.58 0.05 -
MemoryPackDeserializeSimpleClasses 56,029.8763 ns 351.5432 ns 404.8377 ns 1.32 0.01 -
NinoDeserializeSimpleClasses 42,522.8110 ns 265.9880 ns 306.3122 ns 1.00 0.01 -
MessagePackSerializeSimpleClasses 109,040.6847 ns 474.4181 ns 546.3406 ns 5.12 0.03 68.36KB
MemoryPackSerializeSimpleClasses 54,603.7404 ns 274.4381 ns 316.0433 ns 2.56 0.02 73.73KB
NinoSerializeSimpleClasses 21,305.1609 ns 100.4373 ns 103.1417 ns 1.00 0.01 70.71KB
MessagePackDeserializeSimpleStruct 75.5654 ns 0.2044 ns 0.2187 ns 133.11 1.89 -
MemoryPackDeserializeSimpleStruct 2.0267 ns 0.0041 ns 0.0040 ns 3.57 0.05 -
NinoDeserializeSimpleStruct 0.5678 ns 0.0073 ns 0.0081 ns 1.00 0.02 -
MessagePackSerializeSimpleStruct 74.8840 ns 0.4499 ns 0.4814 ns 9.48 0.07 16B
MemoryPackSerializeSimpleStruct 18.1835 ns 0.4516 ns 0.5019 ns 2.30 0.06 16B
NinoSerializeSimpleStruct 7.8963 ns 0.0327 ns 0.0350 ns 1.00 0.01 16B
MessagePackDeserializeSimpleStructs 4,161.4533 ns 26.2644 ns 30.2462 ns 50.46 1.11 -
MemoryPackDeserializeSimpleStructs 104.0903 ns 1.3029 ns 1.5005 ns 1.26 0.03 -
NinoDeserializeSimpleStructs 82.5129 ns 1.5536 ns 1.7891 ns 1.00 0.03 -
MessagePackSerializeSimpleStructs 3,979.8805 ns 13.3968 ns 14.3345 ns 49.39 0.33 1.57KB
MemoryPackSerializeSimpleStructs 86.6298 ns 1.2548 ns 1.4451 ns 1.08 0.02 1.57KB
NinoSerializeSimpleStructs 80.5853 ns 0.4170 ns 0.4635 ns 1.00 0.01 1.57KB

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