Run the ParlotBenchmarks in 1.5.2 and 1.5.3. For 1.5.3, revert to .NET 9.0 to get comparable results.
Is the difference in memory usage expected?
1.5.2:
| Method |
Mean |
Error |
StdDev |
Gen0 |
Gen1 |
Allocated |
| CreateCompiledSmallParser |
9,732.196 ns |
18,334.2461 ns |
1,004.9619 ns |
0.7935 |
0.7324 |
10040 B |
| CreateCompiledExpressionParser |
8,045.589 ns |
1,110.8016 ns |
60.8868 ns |
0.3662 |
0.3052 |
5031 B |
|
|
|
|
|
|
|
| CursorCtor |
3.306 ns |
1.1112 ns |
0.0609 ns |
0.0038 |
- |
48 B |
| ScannerCtor |
8.766 ns |
6.0965 ns |
0.3342 ns |
0.0064 |
- |
80 B |
| ParseContextCtor |
4.515 ns |
1.7046 ns |
0.0934 ns |
0.0057 |
- |
72 B |
|
|
|
|
|
|
|
| CursorMatchHello |
21.616 ns |
38.8473 ns |
2.1294 ns |
0.0121 |
- |
152 B |
| CursorMatchGoodbye |
21.640 ns |
12.0084 ns |
0.6582 ns |
0.0121 |
- |
152 B |
| CursorMatchNone |
21.615 ns |
0.7638 ns |
0.0419 ns |
0.0121 |
- |
152 B |
|
|
|
|
|
|
|
| DecodeStringWithoutEscapes |
2.314 ns |
1.4556 ns |
0.0798 ns |
- |
- |
- |
| DecodeStringWithEscapes |
71.621 ns |
13.7036 ns |
0.7511 ns |
0.0088 |
- |
112 B |
|
|
|
|
|
|
|
| ExpressionRawBig |
1,107.523 ns |
167.3927 ns |
9.1754 ns |
0.0954 |
- |
1200 B |
| ExpressionCompiledBig |
2,756.820 ns |
1,471.9709 ns |
80.6837 ns |
0.2441 |
- |
3104 B |
| ExpressionFluentBig |
2,678.503 ns |
184.2264 ns |
10.0981 ns |
0.2441 |
- |
3104 B |
|
|
|
|
|
|
|
| ExpressionRawSmall |
223.309 ns |
28.9398 ns |
1.5863 ns |
0.0241 |
- |
304 B |
| ExpressionCompiledSmall |
502.223 ns |
240.2079 ns |
13.1666 ns |
0.0563 |
- |
712 B |
| ExpressionFluentSmall |
545.004 ns |
326.0303 ns |
17.8708 ns |
0.0563 |
- |
712 B |
|
|
|
|
|
|
|
| BigJson |
82,732.829 ns |
12,053.5906 ns |
660.6980 ns |
7.4463 |
1.3428 |
93960 B |
| BigJsonCompiled |
77,133.736 ns |
15,387.3568 ns |
843.4330 ns |
7.4463 |
1.3428 |
93960 B |
|
|
|
|
|
|
|
| DeepJson |
42,634.896 ns |
13,605.7714 ns |
745.7782 ns |
7.9956 |
0.9766 |
100680 B |
| DeepJsonCompiled |
40,209.605 ns |
17,009.3289 ns |
932.3387 ns |
7.9956 |
0.9155 |
100680 B |
|
|
|
|
|
|
|
| LongJson |
60,510.852 ns |
19,134.0010 ns |
1,048.7992 ns |
9.6436 |
2.3193 |
121176 B |
| LongJsonCompiled |
60,270.664 ns |
31,256.9127 ns |
1,713.2969 ns |
9.6436 |
2.3804 |
121176 B |
|
|
|
|
|
|
|
| WideJson |
39,029.478 ns |
2,018.7316 ns |
110.6535 ns |
3.2959 |
0.3052 |
41528 B |
| WideJsonCompiled |
34,107.861 ns |
11,941.1174 ns |
654.5329 ns |
3.2959 |
0.3052 |
41528 B |
|
|
|
|
|
|
|
| Lookup |
22.359 ns |
5.1020 ns |
0.2797 ns |
0.0121 |
- |
152 B |
|
|
|
|
|
|
|
| SkipWhiteSpace_0 |
17.211 ns |
7.1977 ns |
0.3945 ns |
0.0121 |
- |
152 B |
| SkipWhiteSpace_1 |
23.612 ns |
16.4202 ns |
0.9000 ns |
0.0121 |
- |
152 B |
| SkipWhiteSpace_10 |
37.222 ns |
31.5314 ns |
1.7283 ns |
0.0121 |
- |
152 B |
1.5.3:
| Method |
Mean |
Error |
StdDev |
Gen0 |
Gen1 |
Allocated |
| CreateCompiledSmallParser |
15,214.805 ns |
9,013.274 ns |
494.0479 ns |
0.7935 |
0.7324 |
10112 B |
| CreateCompiledExpressionParser |
14,189.396 ns |
2,743.311 ns |
150.3701 ns |
0.3662 |
0.3052 |
5031 B |
|
|
|
|
|
|
|
| CursorCtor |
8.927 ns |
3.239 ns |
0.1775 ns |
0.0038 |
- |
48 B |
| ScannerCtor |
18.119 ns |
4.408 ns |
0.2416 ns |
0.0063 |
- |
80 B |
| ParseContextCtor |
26.400 ns |
73.642 ns |
4.0366 ns |
0.0127 |
- |
160 B |
|
|
|
|
|
|
|
| CursorMatchHello |
62.078 ns |
89.554 ns |
4.9088 ns |
0.0191 |
- |
240 B |
| CursorMatchGoodbye |
58.814 ns |
75.853 ns |
4.1578 ns |
0.0191 |
- |
240 B |
| CursorMatchNone |
60.401 ns |
46.619 ns |
2.5553 ns |
0.0191 |
- |
240 B |
|
|
|
|
|
|
|
| DecodeStringWithoutEscapes |
4.252 ns |
5.998 ns |
0.3288 ns |
- |
- |
- |
| DecodeStringWithEscapes |
111.267 ns |
27.922 ns |
1.5305 ns |
0.0088 |
- |
112 B |
|
|
|
|
|
|
|
| ExpressionRawBig |
1,841.215 ns |
1,291.945 ns |
70.8158 ns |
0.0954 |
- |
1200 B |
| ExpressionCompiledBig |
4,652.133 ns |
1,934.792 ns |
106.0525 ns |
0.2594 |
- |
3328 B |
| ExpressionFluentBig |
5,301.556 ns |
316.142 ns |
17.3288 ns |
0.2823 |
- |
3576 B |
|
|
|
|
|
|
|
| ExpressionRawSmall |
357.182 ns |
170.294 ns |
9.3344 ns |
0.0238 |
- |
304 B |
| ExpressionCompiledSmall |
788.800 ns |
251.577 ns |
13.7898 ns |
0.0629 |
- |
800 B |
| ExpressionFluentSmall |
1,067.554 ns |
885.050 ns |
48.5126 ns |
0.0744 |
- |
936 B |
|
|
|
|
|
|
|
| BigJson |
152,754.281 ns |
63,199.198 ns |
3,464.1613 ns |
7.3242 |
1.2207 |
94432 B |
| BigJsonCompiled |
168,060.799 ns |
121,956.966 ns |
6,684.8728 ns |
7.3242 |
1.2207 |
94432 B |
|
|
|
|
|
|
|
| DeepJson |
83,565.283 ns |
72,078.499 ns |
3,950.8658 ns |
9.7656 |
0.7324 |
123000 B |
| DeepJsonCompiled |
91,653.959 ns |
80,464.506 ns |
4,410.5311 ns |
9.7656 |
0.7324 |
123000 B |
|
|
|
|
|
|
|
| LongJson |
121,018.880 ns |
49,945.524 ns |
2,737.6827 ns |
9.5215 |
2.4414 |
121400 B |
| LongJsonCompiled |
130,657.194 ns |
83,835.858 ns |
4,595.3263 ns |
9.5215 |
2.4414 |
121400 B |
|
|
|
|
|
|
|
| WideJson |
67,403.206 ns |
25,326.938 ns |
1,388.2549 ns |
3.2959 |
0.3662 |
41752 B |
| WideJsonCompiled |
67,312.520 ns |
28,847.255 ns |
1,581.2154 ns |
3.2959 |
0.3662 |
41752 B |
|
|
|
|
|
|
|
| Lookup |
53.929 ns |
5.116 ns |
0.2804 ns |
0.0191 |
- |
240 B |
|
|
|
|
|
|
|
| SkipWhiteSpace_0 |
45.348 ns |
15.817 ns |
0.8670 ns |
0.0191 |
- |
240 B |
| SkipWhiteSpace_1 |
52.963 ns |
30.248 ns |
1.6580 ns |
0.0191 |
- |
240 B |
| SkipWhiteSpace_10 |
74.230 ns |
35.977 ns |
1.9720 ns |
0.0191 |
- |
240 B |
Run the ParlotBenchmarks in 1.5.2 and 1.5.3. For 1.5.3, revert to .NET 9.0 to get comparable results.
Is the difference in memory usage expected?
1.5.2:
1.5.3: