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