Skip to content

Commit

Permalink
Correctly repopulate anchor instance locations after references (#1561)
Browse files Browse the repository at this point in the history
Signed-off-by: Juan Cruz Viotti <[email protected]>
  • Loading branch information
jviotti authored Feb 12, 2025
1 parent 6eeaeb8 commit e65d189
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 8 deletions.
20 changes: 13 additions & 7 deletions src/core/jsonschema/frame.cc
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,9 @@ static auto traverse_origin_instance_locations(
}

// Here, we want to get all the pointers of the subschemas that reference the
// current desired location
// current desired location.
// TODO: This is currently very slow, as we need to loop on every reference
// to brute force whether it points to the desired entry or not

for (const auto &reference : frame.references()) {
const auto subschema_pointer{reference.first.second.initial()};
Expand Down Expand Up @@ -856,12 +858,16 @@ auto SchemaFrame::analyse(const JSON &schema, const SchemaWalker &walker,
}

// This is guaranteed to be top-down
// TODO: Looping over the subschemas array means we never fix-up
// instance locations for anchors
for (auto &entry : subschemas) {
repopulate_instance_locations(
*this, this->instances_, subschemas, entry.first, entry.second,
this->instances_[entry.first], std::nullopt);
for (auto &entry : this->locations_) {
if (entry.second.type == SchemaFrame::LocationType::Pointer) {
continue;
}

const auto subschema{subschemas.find(entry.second.pointer)};
repopulate_instance_locations(*this, this->instances_, subschemas,
subschema->first, subschema->second,
this->instances_[entry.second.pointer],
std::nullopt);
}
}
}
Expand Down
14 changes: 13 additions & 1 deletion test/jsonschema/jsonschema_frame_2020_12_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2042,6 +2042,7 @@ TEST(JSONSchema_frame_2020_12, property_cross_ref) {
},
"bar": {
"items": {
"$anchor": "foo",
"additionalProperties": true
}
}
Expand All @@ -2053,7 +2054,7 @@ TEST(JSONSchema_frame_2020_12, property_cross_ref) {
frame.analyse(document, sourcemeta::core::schema_official_walker,
sourcemeta::core::schema_official_resolver);

EXPECT_EQ(frame.locations().size(), 9);
EXPECT_EQ(frame.locations().size(), 11);

EXPECT_FRAME_STATIC_2020_12_RESOURCE(
frame, "https://www.sourcemeta.com/schema",
Expand Down Expand Up @@ -2094,6 +2095,11 @@ TEST(JSONSchema_frame_2020_12, property_cross_ref) {
"https://www.sourcemeta.com/schema", "/properties/bar/items",
"https://www.sourcemeta.com/schema", "/properties/bar/items",
POINTER_TEMPLATES("/bar/~I~", "/foo/~I~"), "/properties/bar");
EXPECT_FRAME_STATIC_2020_12_POINTER(
frame, "https://www.sourcemeta.com/schema#/properties/bar/items/$anchor",
"https://www.sourcemeta.com/schema", "/properties/bar/items/$anchor",
"https://www.sourcemeta.com/schema", "/properties/bar/items/$anchor", {},
"/properties/bar/items");
EXPECT_FRAME_STATIC_2020_12_SUBSCHEMA(
frame,
"https://www.sourcemeta.com/schema#/properties/bar/items/"
Expand All @@ -2105,6 +2111,12 @@ TEST(JSONSchema_frame_2020_12, property_cross_ref) {
POINTER_TEMPLATES("/bar/~I~/~P~", "/foo/~I~/~P~"),
"/properties/bar/items");

EXPECT_FRAME_STATIC_2020_12_ANCHOR(
frame, "https://www.sourcemeta.com/schema#foo",
"https://www.sourcemeta.com/schema", "/properties/bar/items",
"https://www.sourcemeta.com/schema", "/properties/bar/items",
POINTER_TEMPLATES("/bar/~I~", "/foo/~I~"), "/properties/bar");

// References

EXPECT_EQ(frame.references().size(), 2);
Expand Down

5 comments on commit e65d189

@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: e65d189 Previous: 6eeaeb8 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.5817600281447863 ns/iter 1.7145372560948229 ns/iter 0.92
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.58724601220881 ns/iter 1.724905027142738 ns/iter 0.92
Regex_Period_Asterisk 1.5671230851959383 ns/iter 1.687150154025665 ns/iter 0.93
Regex_Group_Period_Asterisk_Group 1.600385376577446 ns/iter 1.7741704125234485 ns/iter 0.90
Regex_Period_Plus 1.8848968228706406 ns/iter 1.9729418230803804 ns/iter 0.96
Regex_Period 1.8987812416750405 ns/iter 1.933691054240718 ns/iter 0.98
Regex_Caret_Period_Plus_Dollar 1.8811692961961162 ns/iter 1.9519348040024196 ns/iter 0.96
Regex_Caret_Group_Period_Plus_Group_Dollar 1.882467534701582 ns/iter 1.9194132636903207 ns/iter 0.98
Regex_Caret_Period_Asterisk_Dollar 1.5705757362875976 ns/iter 1.5693588267699419 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.5660961747277975 ns/iter 1.5919433190659797 ns/iter 0.98
Regex_Caret_X_Hyphen 6.581122830647934 ns/iter 6.272937635063344 ns/iter 1.05
Regex_Period_Md_Dollar 67.77720391321638 ns/iter 69.34884759820588 ns/iter 0.98
Regex_Caret_Slash_Period_Asterisk 5.013701072978269 ns/iter 5.250050305873684 ns/iter 0.95
Regex_Caret_Period_Range_Dollar 2.239079504221759 ns/iter 2.0491684846988103 ns/iter 1.09
Regex_Nested_Backtrack 726.2526274754033 ns/iter 725.6790693491332 ns/iter 1.00
JSON_Array_Of_Objects_Unique 327.3611896700036 ns/iter 328.335322772672 ns/iter 1.00
JSON_Parse_1 21332.674241040775 ns/iter 22073.34704798786 ns/iter 0.97
JSON_Fast_Hash_Helm_Chart_Lock 48.31118781211878 ns/iter 50.470016600002054 ns/iter 0.96
JSON_Equality_Helm_Chart_Lock 116.00221205773458 ns/iter 119.57757671057479 ns/iter 0.97
JSON_String_Equal/10 7.519229182070485 ns/iter 7.621745800946572 ns/iter 0.99
JSON_String_Equal/100 5.972451521260957 ns/iter 5.966349702431995 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.31359566027713737 ns/iter 0.318090787983171 ns/iter 0.99
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 2.9124610027225746 ns/iter 2.9529339735631175 ns/iter 0.99
JSON_String_Fast_Hash/10 1.5680938377963547 ns/iter 1.569942932296202 ns/iter 1.00
JSON_String_Fast_Hash/100 1.8809778078149855 ns/iter 1.9427674019708019 ns/iter 0.97
JSON_String_Key_Hash/10 1.2539971828041896 ns/iter 1.287018179787216 ns/iter 0.97
JSON_String_Key_Hash/100 1.2698544346372997 ns/iter 1.3180027776138932 ns/iter 0.96
JSON_Object_Defines_Miss_Same_Length 2.1961843069753546 ns/iter 2.3334219354234373 ns/iter 0.94
JSON_Object_Defines_Miss_Too_Small 2.193187549105642 ns/iter 2.3599118229139333 ns/iter 0.93
JSON_Object_Defines_Miss_Too_Large 4.386748762010116 ns/iter 2.3747191944931636 ns/iter 1.85
Pointer_Object_Traverse 15.341172760307497 ns/iter 17.04142052266079 ns/iter 0.90
Pointer_Object_Try_Traverse 21.909170129184837 ns/iter 24.739767037017863 ns/iter 0.89
Pointer_Push_Back_Pointer_To_Weak_Pointer 169.64479825180882 ns/iter 192.55644748790112 ns/iter 0.88
Schema_Frame_OMC_Instances 267680139.0000113 ns/iter 318502208.49997866 ns/iter 0.84
Schema_Frame_OMC_References 99640767.85714075 ns/iter 120791465.33333565 ns/iter 0.82
Schema_Bundle_Meta_2020_12 4710525.333330729 ns/iter 5416352.053438084 ns/iter 0.87

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: e65d189 Previous: 6eeaeb8 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.207995404173344 ns/iter 2.190196708376518 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.1931146872749805 ns/iter 2.2341471070258256 ns/iter 0.98
Regex_Period_Asterisk 2.204240060973603 ns/iter 2.181338837012808 ns/iter 1.01
Regex_Group_Period_Asterisk_Group 2.2194282899359514 ns/iter 2.1844761753241135 ns/iter 1.02
Regex_Period_Plus 2.4870794752063596 ns/iter 2.488707627278553 ns/iter 1.00
Regex_Period 2.4878324319956966 ns/iter 2.488924987638504 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 2.4886193156300966 ns/iter 2.2101420070447406 ns/iter 1.13
Regex_Caret_Group_Period_Plus_Group_Dollar 2.4882206542453655 ns/iter 2.3394645669638203 ns/iter 1.06
Regex_Caret_Period_Asterisk_Dollar 3.417367644679357 ns/iter 2.425908436620514 ns/iter 1.41
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.4167511623166136 ns/iter 2.185814396492654 ns/iter 1.56
Regex_Caret_X_Hyphen 12.591225770221227 ns/iter 12.664930962387452 ns/iter 0.99
Regex_Period_Md_Dollar 73.68669980886543 ns/iter 73.60966540915595 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 5.912515772575709 ns/iter 7.156549825005824 ns/iter 0.83
Regex_Caret_Period_Range_Dollar 2.8146579597511945 ns/iter 4.120212510801584 ns/iter 0.68
Regex_Nested_Backtrack 453.55339949918147 ns/iter 453.08648170835164 ns/iter 1.00
JSON_Array_Of_Objects_Unique 404.3873251572459 ns/iter 406.5374489480059 ns/iter 0.99
JSON_Parse_1 30221.194961807338 ns/iter 30786.15631227935 ns/iter 0.98
JSON_Fast_Hash_Helm_Chart_Lock 59.73368188187286 ns/iter 59.969791443174465 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 157.50281208757798 ns/iter 164.39876673088142 ns/iter 0.96
JSON_String_Equal/10 7.465772180219773 ns/iter 7.466804930886629 ns/iter 1.00
JSON_String_Equal/100 8.0848395116233 ns/iter 8.087932226152384 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9345239950164486 ns/iter 0.9360176726777709 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.60333078569218 ns/iter 10.258201622585448 ns/iter 1.42
JSON_String_Fast_Hash/10 2.181661688163844 ns/iter 2.178098316673316 ns/iter 1.00
JSON_String_Fast_Hash/100 2.175928687135249 ns/iter 2.1752136340781165 ns/iter 1.00
JSON_String_Key_Hash/10 2.6986755344205564 ns/iter 1.8680616487506145 ns/iter 1.44
JSON_String_Key_Hash/100 2.1794636100234612 ns/iter 2.1780068710205485 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.735576867183974 ns/iter 3.736392373773974 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.7335076315357028 ns/iter 3.733543043707488 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7334914521684763 ns/iter 3.733691469179388 ns/iter 1.00
Pointer_Object_Traverse 45.08275928686826 ns/iter 45.98228719566351 ns/iter 0.98
Pointer_Object_Try_Traverse 52.327192562162466 ns/iter 52.30696072585045 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 347.2481210358901 ns/iter 335.34987080797805 ns/iter 1.04
Schema_Frame_OMC_Instances 329531254.5000115 ns/iter 339775838.99999785 ns/iter 0.97
Schema_Frame_OMC_References 139935191.00001776 ns/iter 144287681.39999872 ns/iter 0.97
Schema_Bundle_Meta_2020_12 6753996.990287482 ns/iter 6856119.7391310865 ns/iter 0.99

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: e65d189 Previous: 6eeaeb8 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 6.976052455357008 ns/iter 6.8085625000005985 ns/iter 1.02
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 6.672103794642988 ns/iter 6.894200892857733 ns/iter 0.97
Regex_Period_Asterisk 6.807156249999074 ns/iter 6.54089397321351 ns/iter 1.04
Regex_Group_Period_Asterisk_Group 6.6485055803574715 ns/iter 6.921427455358144 ns/iter 0.96
Regex_Period_Plus 7.150152901786047 ns/iter 7.00881138392871 ns/iter 1.02
Regex_Period 6.85857410714265 ns/iter 6.992704241071124 ns/iter 0.98
Regex_Caret_Period_Plus_Dollar 7.160332589285342 ns/iter 6.9988124999983565 ns/iter 1.02
Regex_Caret_Group_Period_Plus_Group_Dollar 6.855336130110411 ns/iter 7.225724967742181 ns/iter 0.95
Regex_Caret_Period_Asterisk_Dollar 6.988315848214403 ns/iter 6.654372767859026 ns/iter 1.05
Regex_Caret_Group_Period_Asterisk_Group_Dollar 6.551628571428531 ns/iter 6.996029017857706 ns/iter 0.94
Regex_Caret_X_Hyphen 11.896362500000432 ns/iter 11.844012499998207 ns/iter 1.00
Regex_Period_Md_Dollar 156.10499999999053 ns/iter 153.13678571427909 ns/iter 1.02
Regex_Caret_Slash_Period_Asterisk 10.620523437498974 ns/iter 9.922357812499172 ns/iter 1.07
Regex_Caret_Period_Range_Dollar 7.375465178572175 ns/iter 7.1787803250968105 ns/iter 1.03
Regex_Nested_Backtrack 604.2122321427914 ns/iter 586.9725000000017 ns/iter 1.03
JSON_Array_Of_Objects_Unique 413.5546047964373 ns/iter 416.79665441024184 ns/iter 0.99
JSON_Parse_1 78826.84151786026 ns/iter 78531.55133929082 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 61.27931000000899 ns/iter 62.24393750000802 ns/iter 0.98
JSON_Equality_Helm_Chart_Lock 186.46464641504355 ns/iter 188.78942782075242 ns/iter 0.99
JSON_String_Equal/10 9.290073172811907 ns/iter 9.303508887036303 ns/iter 1.00
JSON_String_Equal/100 9.918952187862002 ns/iter 9.933253124998487 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 2.1682384375001362 ns/iter 2.166338749999852 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 15.200841517855373 ns/iter 15.264546874997261 ns/iter 1.00
JSON_String_Fast_Hash/10 3.1131651785715673 ns/iter 3.100619196427853 ns/iter 1.00
JSON_String_Fast_Hash/100 3.1016035714286665 ns/iter 3.094514303890864 ns/iter 1.00
JSON_String_Key_Hash/10 7.57080133928564 ns/iter 7.428241071428333 ns/iter 1.02
JSON_String_Key_Hash/100 3.718147493360356 ns/iter 3.7179203505037055 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 4.025933444688788 ns/iter 4.034144337560712 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.4180516010389437 ns/iter 3.401179368926049 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7245937433490743 ns/iter 3.7207982076404913 ns/iter 1.00
Pointer_Object_Traverse 52.644455357133374 ns/iter 53.3551785714183 ns/iter 0.99
Pointer_Object_Try_Traverse 64.82543750000299 ns/iter 64.5300803571404 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 180.76804292570736 ns/iter 180.44149825367538 ns/iter 1.00
Schema_Frame_OMC_Instances 689235399.999916 ns/iter 697525499.9999833 ns/iter 0.99
Schema_Frame_OMC_References 356650649.9999491 ns/iter 367713849.9999728 ns/iter 0.97
Schema_Bundle_Meta_2020_12 16459748.78050122 ns/iter 16430456.097540207 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 (linux/gcc)

Benchmark suite Current: e65d189 Previous: 6eeaeb8 Ratio
Schema_Frame_OMC_Instances 341719858.50002784 ns/iter 345288504.4999903 ns/iter 0.99
Schema_Frame_OMC_References 144950340.8000055 ns/iter 145553423.6000176 ns/iter 1.00
Schema_Bundle_Meta_2020_12 6969316.15000267 ns/iter 7014238.060606898 ns/iter 0.99
Pointer_Object_Traverse 47.49154622343189 ns/iter 48.03621257941932 ns/iter 0.99
Pointer_Object_Try_Traverse 22.788407532180617 ns/iter 22.996066259458196 ns/iter 0.99
Pointer_Push_Back_Pointer_To_Weak_Pointer 170.11576887300168 ns/iter 160.33016952266541 ns/iter 1.06
JSON_Array_Of_Objects_Unique 376.768940881943 ns/iter 390.19322819823356 ns/iter 0.97
JSON_Parse_1 33147.92331346176 ns/iter 33001.19515856867 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 65.92993042477656 ns/iter 57.390017000917226 ns/iter 1.15
JSON_Equality_Helm_Chart_Lock 153.7677023930852 ns/iter 155.2865139787904 ns/iter 0.99
JSON_String_Equal/10 5.993430407451088 ns/iter 6.261937830257165 ns/iter 0.96
JSON_String_Equal/100 6.621212944814854 ns/iter 6.884042988568089 ns/iter 0.96
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9355305692660275 ns/iter 0.6232565600289169 ns/iter 1.50
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 11.814368132834597 ns/iter 11.665984050626356 ns/iter 1.01
JSON_String_Fast_Hash/10 0.9347079157941732 ns/iter 0.9325657602879405 ns/iter 1.00
JSON_String_Fast_Hash/100 0.9328215513578587 ns/iter 0.9327111854283897 ns/iter 1.00
JSON_String_Key_Hash/10 1.2465271078239857 ns/iter 1.2447748263760163 ns/iter 1.00
JSON_String_Key_Hash/100 0.9341943508449568 ns/iter 0.9359233432438051 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.493072637793128 ns/iter 2.4873138929752083 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.4905098748483696 ns/iter 2.5031739164472917 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Large 2.48809811536846 ns/iter 2.797691917824177 ns/iter 0.89
Regex_Lower_S_Or_Upper_S_Asterisk 3.116347213052761 ns/iter 3.418857285376448 ns/iter 0.91
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.108544387236101 ns/iter 3.107015095082074 ns/iter 1.00
Regex_Period_Asterisk 3.110319491909866 ns/iter 3.1083371561558852 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.109907010297071 ns/iter 3.1089301876927635 ns/iter 1.00
Regex_Period_Plus 3.419239894884336 ns/iter 3.419205831632048 ns/iter 1.00
Regex_Period 3.4182402264815828 ns/iter 3.4222531678280697 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 3.418399511998676 ns/iter 3.4190100425088152 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.419909989342524 ns/iter 3.727576897014256 ns/iter 0.92
Regex_Caret_Period_Asterisk_Dollar 4.3497490042991505 ns/iter 4.348322815103161 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.35558807984896 ns/iter 4.6625226500030985 ns/iter 0.93
Regex_Caret_X_Hyphen 13.67822148296927 ns/iter 13.148965885009991 ns/iter 1.04
Regex_Period_Md_Dollar 90.43516485844651 ns/iter 116.41431154174677 ns/iter 0.78
Regex_Caret_Slash_Period_Asterisk 9.3190372534556 ns/iter 9.647408555730149 ns/iter 0.97
Regex_Caret_Period_Range_Dollar 4.356359643307452 ns/iter 4.6606258158757585 ns/iter 0.93
Regex_Nested_Backtrack 834.2321494657796 ns/iter 852.2289797649843 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 (macos/gcc)

Benchmark suite Current: e65d189 Previous: 6eeaeb8 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.055353662080518 ns/iter 1.943872096938542 ns/iter 1.06
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.1658289336064 ns/iter 1.9881407077094337 ns/iter 1.09
Regex_Period_Asterisk 2.122952084750601 ns/iter 1.9458549500971065 ns/iter 1.09
Regex_Group_Period_Asterisk_Group 2.0570866230011644 ns/iter 1.9536634707955765 ns/iter 1.05
Regex_Period_Plus 1.7723386849394156 ns/iter 1.6248480846991722 ns/iter 1.09
Regex_Period 1.842547931189077 ns/iter 1.6494768970048908 ns/iter 1.12
Regex_Caret_Period_Plus_Dollar 1.7776463672808591 ns/iter 1.6216558466164706 ns/iter 1.10
Regex_Caret_Group_Period_Plus_Group_Dollar 1.7730824792974813 ns/iter 1.6276989371319595 ns/iter 1.09
Regex_Caret_Period_Asterisk_Dollar 2.1544885827644853 ns/iter 1.9473969397011717 ns/iter 1.11
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.299188617244288 ns/iter 1.964690407054506 ns/iter 1.17
Regex_Caret_X_Hyphen 6.994036624840815 ns/iter 6.155957077941823 ns/iter 1.14
Regex_Period_Md_Dollar 76.91364095518648 ns/iter 79.88720078278992 ns/iter 0.96
Regex_Caret_Slash_Period_Asterisk 5.033245374254906 ns/iter 4.616382504351602 ns/iter 1.09
Regex_Caret_Period_Range_Dollar 2.085294424130885 ns/iter 1.954842906119286 ns/iter 1.07
Regex_Nested_Backtrack 933.1647201769285 ns/iter 886.6021021817422 ns/iter 1.05
JSON_Array_Of_Objects_Unique 235.71678732773185 ns/iter 207.4648855530585 ns/iter 1.14
JSON_Parse_1 25711.50754740783 ns/iter 24251.157584278993 ns/iter 1.06
JSON_Fast_Hash_Helm_Chart_Lock 25.644735700325203 ns/iter 24.404790077523977 ns/iter 1.05
JSON_Equality_Helm_Chart_Lock 124.40725973721945 ns/iter 117.85132049513058 ns/iter 1.06
JSON_String_Equal/10 6.587554068245386 ns/iter 5.55648553675732 ns/iter 1.19
JSON_String_Equal/100 6.705880952661728 ns/iter 5.229871576901288 ns/iter 1.28
JSON_String_Equal_Small_By_Perfect_Hash/10 0.953181937505708 ns/iter 0.7735223583688873 ns/iter 1.23
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.619318670555165 ns/iter 3.566768078752174 ns/iter 1.30
JSON_String_Fast_Hash/10 2.1937159142812366 ns/iter 1.9579513543159603 ns/iter 1.12
JSON_String_Fast_Hash/100 2.187534608297822 ns/iter 1.993064165102488 ns/iter 1.10
JSON_String_Key_Hash/10 1.7850919596403274 ns/iter 1.4871053535051026 ns/iter 1.20
JSON_String_Key_Hash/100 2.2152775036109302 ns/iter 1.9862529605479873 ns/iter 1.12
JSON_Object_Defines_Miss_Same_Length 1.8837203803996714 ns/iter 1.7852186575859652 ns/iter 1.06
JSON_Object_Defines_Miss_Too_Small 2.1072358069273553 ns/iter 2.0358694959682553 ns/iter 1.04
JSON_Object_Defines_Miss_Too_Large 1.9974054562040493 ns/iter 1.9462245698415557 ns/iter 1.03
Pointer_Object_Traverse 60.580821189738074 ns/iter 55.876383451541095 ns/iter 1.08
Pointer_Object_Try_Traverse 38.586251341534016 ns/iter 37.13646947425694 ns/iter 1.04
Pointer_Push_Back_Pointer_To_Weak_Pointer 171.59659548664982 ns/iter 182.10346150564536 ns/iter 0.94
Schema_Frame_OMC_Instances 353576421.7376709 ns/iter 300809025.76446533 ns/iter 1.18
Schema_Frame_OMC_References 110782504.08172607 ns/iter 106248991.83000837 ns/iter 1.04
Schema_Bundle_Meta_2020_12 5088177.433720342 ns/iter 5016412.406132139 ns/iter 1.01

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

Please sign in to comment.