diff --git a/README.md b/README.md index 378ad4e..34f62d7 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ static FluentParser() }); // expression => factor ( ( "-" | "+" ) factor )* ; - expression.Parser = factor.And(Star(plus.Or(minus).And(factor))) + expression.Parser = factor.And(ZeroOrMany(plus.Or(minus).And(factor))) .Then(static x => { // factor @@ -173,15 +173,16 @@ Intel Core i7-1065G7 CPU 1.30GHz, 1 CPU, 8 logical and 4 physical cores Job=ShortRun IterationCount=3 LaunchCount=1 WarmupCount=3 -| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated | -|------------------ |------------:|------------:|------------:|------:|--------:|-------:|------:|------:|----------:| -| ParlotRawSmall | 571.6 ns | 483.7 ns | 26.51 ns | 1.00 | 0.00 | 0.1411 | - | - | 592 B | -| ParlotFluentSmall | 1,705.4 ns | 970.2 ns | 53.18 ns | 2.99 | 0.13 | 0.1774 | - | - | 744 B | -| PidginSmall | 9,821.3 ns | 974.2 ns | 53.40 ns | 17.21 | 0.81 | 0.1831 | - | - | 816 B | -| | | | | | | | | | | -| ParlotRawBig | 2,480.5 ns | 1,748.1 ns | 95.82 ns | 1.00 | 0.00 | 0.6447 | - | - | 2712 B | -| ParlotFluentBig | 9,073.4 ns | 34,062.0 ns | 1,867.05 ns | 3.68 | 0.88 | 0.7477 | - | - | 3136 B | -| PidginBig | 50,252.0 ns | 16,204.6 ns | 888.23 ns | 20.28 | 1.04 | 0.9155 | - | - | 4072 B | +| Method | Mean | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated | +|------------------ |------------:|------------:|------:|-------:|------:|------:|----------:| +| ParlotRawSmall | 512.7 ns | 11.80 ns | 1.00 | 0.1183 | - | - | 496 B | +| ParlotFluentSmall | 946.7 ns | 18.12 ns | 1.85 | 0.1602 | - | - | 672 B | +| PidginSmall | 11,027.5 ns | 220.52 ns | 21.52 | 0.1831 | - | - | 816 B | +| | | | | | | | | +| ParlotRawBig | 2,569.0 ns | 30.88 ns | 1.00 | 0.5264 | - | - | 2208 B | +| ParlotFluentBig | 5,338.5 ns | 52.82 ns | 2.08 | 0.6943 | - | - | 2904 B | +| PidginBig | 52,311.8 ns | 1,124.48 ns | 20.36 | 0.9155 | - | - | 4072 B | + ``` ### JSON Benchmarks @@ -200,26 +201,26 @@ Intel Core i7-1065G7 CPU 1.30GHz, 1 CPU, 8 logical and 4 physical cores Job=ShortRun IterationCount=3 LaunchCount=1 WarmupCount=3 -| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated | -|-------------------- |-----------:|------------:|----------:|------:|--------:|----------:|---------:|------:|-----------:| -| BigJson_Parlot | 259.4 us | 152.04 us | 8.33 us | 1.00 | 0.00 | 24.9023 | 3.4180 | - | 101.84 KB | -| BigJson_Pidgin | 415.5 us | 206.23 us | 11.30 us | 1.60 | 0.05 | 24.9023 | 3.9063 | - | 101.7 KB | -| BigJson_Sprache | 2,608.9 us | 2,245.48 us | 123.08 us | 10.06 | 0.19 | 1308.5938 | 50.7813 | - | 5349.63 KB | -| BigJson_Superpower | 1,803.5 us | 1,210.12 us | 66.33 us | 6.95 | 0.05 | 222.6563 | 1.9531 | - | 913.43 KB | -| | | | | | | | | | | -| LongJson_Parlot | 197.7 us | 81.63 us | 4.47 us | 1.00 | 0.00 | 25.3906 | 0.2441 | - | 104.39 KB | -| LongJson_Pidgin | 341.4 us | 103.14 us | 5.65 us | 1.73 | 0.06 | 25.3906 | 2.4414 | - | 104.25 KB | -| LongJson_Sprache | 1,956.1 us | 1,473.74 us | 80.78 us | 9.90 | 0.60 | 1054.6875 | 5.8594 | - | 4311.36 KB | -| LongJson_Superpower | 1,430.1 us | 401.45 us | 22.01 us | 7.24 | 0.25 | 171.8750 | 3.9063 | - | 706.79 KB | -| | | | | | | | | | | -| DeepJson_Parlot | 179.5 us | 138.06 us | 7.57 us | 1.00 | 0.00 | 20.0195 | 0.9766 | - | 82.38 KB | -| DeepJson_Pidgin | 422.9 us | 94.89 us | 5.20 us | 2.36 | 0.12 | 49.8047 | 0.4883 | - | 205.29 KB | -| DeepJson_Sprache | 2,344.1 us | 1,578.03 us | 86.50 us | 13.06 | 0.44 | 554.6875 | 222.6563 | - | 2946.56 KB | -| | | | | | | | | | | -| WideJson_Parlot | 154.5 us | 149.50 us | 8.19 us | 1.00 | 0.00 | 11.7188 | - | - | 48.56 KB | -| WideJson_Pidgin | 234.9 us | 79.61 us | 4.36 us | 1.52 | 0.07 | 11.7188 | 1.2207 | - | 48.42 KB | -| WideJson_Sprache | 1,230.9 us | 585.60 us | 32.10 us | 7.99 | 0.57 | 683.5938 | 11.7188 | - | 2797.28 KB | -| WideJson_Superpower | 895.5 us | 314.60 us | 17.24 us | 5.81 | 0.41 | 112.3047 | 1.9531 | - | 459.74 KB | +| Method | Mean | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated | +|-------------------- |-----------:|---------:|------:|----------:|---------:|------:|-----------:| +| BigJson_Parlot | 188.4 us | 0.77 us | 1.00 | 24.9023 | 7.3242 | - | 101.8 KB | +| BigJson_Pidgin | 397.2 us | 6.45 us | 2.11 | 24.9023 | 7.3242 | - | 101.7 KB | +| BigJson_Sprache | 2,742.9 us | 37.58 us | 14.56 | 1308.5938 | 3.9063 | - | 5349.63 KB | +| BigJson_Superpower | 1,789.2 us | 1.63 us | 9.50 | 222.6563 | 54.6875 | - | 913.43 KB | +| | | | | | | | | +| LongJson_Parlot | 136.0 us | 1.47 us | 1.00 | 25.3906 | 4.3945 | - | 104.35 KB | +| LongJson_Pidgin | 329.2 us | 0.67 us | 2.42 | 25.3906 | 6.3477 | - | 104.25 KB | +| LongJson_Sprache | 2,308.5 us | 81.29 us | 16.98 | 1054.6875 | 3.9063 | - | 4311.36 KB | +| LongJson_Superpower | 1,476.9 us | 54.96 us | 10.86 | 171.8750 | 42.9688 | - | 706.79 KB | +| | | | | | | | | +| DeepJson_Parlot | 126.4 us | 3.36 us | 1.00 | 20.0195 | 0.4883 | - | 82.34 KB | +| DeepJson_Pidgin | 418.8 us | 0.97 us | 3.31 | 49.8047 | 1.9531 | - | 205.29 KB | +| DeepJson_Sprache | 2,430.5 us | 38.94 us | 19.23 | 550.7813 | 222.6563 | - | 2946.57 KB | +| | | | | | | | | +| WideJson_Parlot | 117.1 us | 1.27 us | 1.00 | 11.8408 | 2.3193 | - | 48.52 KB | +| WideJson_Pidgin | 216.3 us | 2.48 us | 1.85 | 11.7188 | 2.1973 | - | 48.42 KB | +| WideJson_Sprache | 1,227.8 us | 7.11 us | 10.48 | 683.5938 | 3.9063 | - | 2797.28 KB | +| WideJson_Superpower | 873.7 us | 5.05 us | 7.46 | 112.3047 | 3.9063 | - | 459.74 KB | ``` ### Usages