-
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a simple
unevaluatedProperties
benchmark case (#12)
Signed-off-by: Juan Cruz Viotti <[email protected]>
- Loading branch information
Showing
2 changed files
with
46 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
#include <benchmark/benchmark.h> | ||
|
||
#include <cassert> // assert | ||
|
||
#include <sourcemeta/jsontoolkit/json.h> | ||
#include <sourcemeta/jsontoolkit/jsonschema.h> | ||
|
||
#include <sourcemeta/blaze/compiler.h> | ||
#include <sourcemeta/blaze/evaluator.h> | ||
|
||
static void Evaluator_2019_09_Unevaluated_Properties(benchmark::State &state) { | ||
const sourcemeta::jsontoolkit::JSON schema{ | ||
sourcemeta::jsontoolkit::parse(R"JSON({ | ||
"$schema": "https://json-schema.org/draft/2019-09/schema", | ||
"type": "object", | ||
"properties": { | ||
"name": true, | ||
"prohibited": false | ||
}, | ||
"unevaluatedProperties": false, | ||
"$ref": "#/$defs/extension", | ||
"$defs": { | ||
"extension": { | ||
"patternProperties": { "^x-": true } | ||
} | ||
} | ||
})JSON")}; | ||
|
||
const auto instance{sourcemeta::jsontoolkit::parse(R"JSON({ | ||
"name": "John Doe", | ||
"x-foo": "bar" | ||
})JSON")}; | ||
|
||
const auto schema_template{sourcemeta::blaze::compile( | ||
schema, sourcemeta::jsontoolkit::default_schema_walker, | ||
sourcemeta::jsontoolkit::official_resolver, | ||
sourcemeta::blaze::default_schema_compiler)}; | ||
for (auto _ : state) { | ||
auto result{sourcemeta::blaze::evaluate(schema_template, instance)}; | ||
assert(result); | ||
benchmark::DoNotOptimize(result); | ||
} | ||
} | ||
|
||
BENCHMARK(Evaluator_2019_09_Unevaluated_Properties); |
9de9e57
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (macos/llvm)
Compiler_Draft6_AdaptiveCard
2752638791.9999704
ns/iter2839266250.000037
ns/iter0.97
Evaluator_Draft4_Meta_1_No_Callback
734.6277872759504
ns/iter737.605867506464
ns/iter1.00
Evaluator_Draft4_Required_Properties
931.9126812900553
ns/iter933.1028575471629
ns/iter1.00
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match
151.48049640886651
ns/iter151.82502265472615
ns/iter1.00
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match
102.55680045168975
ns/iter102.49484971060625
ns/iter1.00
Evaluator_Draft4_Items_Schema
2620.9787623799725
ns/iter2602.693786552985
ns/iter1.01
Evaluator_Draft4_Nested_Object
22.89221331346582
ns/iter22.868245070601315
ns/iter1.00
Evaluator_Draft4_Properties_Triad_Optional
1264.554715066305
ns/iter1258.7873256785897
ns/iter1.00
Evaluator_Draft4_Properties_Triad_Closed
951.6507166669533
ns/iter980.284582409077
ns/iter0.97
Evaluator_Draft4_Properties_Triad_Required
1282.6147786097583
ns/iter1285.6025587259812
ns/iter1.00
Evaluator_Draft4_Non_Recursive_Ref
268.7054056024623
ns/iter212.02978192506535
ns/iter1.27
Evaluator_Draft4_Pattern_Properties_True
1360.078486749053
ns/iter1349.9486149693623
ns/iter1.01
Evaluator_Draft4_Ref_To_Single_Property
104.97332426758908
ns/iter105.18261477058257
ns/iter1.00
Evaluator_Draft4_Additional_Properties_Type
405.1810795473159
ns/iter403.46791459955523
ns/iter1.00
Evaluator_Draft4_Nested_Oneof
369.32735610041146
ns/iter383.7527121673974
ns/iter0.96
Evaluator_Draft6_Property_Names
768.6834160768362
ns/iter771.7129690663697
ns/iter1.00
Evaluator_Draft7_If_Then_Else
168.06001452781405
ns/iter170.2876598559202
ns/iter0.99
Evaluator_2019_09_Unevaluated_Properties
827.3872172837451
ns/iterEvaluator_2020_12_Dynamic_Ref
1400.7237727133736
ns/iter1436.0519579038819
ns/iter0.98
This comment was automatically generated by workflow using github-action-benchmark.
9de9e57
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (linux/llvm)
Compiler_Draft6_AdaptiveCard
5193981269.999995
ns/iter5228062936.000015
ns/iter0.99
Evaluator_Draft4_Meta_1_No_Callback
993.2011178310248
ns/iter1033.7866236554148
ns/iter0.96
Evaluator_Draft4_Required_Properties
1578.832286675323
ns/iter1640.1618954905716
ns/iter0.96
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match
182.58096247229494
ns/iter185.1824980352819
ns/iter0.99
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match
131.2978818051259
ns/iter134.02205058657552
ns/iter0.98
Evaluator_Draft4_Items_Schema
3517.931164936004
ns/iter3781.9372400264165
ns/iter0.93
Evaluator_Draft4_Nested_Object
32.24739039554847
ns/iter33.745273248204214
ns/iter0.96
Evaluator_Draft4_Properties_Triad_Optional
1823.0624713844318
ns/iter1854.5627949980221
ns/iter0.98
Evaluator_Draft4_Properties_Triad_Closed
1490.842290597449
ns/iter1503.0807077807206
ns/iter0.99
Evaluator_Draft4_Properties_Triad_Required
1919.0397242680751
ns/iter1911.1249045175166
ns/iter1.00
Evaluator_Draft4_Non_Recursive_Ref
481.3396716332242
ns/iter502.64887246910786
ns/iter0.96
Evaluator_Draft4_Pattern_Properties_True
2462.1850206138474
ns/iter2513.850841899807
ns/iter0.98
Evaluator_Draft4_Ref_To_Single_Property
133.5882905721702
ns/iter134.63857085126625
ns/iter0.99
Evaluator_Draft4_Additional_Properties_Type
604.4118834859029
ns/iter579.3017194742072
ns/iter1.04
Evaluator_Draft4_Nested_Oneof
465.02061712669456
ns/iter522.2351283647723
ns/iter0.89
Evaluator_Draft6_Property_Names
1234.1726569644602
ns/iter1259.8643449539347
ns/iter0.98
Evaluator_Draft7_If_Then_Else
208.26338566245678
ns/iter221.80497862011256
ns/iter0.94
Evaluator_2019_09_Unevaluated_Properties
1162.636128744206
ns/iterEvaluator_2020_12_Dynamic_Ref
1838.4434487724682
ns/iter1928.1363796859007
ns/iter0.95
This comment was automatically generated by workflow using github-action-benchmark.
9de9e57
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (linux/gcc)
Evaluator_2020_12_Dynamic_Ref
1790.872075823702
ns/iter1812.840782403886
ns/iter0.99
Evaluator_2019_09_Unevaluated_Properties
1119.3437396440652
ns/iterEvaluator_Draft7_If_Then_Else
207.26251569549706
ns/iter211.1279369505754
ns/iter0.98
Evaluator_Draft6_Property_Names
1550.8295229531486
ns/iter1601.6956317658414
ns/iter0.97
Evaluator_Draft4_Meta_1_No_Callback
1087.9269725636832
ns/iter1079.1385738981508
ns/iter1.01
Evaluator_Draft4_Required_Properties
2210.2331432840133
ns/iter2302.422634134075
ns/iter0.96
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match
192.16867433516902
ns/iter199.17295736068263
ns/iter0.96
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match
134.5124703822717
ns/iter138.25217780227118
ns/iter0.97
Evaluator_Draft4_Items_Schema
3153.9578409467517
ns/iter3164.467036333215
ns/iter1.00
Evaluator_Draft4_Nested_Object
23.325466437452086
ns/iter23.977831581069676
ns/iter0.97
Evaluator_Draft4_Properties_Triad_Optional
1667.7421378405086
ns/iter1711.7862625728374
ns/iter0.97
Evaluator_Draft4_Properties_Triad_Closed
1389.083659412942
ns/iter1428.8901821063575
ns/iter0.97
Evaluator_Draft4_Properties_Triad_Required
1741.391455499358
ns/iter1809.1232985060467
ns/iter0.96
Evaluator_Draft4_Non_Recursive_Ref
441.24879580375773
ns/iter462.4116080898283
ns/iter0.95
Evaluator_Draft4_Pattern_Properties_True
2305.851515639986
ns/iter2332.761344054227
ns/iter0.99
Evaluator_Draft4_Ref_To_Single_Property
137.43031121494494
ns/iter140.73235194510582
ns/iter0.98
Evaluator_Draft4_Additional_Properties_Type
1045.6466813722302
ns/iter1096.6849407597501
ns/iter0.95
Evaluator_Draft4_Nested_Oneof
436.8274188588114
ns/iter451.38391008215285
ns/iter0.97
Compiler_Draft6_AdaptiveCard
5841984420.000017
ns/iter5730000387.000018
ns/iter1.02
This comment was automatically generated by workflow using github-action-benchmark.
9de9e57
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (macos/gcc)
Compiler_Draft6_AdaptiveCard
3694895267.4865723
ns/iter3671083927.154541
ns/iter1.01
Evaluator_Draft4_Meta_1_No_Callback
763.4930046543715
ns/iter763.7515074144736
ns/iter1.00
Evaluator_Draft4_Required_Properties
1017.5332941069547
ns/iter1013.3954979184487
ns/iter1.00
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match
172.27651752131422
ns/iter180.81787344142472
ns/iter0.95
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match
119.13034157378405
ns/iter124.03888857067489
ns/iter0.96
Evaluator_Draft4_Items_Schema
2452.3057390303525
ns/iter2410.414754903225
ns/iter1.02
Evaluator_Draft4_Nested_Object
24.64020508629492
ns/iter24.801662816960054
ns/iter0.99
Evaluator_Draft4_Properties_Triad_Optional
1533.553694472941
ns/iter1530.5790639235222
ns/iter1.00
Evaluator_Draft4_Properties_Triad_Closed
1308.1466686266656
ns/iter1310.5181317473864
ns/iter1.00
Evaluator_Draft4_Properties_Triad_Required
1659.5145536192856
ns/iter1584.5960594945038
ns/iter1.05
Evaluator_Draft4_Non_Recursive_Ref
462.47071919398803
ns/iter418.62781392242226
ns/iter1.10
Evaluator_Draft4_Pattern_Properties_True
2161.396884895666
ns/iter1964.1128516934816
ns/iter1.10
Evaluator_Draft4_Ref_To_Single_Property
128.10377892766542
ns/iter117.68935828911631
ns/iter1.09
Evaluator_Draft4_Additional_Properties_Type
512.2043519079125
ns/iter479.81175152575065
ns/iter1.07
Evaluator_Draft4_Nested_Oneof
383.5083731818145
ns/iter379.4678958020304
ns/iter1.01
Evaluator_Draft6_Property_Names
920.1105745381129
ns/iter932.5194394971468
ns/iter0.99
Evaluator_Draft7_If_Then_Else
184.02338284768197
ns/iter182.40527561563596
ns/iter1.01
Evaluator_2019_09_Unevaluated_Properties
810.5988788242593
ns/iterEvaluator_2020_12_Dynamic_Ref
1593.3094378748654
ns/iter1561.218951563206
ns/iter1.02
This comment was automatically generated by workflow using github-action-benchmark.
9de9e57
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (windows/msvc)
Compiler_Draft6_AdaptiveCard
10473699799.999964
ns/iter10470733800.000061
ns/iter1.00
Evaluator_Draft4_Meta_1_No_Callback
2273.5799402009243
ns/iter2310.03391737298
ns/iter0.98
Evaluator_Draft4_Required_Properties
1981.6789750881073
ns/iter2008.2976655109776
ns/iter0.99
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match
539.447142857138
ns/iter541.7575999999826
ns/iter1.00
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match
414.4310803798702
ns/iter407.24534264994116
ns/iter1.02
Evaluator_Draft4_Items_Schema
6512.614285714083
ns/iter6639.763392857593
ns/iter0.98
Evaluator_Draft4_Nested_Object
156.60359374999797
ns/iter153.18462053571633
ns/iter1.02
Evaluator_Draft4_Properties_Triad_Optional
5233.259821428605
ns/iter5442.687500000431
ns/iter0.96
Evaluator_Draft4_Properties_Triad_Closed
4328.470523004015
ns/iter4472.435801997817
ns/iter0.97
Evaluator_Draft4_Properties_Triad_Required
5324.907000000394
ns/iter5520.414000000074
ns/iter0.96
Evaluator_Draft4_Non_Recursive_Ref
542.199999999988
ns/iter552.6563999999325
ns/iter0.98
Evaluator_Draft4_Pattern_Properties_True
7890.678571427857
ns/iter8172.433035714529
ns/iter0.97
Evaluator_Draft4_Ref_To_Single_Property
408.5870219380312
ns/iter409.5982001603843
ns/iter1.00
Evaluator_Draft4_Additional_Properties_Type
758.1930803571676
ns/iter745.0222098215013
ns/iter1.02
Evaluator_Draft4_Nested_Oneof
1061.5248437499504
ns/iter1086.624531250102
ns/iter0.98
Evaluator_Draft6_Property_Names
1992.969255546073
ns/iter1981.0308759203378
ns/iter1.01
Evaluator_Draft7_If_Then_Else
551.2042857143383
ns/iter563.3554464286103
ns/iter0.98
Evaluator_2019_09_Unevaluated_Properties
3062.4812500000025
ns/iterEvaluator_2020_12_Dynamic_Ref
4761.149913280891
ns/iter4742.029256276576
ns/iter1.00
This comment was automatically generated by workflow using github-action-benchmark.