Releases: JasonXuDeveloper/Nino
Releases · JasonXuDeveloper/Nino
v3.1.5
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
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 |