Skip to content

Commit

Permalink
Add a simple unevaluatedProperties benchmark case (#12)
Browse files Browse the repository at this point in the history
Signed-off-by: Juan Cruz Viotti <[email protected]>
  • Loading branch information
jviotti authored Oct 16, 2024
1 parent 43cac42 commit 9de9e57
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
1 change: 1 addition & 0 deletions benchmark/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ if(BLAZE_EVALUATOR)
evaluator_draft4.cc
evaluator_draft6.cc
evaluator_draft7.cc
evaluator_2019_09.cc
evaluator_2020_12.cc)
endif()

Expand Down
45 changes: 45 additions & 0 deletions benchmark/evaluator_2019_09.cc
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);

5 comments on commit 9de9e57

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Benchmark suite Current: 9de9e57 Previous: 43cac42 Ratio
Compiler_Draft6_AdaptiveCard 2752638791.9999704 ns/iter 2839266250.000037 ns/iter 0.97
Evaluator_Draft4_Meta_1_No_Callback 734.6277872759504 ns/iter 737.605867506464 ns/iter 1.00
Evaluator_Draft4_Required_Properties 931.9126812900553 ns/iter 933.1028575471629 ns/iter 1.00
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 151.48049640886651 ns/iter 151.82502265472615 ns/iter 1.00
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 102.55680045168975 ns/iter 102.49484971060625 ns/iter 1.00
Evaluator_Draft4_Items_Schema 2620.9787623799725 ns/iter 2602.693786552985 ns/iter 1.01
Evaluator_Draft4_Nested_Object 22.89221331346582 ns/iter 22.868245070601315 ns/iter 1.00
Evaluator_Draft4_Properties_Triad_Optional 1264.554715066305 ns/iter 1258.7873256785897 ns/iter 1.00
Evaluator_Draft4_Properties_Triad_Closed 951.6507166669533 ns/iter 980.284582409077 ns/iter 0.97
Evaluator_Draft4_Properties_Triad_Required 1282.6147786097583 ns/iter 1285.6025587259812 ns/iter 1.00
Evaluator_Draft4_Non_Recursive_Ref 268.7054056024623 ns/iter 212.02978192506535 ns/iter 1.27
Evaluator_Draft4_Pattern_Properties_True 1360.078486749053 ns/iter 1349.9486149693623 ns/iter 1.01
Evaluator_Draft4_Ref_To_Single_Property 104.97332426758908 ns/iter 105.18261477058257 ns/iter 1.00
Evaluator_Draft4_Additional_Properties_Type 405.1810795473159 ns/iter 403.46791459955523 ns/iter 1.00
Evaluator_Draft4_Nested_Oneof 369.32735610041146 ns/iter 383.7527121673974 ns/iter 0.96
Evaluator_Draft6_Property_Names 768.6834160768362 ns/iter 771.7129690663697 ns/iter 1.00
Evaluator_Draft7_If_Then_Else 168.06001452781405 ns/iter 170.2876598559202 ns/iter 0.99
Evaluator_2019_09_Unevaluated_Properties 827.3872172837451 ns/iter
Evaluator_2020_12_Dynamic_Ref 1400.7237727133736 ns/iter 1436.0519579038819 ns/iter 0.98

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Benchmark suite Current: 9de9e57 Previous: 43cac42 Ratio
Compiler_Draft6_AdaptiveCard 5193981269.999995 ns/iter 5228062936.000015 ns/iter 0.99
Evaluator_Draft4_Meta_1_No_Callback 993.2011178310248 ns/iter 1033.7866236554148 ns/iter 0.96
Evaluator_Draft4_Required_Properties 1578.832286675323 ns/iter 1640.1618954905716 ns/iter 0.96
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 182.58096247229494 ns/iter 185.1824980352819 ns/iter 0.99
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 131.2978818051259 ns/iter 134.02205058657552 ns/iter 0.98
Evaluator_Draft4_Items_Schema 3517.931164936004 ns/iter 3781.9372400264165 ns/iter 0.93
Evaluator_Draft4_Nested_Object 32.24739039554847 ns/iter 33.745273248204214 ns/iter 0.96
Evaluator_Draft4_Properties_Triad_Optional 1823.0624713844318 ns/iter 1854.5627949980221 ns/iter 0.98
Evaluator_Draft4_Properties_Triad_Closed 1490.842290597449 ns/iter 1503.0807077807206 ns/iter 0.99
Evaluator_Draft4_Properties_Triad_Required 1919.0397242680751 ns/iter 1911.1249045175166 ns/iter 1.00
Evaluator_Draft4_Non_Recursive_Ref 481.3396716332242 ns/iter 502.64887246910786 ns/iter 0.96
Evaluator_Draft4_Pattern_Properties_True 2462.1850206138474 ns/iter 2513.850841899807 ns/iter 0.98
Evaluator_Draft4_Ref_To_Single_Property 133.5882905721702 ns/iter 134.63857085126625 ns/iter 0.99
Evaluator_Draft4_Additional_Properties_Type 604.4118834859029 ns/iter 579.3017194742072 ns/iter 1.04
Evaluator_Draft4_Nested_Oneof 465.02061712669456 ns/iter 522.2351283647723 ns/iter 0.89
Evaluator_Draft6_Property_Names 1234.1726569644602 ns/iter 1259.8643449539347 ns/iter 0.98
Evaluator_Draft7_If_Then_Else 208.26338566245678 ns/iter 221.80497862011256 ns/iter 0.94
Evaluator_2019_09_Unevaluated_Properties 1162.636128744206 ns/iter
Evaluator_2020_12_Dynamic_Ref 1838.4434487724682 ns/iter 1928.1363796859007 ns/iter 0.95

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Benchmark suite Current: 9de9e57 Previous: 43cac42 Ratio
Evaluator_2020_12_Dynamic_Ref 1790.872075823702 ns/iter 1812.840782403886 ns/iter 0.99
Evaluator_2019_09_Unevaluated_Properties 1119.3437396440652 ns/iter
Evaluator_Draft7_If_Then_Else 207.26251569549706 ns/iter 211.1279369505754 ns/iter 0.98
Evaluator_Draft6_Property_Names 1550.8295229531486 ns/iter 1601.6956317658414 ns/iter 0.97
Evaluator_Draft4_Meta_1_No_Callback 1087.9269725636832 ns/iter 1079.1385738981508 ns/iter 1.01
Evaluator_Draft4_Required_Properties 2210.2331432840133 ns/iter 2302.422634134075 ns/iter 0.96
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 192.16867433516902 ns/iter 199.17295736068263 ns/iter 0.96
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 134.5124703822717 ns/iter 138.25217780227118 ns/iter 0.97
Evaluator_Draft4_Items_Schema 3153.9578409467517 ns/iter 3164.467036333215 ns/iter 1.00
Evaluator_Draft4_Nested_Object 23.325466437452086 ns/iter 23.977831581069676 ns/iter 0.97
Evaluator_Draft4_Properties_Triad_Optional 1667.7421378405086 ns/iter 1711.7862625728374 ns/iter 0.97
Evaluator_Draft4_Properties_Triad_Closed 1389.083659412942 ns/iter 1428.8901821063575 ns/iter 0.97
Evaluator_Draft4_Properties_Triad_Required 1741.391455499358 ns/iter 1809.1232985060467 ns/iter 0.96
Evaluator_Draft4_Non_Recursive_Ref 441.24879580375773 ns/iter 462.4116080898283 ns/iter 0.95
Evaluator_Draft4_Pattern_Properties_True 2305.851515639986 ns/iter 2332.761344054227 ns/iter 0.99
Evaluator_Draft4_Ref_To_Single_Property 137.43031121494494 ns/iter 140.73235194510582 ns/iter 0.98
Evaluator_Draft4_Additional_Properties_Type 1045.6466813722302 ns/iter 1096.6849407597501 ns/iter 0.95
Evaluator_Draft4_Nested_Oneof 436.8274188588114 ns/iter 451.38391008215285 ns/iter 0.97
Compiler_Draft6_AdaptiveCard 5841984420.000017 ns/iter 5730000387.000018 ns/iter 1.02

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/gcc)

