Skip to content

Commit

Permalink
Reduce evaluation marking in "track" mode by orders of magnitude (#322)
Browse files Browse the repository at this point in the history
Signed-off-by: Juan Cruz Viotti <[email protected]>
  • Loading branch information
jviotti authored Dec 20, 2024
1 parent 06ff52a commit cd3ef28
Showing 1 changed file with 70 additions and 87 deletions.
157 changes: 70 additions & 87 deletions src/evaluator/dispatch.inc.h
Original file line number Diff line number Diff line change
Expand Up @@ -790,9 +790,7 @@ INSTRUCTION_HANDLER(AssertionArrayPrefixEvaluate) {

assert(result);
if (array_size == prefixes) {
for (const auto &item : target.as_array()) {
evaluator.evaluate(&item);
}
evaluator.evaluate(&target);
} else {
for (std::size_t cursor = 0; cursor <= pointer; cursor++) {
evaluator.evaluate(&target.at(cursor));
Expand Down Expand Up @@ -1124,24 +1122,7 @@ INSTRUCTION_HANDLER(ControlEvaluate) {
#if defined(SOURCEMETA_EVALUATOR_COMPLETE) || \
defined(SOURCEMETA_EVALUATOR_TRACK)
const auto &value{*std::get_if<ValuePointer>(&instruction.value)};
const auto &target{get(instance, value)};
evaluator.evaluate(&target);
switch (target.type()) {
case sourcemeta::jsontoolkit::JSON::Type::Object:
for (const auto &property : target.as_object()) {
evaluator.evaluate(&property.second);
}

break;
case sourcemeta::jsontoolkit::JSON::Type::Array:
for (const auto &item : target.as_array()) {
evaluator.evaluate(&item);
}

break;
default:
break;
}
evaluator.evaluate(&get(instance, value));
#endif

#ifdef SOURCEMETA_EVALUATOR_COMPLETE
Expand Down Expand Up @@ -1310,28 +1291,31 @@ INSTRUCTION_HANDLER(LoopPropertiesUnevaluated) {
assert(!instruction.children.empty());
result = true;

for (const auto &entry : target.as_object()) {
if (evaluator.is_evaluated(&entry.second)) {
continue;
}
if (!evaluator.is_evaluated(&target)) {
for (const auto &entry : target.as_object()) {
if (evaluator.is_evaluated(&entry.second)) {
continue;
}

#ifdef SOURCEMETA_EVALUATOR_COMPLETE
evaluator.instance_location.push_back(entry.first);
evaluator.instance_location.push_back(entry.first);
#endif
for (const auto &child : instruction.children) {
if (!EVALUATE_RECURSE(child, entry.second)) {
result = false;
for (const auto &child : instruction.children) {
if (!EVALUATE_RECURSE(child, entry.second)) {
result = false;
#ifdef SOURCEMETA_EVALUATOR_COMPLETE
evaluator.instance_location.pop_back();
evaluator.instance_location.pop_back();
#endif
EVALUATE_END(LoopPropertiesUnevaluated);
EVALUATE_END(LoopPropertiesUnevaluated);
}
}
}

#ifdef SOURCEMETA_EVALUATOR_COMPLETE
evaluator.instance_location.pop_back();
evaluator.instance_location.pop_back();
#endif
evaluator.evaluate(&entry.second);
}

evaluator.evaluate(&target);
}

EVALUATE_END(LoopPropertiesUnevaluated);
Expand All @@ -1353,49 +1337,49 @@ INSTRUCTION_HANDLER(LoopPropertiesUnevaluatedExcept) {
assert(!std::get<0>(value).empty() || !std::get<1>(value).empty() ||
!std::get<2>(value).empty());

for (const auto &entry : target.as_object()) {
if (std::get<0>(value).contains(entry.first, entry.hash)) {
evaluator.evaluate(&entry.second);
continue;
}
if (!evaluator.is_evaluated(&target)) {
for (const auto &entry : target.as_object()) {
if (std::get<0>(value).contains(entry.first, entry.hash)) {
continue;
}

if (std::any_of(std::get<1>(value).cbegin(), std::get<1>(value).cend(),
[&entry](const auto &prefix) {
return entry.first.starts_with(prefix);
})) {
evaluator.evaluate(&entry.second);
continue;
}
if (std::any_of(std::get<1>(value).cbegin(), std::get<1>(value).cend(),
[&entry](const auto &prefix) {
return entry.first.starts_with(prefix);
})) {
continue;
}

if (std::any_of(std::get<2>(value).cbegin(), std::get<2>(value).cend(),
[&entry](const auto &pattern) {
return matches(pattern.first, entry.first);
})) {
evaluator.evaluate(&entry.second);
continue;
}
if (std::any_of(std::get<2>(value).cbegin(), std::get<2>(value).cend(),
[&entry](const auto &pattern) {
return matches(pattern.first, entry.first);
})) {
continue;
}

if (evaluator.is_evaluated(&entry.second)) {
continue;
}
if (evaluator.is_evaluated(&entry.second)) {
continue;
}

#ifdef SOURCEMETA_EVALUATOR_COMPLETE
evaluator.instance_location.push_back(entry.first);
evaluator.instance_location.push_back(entry.first);
#endif
for (const auto &child : instruction.children) {
if (!EVALUATE_RECURSE(child, entry.second)) {
result = false;
for (const auto &child : instruction.children) {
if (!EVALUATE_RECURSE(child, entry.second)) {
result = false;
#ifdef SOURCEMETA_EVALUATOR_COMPLETE
evaluator.instance_location.pop_back();
evaluator.instance_location.pop_back();
#endif
EVALUATE_END(LoopPropertiesUnevaluatedExcept);
EVALUATE_END(LoopPropertiesUnevaluatedExcept);
}
}
}

#ifdef SOURCEMETA_EVALUATOR_COMPLETE
evaluator.instance_location.pop_back();
evaluator.instance_location.pop_back();
#endif
evaluator.evaluate(&entry.second);
}

evaluator.evaluate(&target);
}

EVALUATE_END(LoopPropertiesUnevaluatedExcept);
Expand Down Expand Up @@ -1541,10 +1525,9 @@ INSTRUCTION_HANDLER(LoopPropertiesEvaluate) {
evaluator.instance_location.pop_back();
}
#endif

evaluator.evaluate(&entry.second);
}

evaluator.evaluate(&target);
EVALUATE_END(LoopPropertiesEvaluate);
}

Expand Down Expand Up @@ -1823,10 +1806,9 @@ INSTRUCTION_HANDLER(LoopPropertiesTypeEvaluate) {
result = false;
EVALUATE_END(LoopPropertiesTypeEvaluate);
}

evaluator.evaluate(&entry.second);
}

evaluator.evaluate(&target);
EVALUATE_END(LoopPropertiesTypeEvaluate);
}

Expand Down Expand Up @@ -1954,10 +1936,9 @@ INSTRUCTION_HANDLER(LoopPropertiesTypeStrictEvaluate) {
result = false;
EVALUATE_END(LoopPropertiesTypeStrictEvaluate);
}

evaluator.evaluate(&entry.second);
}

evaluator.evaluate(&target);
EVALUATE_END(LoopPropertiesTypeStrictEvaluate);
}

Expand Down Expand Up @@ -1999,10 +1980,9 @@ INSTRUCTION_HANDLER(LoopPropertiesTypeStrictAnyEvaluate) {
result = false;
EVALUATE_END(LoopPropertiesTypeStrictAnyEvaluate);
}

evaluator.evaluate(&entry.second);
}

evaluator.evaluate(&target);
EVALUATE_END(LoopPropertiesTypeStrictAnyEvaluate);
}

Expand Down Expand Up @@ -2158,29 +2138,32 @@ INSTRUCTION_HANDLER(LoopItemsUnevaluated) {
assert(!instruction.children.empty());
result = true;

for (std::size_t index = 0; index < target.array_size(); index++) {
const auto &new_instance{target.at(index)};
if (evaluator.is_evaluated(&new_instance)) {
continue;
}
if (!evaluator.is_evaluated(&target)) {
for (std::size_t index = 0; index < target.array_size(); index++) {
const auto &new_instance{target.at(index)};
if (evaluator.is_evaluated(&new_instance)) {
continue;
}

#ifdef SOURCEMETA_EVALUATOR_COMPLETE
evaluator.instance_location.push_back(index);
evaluator.instance_location.push_back(index);
#endif
for (const auto &child : instruction.children) {
if (!EVALUATE_RECURSE(child, new_instance)) {
result = false;
for (const auto &child : instruction.children) {
if (!EVALUATE_RECURSE(child, new_instance)) {
result = false;
#ifdef SOURCEMETA_EVALUATOR_COMPLETE
evaluator.instance_location.pop_back();
evaluator.instance_location.pop_back();
#endif
EVALUATE_END(LoopItemsUnevaluated);
EVALUATE_END(LoopItemsUnevaluated);
}
}
}

#ifdef SOURCEMETA_EVALUATOR_COMPLETE
evaluator.instance_location.pop_back();
evaluator.instance_location.pop_back();
#endif
evaluator.evaluate(&new_instance);
}

evaluator.evaluate(&target);
}

EVALUATE_END(LoopItemsUnevaluated);
Expand Down

5 comments on commit cd3ef28

@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: cd3ef28 Previous: 06ff52a Ratio
Compiler_Draft6_AdaptiveCard 50182950488.000015 ns/iter 50722795209.00002 ns/iter 0.99
Compiler_2019_09_OMC_JSON_V2 10660328499.000002 ns/iter 10681165463.999947 ns/iter 1.00
Evaluator_Draft4_Meta_1_No_Callback 242.5948734340768 ns/iter 253.8402131837823 ns/iter 0.96
Evaluator_Draft4_Required_Properties 689.7403493805497 ns/iter 692.6814098181349 ns/iter 1.00
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 29.68078615459467 ns/iter 28.64244030159893 ns/iter 1.04
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 17.11582846412052 ns/iter 17.121145641500437 ns/iter 1.00
Evaluator_Draft4_Items_Schema 577.271051424377 ns/iter 616.3969108831561 ns/iter 0.94
Evaluator_Draft4_Nested_Object 5.291166395005175 ns/iter 5.284574351097524 ns/iter 1.00
Evaluator_Draft4_Properties_Triad_Optional 863.96238051855 ns/iter 875.2720287792451 ns/iter 0.99
Evaluator_Draft4_Properties_Triad_Closed 700.7838522005934 ns/iter 698.1622600379122 ns/iter 1.00
Evaluator_Draft4_Properties_Triad_Required 887.0346916320582 ns/iter 902.1546562534174 ns/iter 0.98
Evaluator_Draft4_Properties_Closed 79.09229142400655 ns/iter 75.48509322853259 ns/iter 1.05
Evaluator_Draft4_Non_Recursive_Ref 32.353029500465624 ns/iter 29.231892652961175 ns/iter 1.11
Evaluator_Draft4_Pattern_Properties_True 251.1461287618697 ns/iter 253.57126160163548 ns/iter 0.99
Evaluator_Draft4_Ref_To_Single_Property 17.36401550654934 ns/iter 17.12239729063878 ns/iter 1.01
Evaluator_Draft4_Additional_Properties_Type 61.65673433323811 ns/iter 53.837658004519554 ns/iter 1.15
Evaluator_Draft4_Nested_Oneof 87.13892147629642 ns/iter 87.3802367062088 ns/iter 1.00
Evaluator_Draft4_Long_Enum 21.333901540829768 ns/iter 19.909572433452865 ns/iter 1.07
Evaluator_Draft4_Type_Object 10.643478259813287 ns/iter 11.231918116417347 ns/iter 0.95
Evaluator_Draft6_Property_Names 127.19176442683748 ns/iter 119.54424153938321 ns/iter 1.06
Evaluator_Draft7_If_Then_Else 39.85001262808798 ns/iter 39.55164164444077 ns/iter 1.01
Evaluator_Draft7_Vercel_1 54704.38843105175 ns/iter 49643.73712533907 ns/iter 1.10
Evaluator_Draft7_Helm_Chart_Lock_1 299.2790490372134 ns/iter 302.6416452291716 ns/iter 0.99
Evaluator_Draft7_Jasmine_1 167.1900081794299 ns/iter 178.84942534516338 ns/iter 0.93
Evaluator_2019_09_Unevaluated_Properties 149.5845179098509 ns/iter 164.0409519943515 ns/iter 0.91
Evaluator_2019_09_OMC_JSON_V2_1 1361.8194200779374 ns/iter 1352.635560991521 ns/iter 1.01
Evaluator_2020_12_Dynamic_Ref 572.3020968855648 ns/iter 581.5961553060182 ns/iter 0.98
Evaluator_2020_12_Dynamic_Ref_Single 10.26826755960169 ns/iter 10.893462725868975 ns/iter 0.94
Evaluator_2020_12_CQL_1 4011.0368626630398 ns/iter 4229.807522834846 ns/iter 0.95
Evaluator_2020_12_OpenAPI 1288840.6641650575 ns/iter 1738121.5995086145 ns/iter 0.74

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/llvm)

Benchmark suite Current: cd3ef28 Previous: 06ff52a Ratio
Compiler_Draft6_AdaptiveCard 36092515332.99994 ns/iter 33776032083.00002 ns/iter 1.07
Compiler_2019_09_OMC_JSON_V2 8358749291.99997 ns/iter 7847769208.000045 ns/iter 1.07
Evaluator_Draft4_Meta_1_No_Callback 176.23094361715368 ns/iter 173.8874736731387 ns/iter 1.01
Evaluator_Draft4_Required_Properties 485.39324347106066 ns/iter 438.83500089835144 ns/iter 1.11
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 21.749519239129548 ns/iter 22.116488391671407 ns/iter 0.98
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 9.310060856772344 ns/iter 9.27485758432801 ns/iter 1.00
Evaluator_Draft4_Items_Schema 268.517752200985 ns/iter 260.6876132308129 ns/iter 1.03
Evaluator_Draft4_Nested_Object 3.2609370795481505 ns/iter 3.1359656754809073 ns/iter 1.04
Evaluator_Draft4_Properties_Triad_Optional 760.1404111928706 ns/iter 746.509497816146 ns/iter 1.02
Evaluator_Draft4_Properties_Triad_Closed 622.4686927206508 ns/iter 616.2427773169255 ns/iter 1.01
Evaluator_Draft4_Properties_Triad_Required 857.2127678970736 ns/iter 758.4957274560848 ns/iter 1.13
Evaluator_Draft4_Properties_Closed 52.680229200007034 ns/iter 48.85016806375696 ns/iter 1.08
Evaluator_Draft4_Non_Recursive_Ref 9.713420328570239 ns/iter 9.403090700811 ns/iter 1.03
Evaluator_Draft4_Pattern_Properties_True 164.07976257527963 ns/iter 167.23757167693756 ns/iter 0.98
Evaluator_Draft4_Ref_To_Single_Property 9.454461933319127 ns/iter 9.569712822445826 ns/iter 0.99
Evaluator_Draft4_Additional_Properties_Type 15.986712317679942 ns/iter 15.715366652756492 ns/iter 1.02
Evaluator_Draft4_Nested_Oneof 52.14647910000849 ns/iter 48.7197204460094 ns/iter 1.07
Evaluator_Draft4_Long_Enum 28.358069308026234 ns/iter 26.510433714027677 ns/iter 1.07
Evaluator_Draft4_Type_Object 5.537408469856723 ns/iter 5.342596330526281 ns/iter 1.04
Evaluator_Draft6_Property_Names 90.89379259531151 ns/iter 86.01506762306202 ns/iter 1.06
Evaluator_Draft7_If_Then_Else 25.858160721842587 ns/iter 24.48905557898995 ns/iter 1.06
Evaluator_Draft7_Vercel_1 35357.46609994922 ns/iter 34122.96415216402 ns/iter 1.04
Evaluator_Draft7_Helm_Chart_Lock_1 145.13545363327216 ns/iter 141.231076119166 ns/iter 1.03
Evaluator_Draft7_Jasmine_1 121.61830900350851 ns/iter 119.79481304516123 ns/iter 1.02
Evaluator_2019_09_Unevaluated_Properties 140.40906353325488 ns/iter 168.74228572494673 ns/iter 0.83
Evaluator_2019_09_OMC_JSON_V2_1 1109.3360798288775 ns/iter 1013.6145880874359 ns/iter 1.09
Evaluator_2020_12_Dynamic_Ref 451.1035118938791 ns/iter 365.7205641340826 ns/iter 1.23
Evaluator_2020_12_Dynamic_Ref_Single 7.565115812862848 ns/iter 5.3526812553509595 ns/iter 1.41
Evaluator_2020_12_CQL_1 2525.357807343748 ns/iter 2335.7869489346654 ns/iter 1.08
Evaluator_2020_12_OpenAPI 1891887.4730539906 ns/iter 4163423.233695495 ns/iter 0.45

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: cd3ef28 Previous: 06ff52a Ratio
Compiler_Draft6_AdaptiveCard 42342330217.36145 ns/iter 48557291984.558105 ns/iter 0.87
Compiler_2019_09_OMC_JSON_V2 8164309024.810791 ns/iter 9727720022.201538 ns/iter 0.84
Evaluator_Draft4_Meta_1_No_Callback 157.13636085875763 ns/iter 173.8554807852316 ns/iter 0.90
Evaluator_Draft4_Required_Properties 382.33587727088076 ns/iter 404.79551817254264 ns/iter 0.94
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 17.15993020415049 ns/iter 19.015005628992228 ns/iter 0.90
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 9.184716869422727 ns/iter 10.28476629355778 ns/iter 0.89
Evaluator_Draft4_Items_Schema 433.89976981743104 ns/iter 468.8435826133358 ns/iter 0.93
Evaluator_Draft4_Nested_Object 2.0559750368678107 ns/iter 2.0993211981618254 ns/iter 0.98
Evaluator_Draft4_Properties_Triad_Optional 763.6264265833092 ns/iter 763.8891992149299 ns/iter 1.00
Evaluator_Draft4_Properties_Triad_Closed 633.9353903639992 ns/iter 633.8552475053889 ns/iter 1.00
Evaluator_Draft4_Properties_Triad_Required 775.1764722621718 ns/iter 786.6241625867154 ns/iter 0.99
Evaluator_Draft4_Properties_Closed 63.44071886195438 ns/iter 63.31449782625318 ns/iter 1.00
Evaluator_Draft4_Non_Recursive_Ref 12.622069058198402 ns/iter 12.629135314420166 ns/iter 1.00
Evaluator_Draft4_Pattern_Properties_True 172.4170126010728 ns/iter 174.85446992540892 ns/iter 0.99
Evaluator_Draft4_Ref_To_Single_Property 9.19224552892428 ns/iter 9.393594376562639 ns/iter 0.98
Evaluator_Draft4_Additional_Properties_Type 24.22783954282688 ns/iter 24.053114933468883 ns/iter 1.01
Evaluator_Draft4_Nested_Oneof 54.06256686529317 ns/iter 54.33479685170947 ns/iter 0.99
Evaluator_Draft4_Long_Enum 9.466699519985095 ns/iter 8.6371086209586 ns/iter 1.10
Evaluator_Draft4_Type_Object 4.565352299058661 ns/iter 4.545962612625827 ns/iter 1.00
Evaluator_Draft6_Property_Names 109.89330010072646 ns/iter 109.58698356967548 ns/iter 1.00
Evaluator_Draft7_If_Then_Else 24.78738518474413 ns/iter 24.59955454605641 ns/iter 1.01
Evaluator_Draft7_Vercel_1 37212.34530830414 ns/iter 36234.5681459886 ns/iter 1.03
Evaluator_Draft7_Helm_Chart_Lock_1 192.6002611067783 ns/iter 192.43013156132236 ns/iter 1.00
Evaluator_Draft7_Jasmine_1 122.96526120467992 ns/iter 124.32952040342572 ns/iter 0.99
Evaluator_2019_09_Unevaluated_Properties 132.234721605587 ns/iter 150.84626848508753 ns/iter 0.88
Evaluator_2019_09_OMC_JSON_V2_1 993.3953764077778 ns/iter 999.1676803937225 ns/iter 0.99
Evaluator_2020_12_Dynamic_Ref 442.25915248168184 ns/iter 436.8177419823055 ns/iter 1.01
Evaluator_2020_12_Dynamic_Ref_Single 4.537426230164029 ns/iter 4.663431744167 ns/iter 0.97
Evaluator_2020_12_CQL_1 2930.209522826525 ns/iter 2657.377837162283 ns/iter 1.10
Evaluator_2020_12_OpenAPI 1881669.3345618718 ns/iter 3856004.552638277 ns/iter 0.49

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: cd3ef28 Previous: 06ff52a Ratio
Evaluator_2020_12_Dynamic_Ref 616.8744627364928 ns/iter 621.8266385617724 ns/iter 0.99
Evaluator_2020_12_Dynamic_Ref_Single 9.747153867461481 ns/iter 9.209209640309682 ns/iter 1.06
Evaluator_2020_12_CQL_1 4284.100833882438 ns/iter 4200.361742378601 ns/iter 1.02
Evaluator_2020_12_OpenAPI 1459983.560416589 ns/iter 1881686.2513368714 ns/iter 0.78
Evaluator_2019_09_Unevaluated_Properties 171.27284388294635 ns/iter 189.39094097549832 ns/iter 0.90
Evaluator_2019_09_OMC_JSON_V2_1 1390.1570579964734 ns/iter 1379.8368570041212 ns/iter 1.01
Evaluator_Draft7_If_Then_Else 43.891268671477214 ns/iter 42.87655583988624 ns/iter 1.02
Evaluator_Draft7_Vercel_1 47342.11885606181 ns/iter 51713.09703959414 ns/iter 0.92
Evaluator_Draft7_Helm_Chart_Lock_1 200.38411332491495 ns/iter 206.9900914201399 ns/iter 0.97
Evaluator_Draft7_Jasmine_1 160.95613363754873 ns/iter 152.1589473532991 ns/iter 1.06
Evaluator_Draft6_Property_Names 148.6812780893148 ns/iter 156.44531181302344 ns/iter 0.95
Evaluator_Draft4_Meta_1_No_Callback 232.22166868535396 ns/iter 235.0637655613502 ns/iter 0.99
Evaluator_Draft4_Required_Properties 456.1677876707312 ns/iter 443.6956188201076 ns/iter 1.03
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 25.96681893342321 ns/iter 25.878908127761356 ns/iter 1.00
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 11.847732683301858 ns/iter 11.93944042252989 ns/iter 0.99
Evaluator_Draft4_Items_Schema 505.55771424267766 ns/iter 486.0931596335561 ns/iter 1.04
Evaluator_Draft4_Nested_Object 4.076922467225271 ns/iter 4.36883588813215 ns/iter 0.93
Evaluator_Draft4_Properties_Triad_Optional 1043.7124085251444 ns/iter 1042.391974652637 ns/iter 1.00
Evaluator_Draft4_Properties_Triad_Closed 822.5579607133462 ns/iter 832.0663674651034 ns/iter 0.99
Evaluator_Draft4_Properties_Triad_Required 1042.943302368234 ns/iter 1028.2762786128935 ns/iter 1.01
Evaluator_Draft4_Properties_Closed 72.62772166137417 ns/iter 73.80126508159759 ns/iter 0.98
Evaluator_Draft4_Non_Recursive_Ref 12.514879708890742 ns/iter 12.639386269656196 ns/iter 0.99
Evaluator_Draft4_Pattern_Properties_True 268.6702814786263 ns/iter 264.18595366657917 ns/iter 1.02
Evaluator_Draft4_Ref_To_Single_Property 11.873276290204599 ns/iter 11.978030610493283 ns/iter 0.99
Evaluator_Draft4_Additional_Properties_Type 15.262221347812838 ns/iter 15.362164233760877 ns/iter 0.99
Evaluator_Draft4_Nested_Oneof 108.75876955658632 ns/iter 108.10151249055642 ns/iter 1.01
Evaluator_Draft4_Long_Enum 18.67996026540278 ns/iter 18.06328902858472 ns/iter 1.03
Evaluator_Draft4_Type_Object 9.697384236814338 ns/iter 9.206253393903962 ns/iter 1.05
Compiler_2019_09_OMC_JSON_V2 10269359642.00004 ns/iter 10262228509.00001 ns/iter 1.00
Compiler_Draft6_AdaptiveCard 51848678422.00004 ns/iter 51925252810.99995 ns/iter 1.00

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: cd3ef28 Previous: 06ff52a Ratio
Compiler_Draft6_AdaptiveCard 112556430999.99997 ns/iter 115488258999.99997 ns/iter 0.97
Compiler_2019_09_OMC_JSON_V2 21540618300.000004 ns/iter 21911940700.00006 ns/iter 0.98
Evaluator_Draft4_Meta_1_No_Callback 346.96292018517596 ns/iter 379.3559709821537 ns/iter 0.91
Evaluator_Draft4_Required_Properties 905.6728099675186 ns/iter 916.9506620757102 ns/iter 0.99
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 38.638515624997034 ns/iter 42.935555642194664 ns/iter 0.90
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 21.422375286906775 ns/iter 21.736374999996144 ns/iter 0.99
Evaluator_Draft4_Items_Schema 697.0116071427819 ns/iter 699.0972321428249 ns/iter 1.00
Evaluator_Draft4_Nested_Object 6.257083928572017 ns/iter 6.191901785714192 ns/iter 1.01
Evaluator_Draft4_Properties_Triad_Optional 1625.2130634734522 ns/iter 1585.807366071533 ns/iter 1.02
Evaluator_Draft4_Properties_Triad_Closed 1308.7985714284805 ns/iter 1271.4023214284355 ns/iter 1.03
Evaluator_Draft4_Properties_Triad_Required 1667.6049107142076 ns/iter 1616.901785714069 ns/iter 1.03
Evaluator_Draft4_Properties_Closed 93.49546457609695 ns/iter 91.28687538897472 ns/iter 1.02
Evaluator_Draft4_Non_Recursive_Ref 32.48276300754754 ns/iter 31.81089732142896 ns/iter 1.02
Evaluator_Draft4_Pattern_Properties_True 220.00206249977077 ns/iter 226.08044351779083 ns/iter 0.97
Evaluator_Draft4_Ref_To_Single_Property 21.175851176463805 ns/iter 21.45328750000175 ns/iter 0.99
Evaluator_Draft4_Additional_Properties_Type 57.54830357142891 ns/iter 58.90570535713989 ns/iter 0.98
Evaluator_Draft4_Nested_Oneof 109.26743749999801 ns/iter 106.80549969617148 ns/iter 1.02
Evaluator_Draft4_Long_Enum 23.407352417330923 ns/iter 22.99726648440664 ns/iter 1.02
Evaluator_Draft4_Type_Object 13.019966459732029 ns/iter 13.038935714283589 ns/iter 1.00
Evaluator_Draft6_Property_Names 165.95926339288016 ns/iter 165.89095982142103 ns/iter 1.00
Evaluator_Draft7_If_Then_Else 51.94408928570989 ns/iter 52.809449999995195 ns/iter 0.98
Evaluator_Draft7_Vercel_1 73212.1651785711 ns/iter 72880.08928573017 ns/iter 1.00
Evaluator_Draft7_Helm_Chart_Lock_1 329.924387496651 ns/iter 323.8139099708674 ns/iter 1.02
Evaluator_Draft7_Jasmine_1 231.45770854268912 ns/iter 252.39492857143173 ns/iter 0.92
Evaluator_2019_09_Unevaluated_Properties 285.7561345644323 ns/iter 340.856300739933 ns/iter 0.84
Evaluator_2019_09_OMC_JSON_V2_1 2018.1022300251864 ns/iter 1903.7832176640359 ns/iter 1.06
Evaluator_2020_12_Dynamic_Ref 841.7757812499665 ns/iter 845.2248458819172 ns/iter 1.00
Evaluator_2020_12_Dynamic_Ref_Single 13.30793392857491 ns/iter 13.408635714288916 ns/iter 0.99
Evaluator_2020_12_CQL_1 4934.215999999196 ns/iter 4814.288871180024 ns/iter 1.02
Evaluator_2020_12_OpenAPI 1844399.2628988745 ns/iter 3073831.3253013655 ns/iter 0.60

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

Please sign in to comment.