@@ -4,30 +4,30 @@ Source code for [Dotnet code generation overview by example](https://mtkachenko.
44
55``` ini
66
7- BenchmarkDotNet = v0.13.1, OS =Windows 10 .0.19043.1237 (21H1/May2021Update)
8- Intel Core i7-8550U CPU 1.80GHz (Kaby Lake R) , 1 CPU, 8 logical and 4 physical cores
9- .NET SDK =5 .0.401
10- [Host] : .NET 5 .0.10 (5 .0.1021.41214 ), X64 RyuJIT
11- DefaultJob : .NET 5 .0.10 (5 .0.1021.41214 ), X64 RyuJIT
7+ BenchmarkDotNet v0.15.4, macOS 26 .0.1 (25A362) [Darwin 25.0.0]
8+ Apple M4 , 1 CPU, 10 logical and 10 physical cores
9+ .NET SDK 9 .0.305
10+ [Host] : .NET 9 .0.9 (9 .0.9, 9.0.925.41916 ), Arm64 RyuJIT armv8.0-a
11+ DefaultJob : .NET 9 .0.9 (9 .0.9, 9.0.925.41916 ), Arm64 RyuJIT armv8.0-a
1212
1313
1414```
1515
1616## Generation of parser
17- | Method | Mean | Error | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
18- | --------------- | -------------:| ------------- :| ------------- :| ----------:| -------:| -------: | ----------:|
19- | EmitIl | 22.02 μs | 0.495 μs | 1.429 μs | 1.2817 | 0.6409 | 0.0305 | 5 KB |
20- | ExpressionTree | 683.68 μs | 13.609 μs | 31.268 μs | 2.9297 | 0.9766 | - | 14 KB |
21- | Sigil | 642.63 μs | 12.305 μs | 29.243 μs | 112.3047 | - | - | 460 KB |
22- | Roslyn | 71,605.64 μs | 2,533.732 μs | 7,350.817 μs | 1000.0000 | - | - | 5,826 KB |
17+ | Method | Mean | Error | StdDev | Gen0 | Gen1 | Gen2 | Allocated |
18+ | --------------- | -------------- :| ------------:| ------------:| ----------:| --------- :| ---------: | - ----------:|
19+ | EmitIl | 3.370 us | 0.0283 us | 0.0251 us | 0.4196 | 0.2060 | 0.0305 | 3.48 KB |
20+ | ExpressionTree | 131.847 us | 0.4957 us | 0.4394 us | 1.2207 | 0.4883 | - | 11.4 KB |
21+ | Sigil | 130.371 us | 1.2540 us | 1.1730 us | 52.7344 | 13.6719 | - | 433.2 KB |
22+ | Roslyn | 14,522.046 us | 263.8589 us | 246.8138 us | 1031.2500 | 343.7500 | 125.0000 | 7757.56 KB |
2323
2424## Invocation of parser
25- | Method | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Allocated |
26- | ---------------- | ------------:| ----------:| ----------:| ------:| --------:| -------:| ----------:|
27- | EmitIl | 374.7 ns | 7.75 ns | 22.36 ns | 1.02 | 0.08 | 0.0095 | 40 B |
28- | ExpressionTree | 378.1 ns | 7.56 ns | 20.57 ns | 1.03 | 0.08 | 0.0095 | 40 B |
29- | Reflection | 13,625.0 ns | 272.60 ns | 750.81 ns | 37.29 | 2.29 | 0.7782 | 3,256 B |
30- | Sigil | 378.9 ns | 7.69 ns | 21.06 ns | 1.03 | 0.07 | 0.0095 | 40 B |
31- | Roslyn | 404.2 ns | 7.55 ns | 17.80 ns | 1.10 | 0.07 | 0.0095 | 40 B |
32- | SourceGenerator | 384.4 ns | 7.79 ns | 21.46 ns | 1.05 | 0.08 | 0.0095 | 40 B |
33- | ManuallyWritten | 367.8 ns | 7.36 ns | 15.68 ns | 1.00 | 0.00 | 0.0095 | 40 B |
25+ | Method | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
26+ | ---------------- | ------------:| ----------:| ----------:| ------:| --------:| -------:| ----------:| ------------: |
27+ | EmitIl | 75.14 ns | 0.352 ns | 0.294 ns | 1.01 | 0.00 | 0.0048 | 40 B | 1.00 |
28+ | ExpressionTree | 76.12 ns | 1.306 ns | 1.222 ns | 1.02 | 0.02 | 0.0048 | 40 B | 1.00 |
29+ | Reflection | 1,084.40 ns | 21.704 ns | 25.837 ns | 14.52 | 0.34 | 0.0992 | 832 B | 20.80 |
30+ | Sigil | 75.51 ns | 0.319 ns | 0.249 ns | 1.01 | 0.00 | 0.0048 | 40 B | 1.00 |
31+ | Roslyn | 82.45 ns | 0.117 ns | 0.110 ns | 1.10 | 0.00 | 0.0048 | 40 B | 1.00 |
32+ | SourceGenerator | 75.59 ns | 0.092 ns | 0.086 ns | 1.01 | 0.00 | 0.0048 | 40 B | 1.00 |
33+ | ManuallyWritten | 74.66 ns | 0.142 ns | 0.133 ns | 1.00 | 0.00 | 0.0048 | 40 B | 1.00 |
0 commit comments