Releases: JasonXuDeveloper/Nino
Releases · JasonXuDeveloper/Nino
v3.0.0
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
NinoType
s
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
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
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 |
v2.1.9
Nino.Serialization v2.1.9
- [Optimization] Faster deserialization
Performance Report
expand
BenchmarkDotNet v0.14.0, Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100-rc.2.24474.11
[Host] : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2
Job-SZEINI : .NET 9.0.0 (9.0.24.47305), X64 RyuJIT AVX2
Runtime=.NET 9.0 IterationCount=20 WarmupCount=1
Method |
Mean |
Error |
StdDev |
Ratio |
RatioSD |
Payload |
MessagePackDeserializeSimpleClass |
1,656.9624 ns |
9.9603 ns |
11.4703 ns |
2.91 |
0.02 |
- |
MemoryPackDeserializeSimpleClass |
608.0360 ns |
3.1047 ns |
3.4509 ns |
1.07 |
0.01 |
- |
NinoDeserializeSimpleClass |
570.3600 ns |
2.8679 ns |
3.0687 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClass |
1,125.5807 ns |
5.5435 ns |
6.1616 ns |
3.48 |
0.03 |
674B |
MemoryPackSerializeSimpleClass |
609.3890 ns |
3.5311 ns |
4.0665 ns |
1.88 |
0.02 |
730B |
NinoSerializeSimpleClass |
323.6658 ns |
1.6040 ns |
1.8472 ns |
1.00 |
0.01 |
738B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleClasses |
162,804.0272 ns |
343.7450 ns |
353.0008 ns |
2.79 |
0.02 |
- |
MemoryPackDeserializeSimpleClasses |
58,781.6250 ns |
298.9097 ns |
344.2249 ns |
1.01 |
0.01 |
- |
NinoDeserializeSimpleClasses |
58,359.4109 ns |
387.2718 ns |
445.9828 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClasses |
113,251.7774 ns |
739.2237 ns |
851.2911 ns |
3.65 |
0.03 |
65.82KB |
MemoryPackSerializeSimpleClasses |
54,493.0301 ns |
206.2871 ns |
229.2876 ns |
1.75 |
0.01 |
71.29KB |
NinoSerializeSimpleClasses |
31,058.3509 ns |
91.0732 ns |
93.5254 ns |
1.00 |
0.00 |
72.08KB |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStruct |
81.2077 ns |
0.1415 ns |
0.1390 ns |
138.08 |
1.36 |
- |
MemoryPackDeserializeSimpleStruct |
2.0382 ns |
0.0038 ns |
0.0039 ns |
3.47 |
0.03 |
- |
NinoDeserializeSimpleStruct |
0.5882 ns |
0.0057 ns |
0.0058 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStruct |
84.2770 ns |
0.1370 ns |
0.1346 ns |
10.63 |
0.07 |
16B |
MemoryPackSerializeSimpleStruct |
9.2679 ns |
0.0434 ns |
0.0482 ns |
1.17 |
0.01 |
16B |
NinoSerializeSimpleStruct |
7.9262 ns |
0.0482 ns |
0.0495 ns |
1.00 |
0.01 |
16B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStructs |
5,271.5162 ns |
22.1376 ns |
25.4937 ns |
39.39 |
0.48 |
- |
MemoryPackDeserializeSimpleStructs |
157.9820 ns |
1.3055 ns |
1.4511 ns |
1.18 |
0.02 |
- |
NinoDeserializeSimpleStructs |
133.8341 ns |
1.3427 ns |
1.5463 ns |
1.00 |
0.02 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStructs |
4,426.8278 ns |
28.6685 ns |
33.0147 ns |
33.35 |
0.62 |
1.57KB |
MemoryPackSerializeSimpleStructs |
138.0466 ns |
2.0237 ns |
2.3305 ns |
1.04 |
0.02 |
1.57KB |
NinoSerializeSimpleStructs |
132.7684 ns |
2.1022 ns |
2.3366 ns |
1.00 |
0.02 |
1.57KB |
v2.1.8
Nino.Serialization v2.1.8
- [Optimization] Faster serialization
Performance Report
expand
BenchmarkDotNet v0.14.0, Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100-rc.2.24474.11
[Host] : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2
Job-RQNBAO : .NET 9.0.0 (9.0.24.47305), X64 RyuJIT AVX2
Runtime=.NET 9.0 IterationCount=20 WarmupCount=1
Method |
Mean |
Error |
StdDev |
Median |
Ratio |
RatioSD |
Payload |
MessagePackDeserializeSimpleClass |
1,684.0757 ns |
7.1423 ns |
8.2251 ns |
1,681.4270 ns |
3.03 |
0.02 |
- |
MemoryPackDeserializeSimpleClass |
618.1002 ns |
2.3659 ns |
2.7246 ns |
617.0318 ns |
1.11 |
0.01 |
- |
NinoDeserializeSimpleClass |
555.8418 ns |
1.9607 ns |
2.1793 ns |
555.5859 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleClass |
1,141.3295 ns |
5.7109 ns |
6.5767 ns |
1,137.6271 ns |
3.51 |
0.02 |
674B |
MemoryPackSerializeSimpleClass |
604.3100 ns |
2.0698 ns |
2.3006 ns |
603.3671 ns |
1.86 |
0.01 |
730B |
NinoSerializeSimpleClass |
325.4018 ns |
0.6526 ns |
0.6983 ns |
325.1884 ns |
1.00 |
0.00 |
738B |
|
|
|
|
|
|
|
|
MessagePackDeserializeSimpleClasses |
166,229.3099 ns |
341.8615 ns |
351.0665 ns |
166,196.4658 ns |
2.78 |
0.02 |
- |
MemoryPackDeserializeSimpleClasses |
78,579.7798 ns |
182.0141 ns |
202.3082 ns |
78,542.1035 ns |
1.32 |
0.01 |
- |
NinoDeserializeSimpleClasses |
59,750.6624 ns |
302.3367 ns |
348.1714 ns |
59,637.2159 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleClasses |
111,610.1828 ns |
514.2769 ns |
592.2420 ns |
111,416.6483 ns |
3.56 |
0.02 |
65.82KB |
MemoryPackSerializeSimpleClasses |
55,009.0673 ns |
150.6921 ns |
167.4938 ns |
54,951.1398 ns |
1.76 |
0.01 |
71.29KB |
NinoSerializeSimpleClasses |
31,325.3520 ns |
64.6677 ns |
71.8780 ns |
31,324.9421 ns |
1.00 |
0.00 |
72.08KB |
|
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStruct |
80.7844 ns |
0.3209 ns |
0.3295 ns |
80.7307 ns |
137.99 |
2.99 |
- |
MemoryPackDeserializeSimpleStruct |
2.0323 ns |
0.0097 ns |
0.0107 ns |
2.0282 ns |
3.47 |
0.08 |
- |
NinoDeserializeSimpleStruct |
0.5857 ns |
0.0112 ns |
0.0129 ns |
0.5824 ns |
1.00 |
0.03 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleStruct |
85.0759 ns |
0.5106 ns |
0.5675 ns |
84.8559 ns |
10.66 |
0.09 |
16B |
MemoryPackSerializeSimpleStruct |
9.2735 ns |
0.0498 ns |
0.0533 ns |
9.2607 ns |
1.16 |
0.01 |
16B |
NinoSerializeSimpleStruct |
7.9793 ns |
0.0376 ns |
0.0402 ns |
7.9722 ns |
1.00 |
0.01 |
16B |
|
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStructs |
5,208.1481 ns |
27.7600 ns |
30.8551 ns |
5,187.7041 ns |
39.48 |
0.42 |
- |
MemoryPackDeserializeSimpleStructs |
154.1539 ns |
0.9280 ns |
1.0687 ns |
154.0452 ns |
1.17 |
0.01 |
- |
NinoDeserializeSimpleStructs |
131.9351 ns |
1.0877 ns |
1.2090 ns |
131.8611 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleStructs |
4,519.1601 ns |
27.7335 ns |
30.8257 ns |
4,503.9492 ns |
33.74 |
0.45 |
1.57KB |
MemoryPackSerializeSimpleStructs |
140.6034 ns |
0.9953 ns |
1.1063 ns |
140.8824 ns |
1.05 |
0.01 |
1.57KB |
NinoSerializeSimpleStructs |
133.9771 ns |
1.4751 ns |
1.5784 ns |
134.0042 ns |
1.00 |
0.02 |
1.57KB |
v2.1.7
Nino.Serialization v2.1.7
- [Optimization] Slightly more efficient serialization/deserialization code for polymorphic types
- [Experimental] Attempt to make deserialization faster for unmanaged types (no guarantee)
Performance Report
expand
BenchmarkDotNet v0.14.0, Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100-rc.2.24474.11
[Host] : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2
Job-XSVIDG : .NET 9.0.0 (9.0.24.47305), X64 RyuJIT AVX2
Runtime=.NET 9.0 IterationCount=10 WarmupCount=1
Method |
Mean |
Error |
StdDev |
Ratio |
RatioSD |
Payload |
MessagePackDeserializeSimpleClass |
1,735.7269 ns |
64.7997 ns |
42.8610 ns |
3.06 |
0.07 |
- |
MemoryPackDeserializeSimpleClass |
600.1559 ns |
3.1143 ns |
1.8533 ns |
1.06 |
0.01 |
- |
NinoDeserializeSimpleClass |
567.8731 ns |
4.7725 ns |
3.1567 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClass |
1,121.5226 ns |
5.4303 ns |
3.2315 ns |
3.50 |
0.02 |
674B |
MemoryPackSerializeSimpleClass |
574.5112 ns |
4.6980 ns |
3.1074 ns |
1.79 |
0.01 |
730B |
NinoSerializeSimpleClass |
320.4567 ns |
2.6210 ns |
1.7337 ns |
1.00 |
0.01 |
738B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleClasses |
167,518.8501 ns |
2,634.1002 ns |
1,742.2942 ns |
2.93 |
0.03 |
- |
MemoryPackDeserializeSimpleClasses |
60,703.9168 ns |
611.0878 ns |
363.6485 ns |
1.06 |
0.01 |
- |
NinoDeserializeSimpleClasses |
57,152.4554 ns |
403.0304 ns |
266.5797 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClasses |
115,971.2970 ns |
676.3904 ns |
402.5091 ns |
3.80 |
0.02 |
65.82KB |
MemoryPackSerializeSimpleClasses |
53,379.3370 ns |
344.3084 ns |
204.8924 ns |
1.75 |
0.01 |
71.29KB |
NinoSerializeSimpleClasses |
30,551.2235 ns |
151.5804 ns |
90.2031 ns |
1.00 |
0.00 |
72.08KB |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStruct |
82.2872 ns |
0.6339 ns |
0.4193 ns |
142.58 |
1.42 |
- |
MemoryPackDeserializeSimpleStruct |
2.0471 ns |
0.0201 ns |
0.0133 ns |
3.55 |
0.04 |
- |
NinoDeserializeSimpleStruct |
0.5772 ns |
0.0079 ns |
0.0052 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStruct |
83.8371 ns |
0.1810 ns |
0.0947 ns |
10.70 |
0.07 |
16B |
MemoryPackSerializeSimpleStruct |
9.3587 ns |
0.0745 ns |
0.0390 ns |
1.19 |
0.01 |
16B |
NinoSerializeSimpleStruct |
7.8357 ns |
0.0912 ns |
0.0543 ns |
1.00 |
0.01 |
16B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStructs |
5,212.0233 ns |
44.5651 ns |
29.4771 ns |
37.71 |
0.60 |
- |
MemoryPackDeserializeSimpleStructs |
156.2208 ns |
2.8479 ns |
1.6947 ns |
1.13 |
0.02 |
- |
NinoDeserializeSimpleStructs |
138.2517 ns |
3.2592 ns |
2.1558 ns |
1.00 |
0.02 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStructs |
4,379.8118 ns |
57.8007 ns |
38.2316 ns |
32.25 |
0.79 |
1.57KB |
MemoryPackSerializeSimpleStructs |
133.2084 ns |
1.5474 ns |
1.0235 ns |
0.98 |
0.02 |
1.57KB |
NinoSerializeSimpleStructs |
135.8834 ns |
4.9176 ns |
3.2527 ns |
1.00 |
0.03 |
1.57KB |
v2.1.6
Nino.Serialization v2.1.6
- [Feature] Support
record struct
- [Optimization] Smarter
NinoType
collect strategy
Performance Report
expand
BenchmarkDotNet v0.14.0, Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100-rc.2.24474.11
[Host] : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2
Job-PQZETG : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2
Runtime=.NET 8.0 IterationCount=10 WarmupCount=1
Method |
Mean |
Error |
StdDev |
Min |
Max |
Ratio |
Payload |
MessagePackDeserializeSimpleClass |
1,696.7026 ns |
10.2447 ns |
6.7762 ns |
1,689.9501 ns |
1,706.3650 ns |
1.00 |
- |
MemoryPackDeserializeSimpleClass |
668.3706 ns |
5.9804 ns |
3.5588 ns |
663.3981 ns |
674.3817 ns |
0.39 |
- |
NinoDeserializeSimpleClass |
580.4483 ns |
3.4642 ns |
2.0615 ns |
576.7685 ns |
583.5801 ns |
0.34 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleClass |
1,196.2691 ns |
11.1028 ns |
7.3438 ns |
1,187.9833 ns |
1,205.9336 ns |
1.00 |
674B |
MemoryPackSerializeSimpleClass |
714.3994 ns |
5.9792 ns |
3.5581 ns |
710.4542 ns |
719.9061 ns |
0.60 |
730B |
NinoSerializeSimpleClass |
353.8937 ns |
3.5052 ns |
2.0859 ns |
351.0278 ns |
356.0494 ns |
0.30 |
738B |
|
|
|
|
|
|
|
|
MessagePackDeserializeSimpleClasses |
50,126.3883 ns |
202.9287 ns |
106.1356 ns |
49,994.0969 ns |
50,252.6737 ns |
1.00 |
- |
MemoryPackDeserializeSimpleClasses |
19,243.0195 ns |
285.1748 ns |
188.6255 ns |
19,029.8776 ns |
19,574.7762 ns |
0.38 |
- |
NinoDeserializeSimpleClasses |
18,071.2733 ns |
254.5807 ns |
168.3894 ns |
17,780.7536 ns |
18,378.7213 ns |
0.36 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleClasses |
34,206.6663 ns |
224.5739 ns |
133.6403 ns |
34,038.8065 ns |
34,431.9599 ns |
1.00 |
19.75KB |
MemoryPackSerializeSimpleClasses |
19,440.4672 ns |
141.6365 ns |
84.2856 ns |
19,346.9999 ns |
19,595.8338 ns |
0.57 |
21.39KB |
NinoSerializeSimpleClasses |
9,730.9522 ns |
116.7321 ns |
69.4654 ns |
9,579.3028 ns |
9,807.7810 ns |
0.28 |
21.63KB |
|
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStruct |
78.8479 ns |
0.2152 ns |
0.1280 ns |
78.7127 ns |
79.1365 ns |
1.000 |
- |
MemoryPackDeserializeSimpleStruct |
2.7834 ns |
0.0195 ns |
0.0129 ns |
2.7709 ns |
2.8103 ns |
0.035 |
- |
NinoDeserializeSimpleStruct |
0.5744 ns |
0.0122 ns |
0.0081 ns |
0.5644 ns |
0.5882 ns |
0.007 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleStruct |
93.3848 ns |
0.4568 ns |
0.2718 ns |
93.1425 ns |
93.9194 ns |
1.00 |
16B |
MemoryPackSerializeSimpleStruct |
22.3635 ns |
0.8405 ns |
0.5560 ns |
21.6189 ns |
23.0827 ns |
0.24 |
16B |
NinoSerializeSimpleStruct |
8.3228 ns |
0.1912 ns |
0.1265 ns |
8.2018 ns |
8.5444 ns |
0.09 |
16B |
|
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStructs |
1,498.3710 ns |
11.8682 ns |
7.8501 ns |
1,491.2468 ns |
1,511.4347 ns |
1.00 |
- |
MemoryPackDeserializeSimpleStructs |
86.7634 ns |
1.1466 ns |
0.7584 ns |
85.8071 ns |
87.6628 ns |
0.06 |
- |
NinoDeserializeSimpleStructs |
51.9450 ns |
0.7975 ns |
0.5275 ns |
51.2141 ns |
52.6226 ns |
0.03 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleStructs |
1,383.3442 ns |
11.1277 ns |
7.3603 ns |
1,371.1882 ns |
1,393.7797 ns |
1.00 |
483B |
MemoryPackSerializeSimpleStructs |
59.6197 ns |
0.7400 ns |
0.4895 ns |
58.9063 ns |
60.4814 ns |
0.04 |
484B |
NinoSerializeSimpleStructs |
52.5786 ns |
0.5026 ns |
0.3324 ns |
52.0968 ns |
53.1515 ns |
0.04 |
486B |
v2.1.5
Nino.Serialization v2.1.5
- [Feature] Generic type serialization support (Closes #131)
v2.1.4
Nino.Serialization v2.1.4
- [Optimization] Remove redundant code generation
- [Optimization] Faster list deserialization
- [Optimization] Slightly improved string serialization performance
v2.1.3
Nino.Serialization v2.1.3
- [Optimization] Remove redundant type id allocation (i.e. abstract class/interface)
- [Optimization] Slightly optimized serialization code (i.e. one less branch but a jump table)