Benchmark suite Current: 9de9e57 Previous: 43cac42 Ratio
Compiler_Draft6_AdaptiveCard 3694895267.4865723 ns/iter 3671083927.154541 ns/iter 1.01
Evaluator_Draft4_Meta_1_No_Callback 763.4930046543715 ns/iter 763.7515074144736 ns/iter 1.00
Evaluator_Draft4_Required_Properties 1017.5332941069547 ns/iter 1013.3954979184487 ns/iter 1.00
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 172.27651752131422 ns/iter 180.81787344142472 ns/iter 0.95
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 119.13034157378405 ns/iter 124.03888857067489 ns/iter 0.96
Evaluator_Draft4_Items_Schema 2452.3057390303525 ns/iter 2410.414754903225 ns/iter 1.02
Evaluator_Draft4_Nested_Object 24.64020508629492 ns/iter 24.801662816960054 ns/iter 0.99
Evaluator_Draft4_Properties_Triad_Optional 1533.553694472941 ns/iter 1530.5790639235222 ns/iter 1.00
Evaluator_Draft4_Properties_Triad_Closed 1308.1466686266656 ns/iter 1310.5181317473864 ns/iter 1.00
Evaluator_Draft4_Properties_Triad_Required 1659.5145536192856 ns/iter 1584.5960594945038 ns/iter 1.05
Evaluator_Draft4_Non_Recursive_Ref 462.47071919398803 ns/iter 418.62781392242226 ns/iter 1.10
Evaluator_Draft4_Pattern_Properties_True 2161.396884895666 ns/iter 1964.1128516934816 ns/iter 1.10
Evaluator_Draft4_Ref_To_Single_Property 128.10377892766542 ns/iter 117.68935828911631 ns/iter 1.09
Evaluator_Draft4_Additional_Properties_Type 512.2043519079125 ns/iter 479.81175152575065 ns/iter 1.07
Evaluator_Draft4_Nested_Oneof 383.5083731818145 ns/iter 379.4678958020304 ns/iter 1.01
Evaluator_Draft6_Property_Names 920.1105745381129 ns/iter 932.5194394971468 ns/iter 0.99
Evaluator_Draft7_If_Then_Else 184.02338284768197 ns/iter 182.40527561563596 ns/iter 1.01
Evaluator_2019_09_Unevaluated_Properties 810.5988788242593 ns/iter
Evaluator_2020_12_Dynamic_Ref 1593.3094378748654 ns/iter 1561.218951563206 ns/iter 1.02

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Benchmark suite Current: 9de9e57 Previous: 43cac42 Ratio
Compiler_Draft6_AdaptiveCard 10473699799.999964 ns/iter 10470733800.000061 ns/iter 1.00
Evaluator_Draft4_Meta_1_No_Callback 2273.5799402009243 ns/iter 2310.03391737298 ns/iter 0.98
Evaluator_Draft4_Required_Properties 1981.6789750881073 ns/iter 2008.2976655109776 ns/iter 0.99
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 539.447142857138 ns/iter 541.7575999999826 ns/iter 1.00
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 414.4310803798702 ns/iter 407.24534264994116 ns/iter 1.02
Evaluator_Draft4_Items_Schema 6512.614285714083 ns/iter 6639.763392857593 ns/iter 0.98
Evaluator_Draft4_Nested_Object 156.60359374999797 ns/iter 153.18462053571633 ns/iter 1.02
Evaluator_Draft4_Properties_Triad_Optional 5233.259821428605 ns/iter 5442.687500000431 ns/iter 0.96
Evaluator_Draft4_Properties_Triad_Closed 4328.470523004015 ns/iter 4472.435801997817 ns/iter 0.97
Evaluator_Draft4_Properties_Triad_Required 5324.907000000394 ns/iter 5520.414000000074 ns/iter 0.96
Evaluator_Draft4_Non_Recursive_Ref 542.199999999988 ns/iter 552.6563999999325 ns/iter 0.98
Evaluator_Draft4_Pattern_Properties_True 7890.678571427857 ns/iter 8172.433035714529 ns/iter 0.97
Evaluator_Draft4_Ref_To_Single_Property 408.5870219380312 ns/iter 409.5982001603843 ns/iter 1.00
Evaluator_Draft4_Additional_Properties_Type 758.1930803571676 ns/iter 745.0222098215013 ns/iter 1.02
Evaluator_Draft4_Nested_Oneof 1061.5248437499504 ns/iter 1086.624531250102 ns/iter 0.98
Evaluator_Draft6_Property_Names 1992.969255546073 ns/iter 1981.0308759203378 ns/iter 1.01
Evaluator_Draft7_If_Then_Else 551.2042857143383 ns/iter 563.3554464286103 ns/iter 0.98
Evaluator_2019_09_Unevaluated_Properties 3062.4812500000025 ns/iter
Evaluator_2020_12_Dynamic_Ref 4761.149913280891 ns/iter 4742.029256276576 ns/iter 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.