Releases: JasonXuDeveloper/Nino
Releases · JasonXuDeveloper/Nino
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 |
v3.0.1
Nino.Serialization v3.0.1
- [Fix] Fix endianness issue for empty collections
- [Optimization] Faster deserialization for List types
- [Feat] Nino for Unity now installs via UPM
Performance Report
expand
BenchmarkDotNet v0.14.0, Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100
[Host] : .NET 8.0.10 (8.0.1024.46610), X64 RyuJIT AVX2
Job-UDEFYT : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX2
Runtime=.NET 9.0 IterationCount=20 WarmupCount=1
Method |
Mean |
Error |
StdDev |
Ratio |
RatioSD |
Payload |
MessagePackDeserializeSimpleClass |
1,996.9318 ns |
5.8131 ns |
5.7092 ns |
4.51 |
0.03 |
- |
MemoryPackDeserializeSimpleClass |
609.7679 ns |
2.2801 ns |
2.5344 ns |
1.38 |
0.01 |
- |
NinoDeserializeSimpleClass |
442.7896 ns |
2.4367 ns |
2.8061 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClass |
1,112.9910 ns |
1.4135 ns |
1.4516 ns |
4.46 |
0.02 |
700B |
MemoryPackSerializeSimpleClass |
610.6922 ns |
2.0925 ns |
2.2389 ns |
2.45 |
0.01 |
755B |
NinoSerializeSimpleClass |
249.6187 ns |
0.9144 ns |
0.9784 ns |
1.00 |
0.01 |
724B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleClasses |
196,423.8561 ns |
1,025.8870 ns |
1,181.4130 ns |
4.24 |
0.03 |
- |
MemoryPackDeserializeSimpleClasses |
59,163.3138 ns |
309.3698 ns |
331.0222 ns |
1.28 |
0.01 |
- |
NinoDeserializeSimpleClasses |
46,370.0857 ns |
239.2497 ns |
245.6918 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClasses |
108,997.3315 ns |
171.3512 ns |
190.4564 ns |
4.82 |
0.02 |
68.36KB |
MemoryPackSerializeSimpleClasses |
57,760.9782 ns |
227.7825 ns |
243.7247 ns |
2.55 |
0.02 |
73.73KB |
NinoSerializeSimpleClasses |
22,608.9590 ns |
101.2861 ns |
112.5792 ns |
1.00 |
0.01 |
70.71KB |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStruct |
74.2694 ns |
0.2833 ns |
0.3149 ns |
128.61 |
2.33 |
- |
MemoryPackDeserializeSimpleStruct |
2.0172 ns |
0.0050 ns |
0.0056 ns |
3.49 |
0.06 |
- |
NinoDeserializeSimpleStruct |
0.5777 ns |
0.0096 ns |
0.0106 ns |
1.00 |
0.03 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStruct |
76.6123 ns |
0.4130 ns |
0.4590 ns |
10.23 |
0.11 |
16B |
MemoryPackSerializeSimpleStruct |
10.2233 ns |
0.0691 ns |
0.0795 ns |
1.37 |
0.02 |
16B |
NinoSerializeSimpleStruct |
7.4894 ns |
0.0623 ns |
0.0667 ns |
1.00 |
0.01 |
16B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStructs |
4,194.2211 ns |
8.8535 ns |
9.4731 ns |
32.94 |
0.65 |
- |
MemoryPackDeserializeSimpleStructs |
157.4929 ns |
1.4636 ns |
1.6268 ns |
1.24 |
0.03 |
- |
NinoDeserializeSimpleStructs |
127.3916 ns |
2.2524 ns |
2.5939 ns |
1.00 |
0.03 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStructs |
4,157.2686 ns |
22.5473 ns |
25.9655 ns |
32.05 |
0.67 |
1.57KB |
MemoryPackSerializeSimpleStructs |
142.3828 ns |
2.2060 ns |
2.5405 ns |
1.10 |
0.03 |
1.57KB |
NinoSerializeSimpleStructs |
129.7484 ns |
2.3266 ns |
2.6793 ns |
1.00 |
0.03 |
1.57KB |
v3.0.0
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 |