Releases: JasonXuDeveloper/Nino
Releases · JasonXuDeveloper/Nino
v3.2.3
- [feat] support 'NinoFormerName' for generic types
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-DJVUEN : .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,993.7790 ns |
22.9000 ns |
26.3717 ns |
4.76 |
0.08 |
- |
MemoryPackDeserializeSimpleClass |
588.8172 ns |
4.7435 ns |
5.0755 ns |
1.40 |
0.02 |
- |
NinoDeserializeSimpleClass |
419.3163 ns |
3.7240 ns |
4.1392 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClass |
1,069.1856 ns |
7.3085 ns |
8.4164 ns |
4.58 |
0.04 |
700B |
MemoryPackSerializeSimpleClass |
505.8187 ns |
3.2135 ns |
3.7007 ns |
2.17 |
0.02 |
755B |
NinoSerializeSimpleClass |
233.2655 ns |
0.9048 ns |
1.0419 ns |
1.00 |
0.01 |
764B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleClasses |
199,360.3167 ns |
2,505.4145 ns |
2,885.2390 ns |
4.43 |
0.09 |
- |
MemoryPackDeserializeSimpleClasses |
58,677.7572 ns |
533.1919 ns |
614.0246 ns |
1.30 |
0.02 |
- |
NinoDeserializeSimpleClasses |
44,980.8429 ns |
617.8393 ns |
711.5047 ns |
1.00 |
0.02 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClasses |
101,577.7412 ns |
842.4062 ns |
970.1163 ns |
4.08 |
0.04 |
68.36KB |
MemoryPackSerializeSimpleClasses |
50,480.1358 ns |
575.0250 ns |
662.1996 ns |
2.03 |
0.03 |
73.73KB |
NinoSerializeSimpleClasses |
24,873.8195 ns |
90.1320 ns |
100.1814 ns |
1.00 |
0.01 |
75KB |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStruct |
78.7393 ns |
0.2466 ns |
0.2741 ns |
134.80 |
3.84 |
- |
MemoryPackDeserializeSimpleStruct |
2.1311 ns |
0.0313 ns |
0.0322 ns |
3.65 |
0.12 |
- |
NinoDeserializeSimpleStruct |
0.5846 ns |
0.0161 ns |
0.0172 ns |
1.00 |
0.04 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStruct |
81.6055 ns |
0.8091 ns |
0.9318 ns |
12.73 |
0.16 |
16B |
MemoryPackSerializeSimpleStruct |
5.0084 ns |
0.0200 ns |
0.0214 ns |
0.78 |
0.01 |
16B |
NinoSerializeSimpleStruct |
6.4121 ns |
0.0319 ns |
0.0355 ns |
1.00 |
0.01 |
16B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStructs |
4,139.3526 ns |
21.3154 ns |
24.5469 ns |
52.82 |
0.47 |
- |
MemoryPackDeserializeSimpleStructs |
103.5239 ns |
0.3926 ns |
0.3855 ns |
1.32 |
0.01 |
- |
NinoDeserializeSimpleStructs |
78.3774 ns |
0.4876 ns |
0.5420 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStructs |
3,871.1880 ns |
40.0389 ns |
44.5032 ns |
143.67 |
1.83 |
1.57KB |
MemoryPackSerializeSimpleStructs |
32.0509 ns |
0.2728 ns |
0.3141 ns |
1.19 |
0.01 |
1.57KB |
NinoSerializeSimpleStructs |
26.9462 ns |
0.1658 ns |
0.1703 ns |
1.00 |
0.01 |
1.57KB |
|
|
|
|
|
|
|
MessagePackDeserializeVectors |
267,741.0106 ns |
1,712.2761 ns |
1,971.8597 ns |
17.38 |
0.61 |
- |
MemoryPackDeserializeVectors |
15,715.5631 ns |
289.5851 ns |
333.4866 ns |
1.02 |
0.04 |
- |
NinoDeserializeVectors |
15,421.0168 ns |
486.3022 ns |
540.5236 ns |
1.00 |
0.05 |
- |
|
|
|
|
|
|
|
MessagePackSerializeVectors |
226,080.9329 ns |
387.6205 ns |
446.3843 ns |
48.07 |
1.88 |
205.08KB |
MemoryPackSerializeVectors |
3,708.6369 ns |
4.0880 ns |
4.3741 ns |
0.79 |
0.03 |
156.25KB |
NinoSerializeVectors |
4,709.1416 ns |
145.6544 ns |
167.7358 ns |
1.00 |
0.05 |
156.25KB |
v3.2.2
- [feat] 'NinoFormerNameAttribute' enables modifying a NinoType's name and does not effect the deserialization of old data
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-TLFHYR : .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2
Runtime=.NET 9.0 IterationCount=20 WarmupCount=1
Method |
Mean |
Error |
StdDev |
Median |
Ratio |
RatioSD |
Payload |
MessagePackDeserializeSimpleClass |
2,049.7227 ns |
26.2237 ns |
29.1476 ns |
2,038.0628 ns |
4.64 |
0.08 |
- |
MemoryPackDeserializeSimpleClass |
598.8517 ns |
5.2697 ns |
6.0686 ns |
597.6589 ns |
1.36 |
0.02 |
- |
NinoDeserializeSimpleClass |
441.9608 ns |
4.4530 ns |
5.1281 ns |
442.4578 ns |
1.00 |
0.02 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleClass |
1,035.7266 ns |
2.0144 ns |
1.9784 ns |
1,035.9857 ns |
4.78 |
0.02 |
700B |
MemoryPackSerializeSimpleClass |
496.1701 ns |
0.5294 ns |
0.5199 ns |
496.1572 ns |
2.29 |
0.01 |
755B |
NinoSerializeSimpleClass |
216.5047 ns |
0.5900 ns |
0.6794 ns |
216.4567 ns |
1.00 |
0.00 |
764B |
|
|
|
|
|
|
|
|
MessagePackDeserializeSimpleClasses |
201,616.6027 ns |
1,373.4128 ns |
1,581.6242 ns |
201,324.2528 ns |
4.47 |
0.07 |
- |
MemoryPackDeserializeSimpleClasses |
57,609.6414 ns |
250.9098 ns |
278.8856 ns |
57,631.7744 ns |
1.28 |
0.02 |
- |
NinoDeserializeSimpleClasses |
45,103.0470 ns |
543.1397 ns |
603.6983 ns |
45,028.5614 ns |
1.00 |
0.02 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleClasses |
100,336.2761 ns |
273.3175 ns |
314.7529 ns |
100,168.5332 ns |
4.23 |
0.02 |
68.36KB |
MemoryPackSerializeSimpleClasses |
47,946.5994 ns |
312.6185 ns |
347.4746 ns |
47,898.2361 ns |
2.02 |
0.02 |
73.73KB |
NinoSerializeSimpleClasses |
23,702.1904 ns |
75.7444 ns |
87.2274 ns |
23,658.1849 ns |
1.00 |
0.01 |
75KB |
|
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStruct |
77.1057 ns |
0.0873 ns |
0.0858 ns |
77.0832 ns |
128.03 |
10.64 |
- |
MemoryPackDeserializeSimpleStruct |
2.0137 ns |
0.0154 ns |
0.0171 ns |
2.0082 ns |
3.34 |
0.28 |
- |
NinoDeserializeSimpleStruct |
0.6066 ns |
0.0475 ns |
0.0547 ns |
0.5735 ns |
1.01 |
0.12 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleStruct |
80.0794 ns |
0.2596 ns |
0.2777 ns |
79.9390 ns |
12.55 |
0.05 |
16B |
MemoryPackSerializeSimpleStruct |
5.0448 ns |
0.0303 ns |
0.0349 ns |
5.0436 ns |
0.79 |
0.01 |
16B |
NinoSerializeSimpleStruct |
6.3791 ns |
0.0106 ns |
0.0104 ns |
6.3765 ns |
1.00 |
0.00 |
16B |
|
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStructs |
4,235.3255 ns |
24.6030 ns |
28.3329 ns |
4,229.1921 ns |
51.95 |
1.57 |
- |
MemoryPackDeserializeSimpleStructs |
110.8997 ns |
2.0054 ns |
2.3094 ns |
110.4127 ns |
1.36 |
0.05 |
- |
NinoDeserializeSimpleStructs |
81.5959 ns |
2.1864 ns |
2.4301 ns |
82.0301 ns |
1.00 |
0.04 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeSimpleStructs |
4,593.5939 ns |
5.5647 ns |
5.7146 ns |
4,595.6390 ns |
172.92 |
0.67 |
1.57KB |
MemoryPackSerializeSimpleStructs |
31.6454 ns |
0.0256 ns |
0.0263 ns |
31.6452 ns |
1.19 |
0.00 |
1.57KB |
NinoSerializeSimpleStructs |
26.5659 ns |
0.0902 ns |
0.1002 ns |
26.5318 ns |
1.00 |
0.01 |
1.57KB |
|
|
|
|
|
|
|
|
MessagePackDeserializeVectors |
271,817.2316 ns |
3,855.7082 ns |
4,125.5646 ns |
272,779.7222 ns |
17.34 |
0.70 |
- |
MemoryPackDeserializeVectors |
16,012.0283 ns |
613.4574 ns |
681.8563 ns |
15,916.0751 ns |
1.02 |
0.06 |
- |
NinoDeserializeVectors |
15,697.4858 ns |
544.1842 ns |
604.8593 ns |
15,709.1613 ns |
1.00 |
0.05 |
- |
|
|
|
|
|
|
|
|
MessagePackSerializeVectors |
216,572.7022 ns |
465.2978 ns |
456.9847 ns |
216,804.8622 ns |
52.17 |
5.58 |
205.08KB |
MemoryPackSerializeVectors |
3,870.8240 ns |
4.0118 ns |
4.6200 ns |
3,870.3944 ns |
0.93 |
0.10 |
156.25KB |
NinoSerializeVectors |
4,203.0996 ns |
432.6144 ns |
498.1994 ns |
3,831.2845 ns |
1.01 |
0.16 |
156.25KB |
v3.2.1
- [opt] optimized performance of collection serialization/deserialization (theoretically, if not we will revert)
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-UTQUZM : .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,996.6454 ns |
16.2347 ns |
18.0449 ns |
4.40 |
0.05 |
- |
MemoryPackDeserializeSimpleClass |
607.3002 ns |
11.6088 ns |
12.4213 ns |
1.34 |
0.03 |
- |
NinoDeserializeSimpleClass |
453.8172 ns |
3.5605 ns |
3.8097 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClass |
1,044.6538 ns |
5.3896 ns |
5.9905 ns |
4.46 |
0.03 |
700B |
MemoryPackSerializeSimpleClass |
498.8170 ns |
2.2297 ns |
2.4783 ns |
2.13 |
0.01 |
755B |
NinoSerializeSimpleClass |
234.0935 ns |
0.4592 ns |
0.4715 ns |
1.00 |
0.00 |
764B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleClasses |
199,435.9016 ns |
1,308.0054 ns |
1,506.3009 ns |
4.29 |
0.05 |
- |
MemoryPackDeserializeSimpleClasses |
59,420.8356 ns |
356.5375 ns |
396.2905 ns |
1.28 |
0.01 |
- |
NinoDeserializeSimpleClasses |
46,498.0433 ns |
363.5465 ns |
388.9907 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClasses |
100,693.6530 ns |
244.5965 ns |
261.7155 ns |
4.12 |
0.01 |
68.36KB |
MemoryPackSerializeSimpleClasses |
48,161.6017 ns |
137.6689 ns |
158.5397 ns |
1.97 |
0.01 |
73.73KB |
NinoSerializeSimpleClasses |
24,411.7388 ns |
65.7024 ns |
64.5285 ns |
1.00 |
0.00 |
75KB |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStruct |
78.6440 ns |
0.2927 ns |
0.3253 ns |
139.64 |
2.21 |
- |
MemoryPackDeserializeSimpleStruct |
2.0309 ns |
0.0130 ns |
0.0139 ns |
3.61 |
0.06 |
- |
NinoDeserializeSimpleStruct |
0.5633 ns |
0.0083 ns |
0.0089 ns |
1.00 |
0.02 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStruct |
78.8856 ns |
0.3145 ns |
0.3622 ns |
12.28 |
0.08 |
16B |
MemoryPackSerializeSimpleStruct |
5.0012 ns |
0.0200 ns |
0.0214 ns |
0.78 |
0.01 |
16B |
NinoSerializeSimpleStruct |
6.4232 ns |
0.0319 ns |
0.0341 ns |
1.00 |
0.01 |
16B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStructs |
4,205.7774 ns |
16.5692 ns |
19.0811 ns |
46.34 |
3.53 |
- |
MemoryPackDeserializeSimpleStructs |
127.9556 ns |
3.7993 ns |
4.2230 ns |
1.41 |
0.12 |
- |
NinoDeserializeSimpleStructs |
91.2840 ns |
6.1381 ns |
7.0686 ns |
1.01 |
0.11 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStructs |
3,902.4568 ns |
9.4722 ns |
9.3030 ns |
129.69 |
0.77 |
1.57KB |
MemoryPackSerializeSimpleStructs |
30.7110 ns |
0.1845 ns |
0.2051 ns |
1.02 |
0.01 |
1.57KB |
NinoSerializeSimpleStructs |
30.0916 ns |
0.1461 ns |
0.1682 ns |
1.00 |
0.01 |
1.57KB |
|
|
|
|
|
|
|
MessagePackDeserializeVectors |
263,521.0946 ns |
1,269.8777 ns |
1,411.4657 ns |
16.88 |
0.43 |
- |
MemoryPackDeserializeVectors |
15,954.4614 ns |
582.5766 ns |
670.8961 ns |
1.02 |
0.05 |
- |
NinoDeserializeVectors |
15,623.3525 ns |
350.5012 ns |
403.6377 ns |
1.00 |
0.04 |
- |
|
|
|
|
|
|
|
MessagePackSerializeVectors |
224,277.4858 ns |
1,446.9605 ns |
1,485.9219 ns |
59.49 |
0.40 |
205.08KB |
MemoryPackSerializeVectors |
3,616.5087 ns |
3.8493 ns |
4.1187 ns |
0.96 |
0.00 |
156.25KB |
NinoSerializeVectors |
3,769.7949 ns |
6.1559 ns |
7.0892 ns |
1.00 |
0.00 |
156.25KB |
v3.2.0
- [feat] allow version tolerance for elements in collections
- [fix] ensure version tolerance for string members of a ninotype annotated class
Note that the performance might drop a little bit but still reasonably fast compared to other libraries
In addition, v3.2.0 may unable to deserialize data serialized from earlier versions, please refer to the documentation for further information (including migration guide)
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-FTDCJR : .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,004.3440 ns |
22.6507 ns |
23.2606 ns |
4.58 |
0.12 |
- |
MemoryPackDeserializeSimpleClass |
618.2868 ns |
7.6728 ns |
8.8360 ns |
1.41 |
0.04 |
- |
NinoDeserializeSimpleClass |
438.0764 ns |
9.3359 ns |
10.7512 ns |
1.00 |
0.03 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClass |
1,034.7936 ns |
1.1999 ns |
1.1224 ns |
4.57 |
0.02 |
700B |
MemoryPackSerializeSimpleClass |
520.9437 ns |
2.8275 ns |
3.1428 ns |
2.30 |
0.02 |
755B |
NinoSerializeSimpleClass |
226.4451 ns |
0.6691 ns |
0.7437 ns |
1.00 |
0.00 |
764B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleClasses |
200,198.0291 ns |
965.8188 ns |
1,033.4153 ns |
4.29 |
0.06 |
- |
MemoryPackDeserializeSimpleClasses |
58,989.2560 ns |
468.7876 ns |
481.4103 ns |
1.26 |
0.02 |
- |
NinoDeserializeSimpleClasses |
46,679.3881 ns |
536.1715 ns |
573.6975 ns |
1.00 |
0.02 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClasses |
100,763.8491 ns |
350.3442 ns |
389.4067 ns |
4.06 |
0.02 |
68.36KB |
MemoryPackSerializeSimpleClasses |
49,263.1717 ns |
389.3098 ns |
432.7168 ns |
1.99 |
0.02 |
73.73KB |
NinoSerializeSimpleClasses |
24,791.2529 ns |
67.5691 ns |
75.1029 ns |
1.00 |
0.00 |
75KB |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStruct |
76.8228 ns |
0.1039 ns |
0.1067 ns |
137.04 |
2.79 |
- |
MemoryPackDeserializeSimpleStruct |
2.0433 ns |
0.0093 ns |
0.0103 ns |
3.64 |
0.08 |
- |
NinoDeserializeSimpleStruct |
0.5608 ns |
0.0102 ns |
0.0117 ns |
1.00 |
0.03 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStruct |
82.1936 ns |
0.0523 ns |
0.0513 ns |
9.50 |
0.03 |
16B |
MemoryPackSerializeSimpleStruct |
7.8364 ns |
0.0262 ns |
0.0291 ns |
0.91 |
0.00 |
16B |
NinoSerializeSimpleStruct |
8.6536 ns |
0.0249 ns |
0.0276 ns |
1.00 |
0.00 |
16B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStructs |
4,237.3801 ns |
16.7630 ns |
19.3043 ns |
45.72 |
1.74 |
- |
MemoryPackDeserializeSimpleStructs |
118.0844 ns |
2.1600 ns |
2.4008 ns |
1.27 |
0.05 |
- |
NinoDeserializeSimpleStructs |
92.8156 ns |
3.1780 ns |
3.6598 ns |
1.00 |
0.05 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStructs |
3,995.3842 ns |
3.5502 ns |
3.6458 ns |
87.97 |
0.10 |
1.57KB |
MemoryPackSerializeSimpleStructs |
51.0031 ns |
0.0809 ns |
0.0831 ns |
1.12 |
0.00 |
1.57KB |
NinoSerializeSimpleStructs |
45.4198 ns |
0.0325 ns |
0.0304 ns |
1.00 |
0.00 |
1.57KB |
v3.1.7
- [fix] private members not deserialized in versions other than net8.0 onwards
- [fix] generic parameterized members in generic ninotype accepted class could not be detected automatically #141
- [update] polymorphic class analyzer now gives warnings for subtypes of ninotypes not being annotated with ninotype
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-CLWFMJ : .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,993.5988 ns |
13.9185 ns |
15.4703 ns |
4.87 |
0.06 |
- |
MemoryPackDeserializeSimpleClass |
614.7717 ns |
5.0560 ns |
5.8225 ns |
1.50 |
0.02 |
- |
NinoDeserializeSimpleClass |
409.1681 ns |
3.3047 ns |
3.6732 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClass |
1,040.4506 ns |
1.0928 ns |
1.1222 ns |
6.04 |
0.03 |
700B |
MemoryPackSerializeSimpleClass |
503.6766 ns |
2.3678 ns |
2.6318 ns |
2.92 |
0.02 |
755B |
NinoSerializeSimpleClass |
172.2040 ns |
0.6464 ns |
0.7185 ns |
1.00 |
0.01 |
724B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleClasses |
200,021.8059 ns |
846.5230 ns |
905.7701 ns |
4.53 |
0.10 |
- |
MemoryPackDeserializeSimpleClasses |
58,470.6426 ns |
818.8164 ns |
942.9502 ns |
1.32 |
0.03 |
- |
NinoDeserializeSimpleClasses |
44,195.1658 ns |
823.5065 ns |
948.3513 ns |
1.00 |
0.03 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClasses |
101,093.1901 ns |
483.2914 ns |
537.1771 ns |
5.59 |
0.03 |
68.36KB |
MemoryPackSerializeSimpleClasses |
50,237.0820 ns |
203.9580 ns |
226.6988 ns |
2.78 |
0.01 |
73.73KB |
NinoSerializeSimpleClasses |
18,081.3676 ns |
47.9330 ns |
49.2237 ns |
1.00 |
0.00 |
70.71KB |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStruct |
87.2172 ns |
0.1031 ns |
0.1059 ns |
155.67 |
1.02 |
- |
MemoryPackDeserializeSimpleStruct |
2.0183 ns |
0.0054 ns |
0.0056 ns |
3.60 |
0.03 |
- |
NinoDeserializeSimpleStruct |
0.5603 ns |
0.0036 ns |
0.0037 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStruct |
82.1992 ns |
0.2852 ns |
0.3284 ns |
9.59 |
0.04 |
16B |
MemoryPackSerializeSimpleStruct |
7.8212 ns |
0.0192 ns |
0.0198 ns |
0.91 |
0.00 |
16B |
NinoSerializeSimpleStruct |
8.5745 ns |
0.0083 ns |
0.0085 ns |
1.00 |
0.00 |
16B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStructs |
4,209.7948 ns |
10.8153 ns |
11.5722 ns |
49.83 |
0.43 |
- |
MemoryPackDeserializeSimpleStructs |
111.0837 ns |
1.6337 ns |
1.8813 ns |
1.31 |
0.02 |
- |
NinoDeserializeSimpleStructs |
84.4814 ns |
0.7013 ns |
0.7201 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStructs |
3,909.8772 ns |
18.4597 ns |
21.2582 ns |
80.55 |
0.48 |
1.57KB |
MemoryPackSerializeSimpleStructs |
53.4545 ns |
0.0981 ns |
0.1049 ns |
1.10 |
0.00 |
1.57KB |
NinoSerializeSimpleStructs |
48.5413 ns |
0.1143 ns |
0.1317 ns |
1.00 |
0.00 |
1.57KB |
v3.1.6
- [change] subtype not annotated with ninotype where base type is ninotype is now allowed but comes with an info
- [fix] prevent the serializer generating switch clauses for the same type multiple times
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-MUVRAJ : .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,001.1869 ns |
37.9804 ns |
43.7383 ns |
4.97 |
0.11 |
- |
MemoryPackDeserializeSimpleClass |
573.4120 ns |
8.7797 ns |
10.1107 ns |
1.43 |
0.03 |
- |
NinoDeserializeSimpleClass |
402.3603 ns |
2.1543 ns |
2.3945 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClass |
1,045.5085 ns |
1.9644 ns |
2.1019 ns |
5.98 |
0.02 |
700B |
MemoryPackSerializeSimpleClass |
493.1806 ns |
1.4040 ns |
1.3789 ns |
2.82 |
0.01 |
755B |
NinoSerializeSimpleClass |
174.9724 ns |
0.5349 ns |
0.5945 ns |
1.00 |
0.00 |
724B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleClasses |
191,820.1351 ns |
1,002.1130 ns |
1,154.0348 ns |
4.41 |
0.05 |
- |
MemoryPackDeserializeSimpleClasses |
56,605.9488 ns |
235.7853 ns |
271.5307 ns |
1.30 |
0.01 |
- |
NinoDeserializeSimpleClasses |
43,494.7488 ns |
403.3442 ns |
431.5738 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleClasses |
100,980.8393 ns |
353.4493 ns |
378.1868 ns |
5.45 |
0.03 |
68.36KB |
MemoryPackSerializeSimpleClasses |
51,393.1636 ns |
318.2687 ns |
366.5187 ns |
2.77 |
0.02 |
73.73KB |
NinoSerializeSimpleClasses |
18,529.4919 ns |
69.6950 ns |
74.5728 ns |
1.00 |
0.01 |
70.71KB |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStruct |
75.9288 ns |
0.3990 ns |
0.4595 ns |
137.23 |
3.49 |
- |
MemoryPackDeserializeSimpleStruct |
2.0131 ns |
0.0095 ns |
0.0098 ns |
3.64 |
0.09 |
- |
NinoDeserializeSimpleStruct |
0.5536 ns |
0.0130 ns |
0.0139 ns |
1.00 |
0.03 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStruct |
82.3848 ns |
0.4928 ns |
0.5273 ns |
9.65 |
0.07 |
16B |
MemoryPackSerializeSimpleStruct |
7.8308 ns |
0.0407 ns |
0.0468 ns |
0.92 |
0.01 |
16B |
NinoSerializeSimpleStruct |
8.5393 ns |
0.0301 ns |
0.0322 ns |
1.00 |
0.01 |
16B |
|
|
|
|
|
|
|
MessagePackDeserializeSimpleStructs |
4,144.5443 ns |
19.6225 ns |
20.9959 ns |
51.89 |
0.35 |
- |
MemoryPackDeserializeSimpleStructs |
105.2316 ns |
1.5291 ns |
1.7609 ns |
1.32 |
0.02 |
- |
NinoDeserializeSimpleStructs |
79.8797 ns |
0.3475 ns |
0.3862 ns |
1.00 |
0.01 |
- |
|
|
|
|
|
|
|
MessagePackSerializeSimpleStructs |
3,894.5777 ns |
30.0966 ns |
34.6593 ns |
81.53 |
1.11 |
1.57KB |
MemoryPackSerializeSimpleStructs |
51.0541 ns |
0.3787 ns |
0.4361 ns |
1.07 |
0.01 |
1.57KB |
NinoSerializeSimpleStructs |
47.7717 ns |
0.4412 ns |
0.5080 ns |
1.00 |
0.01 |
1.57KB |
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 |