Skip to content

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Dec 26, 2025

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

@jviotti jviotti force-pushed the frame-error-orphan branch 3 times, most recently from 23d2500 to fe45a0e Compare December 26, 2025 13:47
@jviotti
Copy link
Member Author

jviotti commented Dec 26, 2025

TODO: Seems to loop indefinitely in some schemas?

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti marked this pull request as ready for review December 26, 2025 15:40
@jviotti jviotti changed the title [WIP] Fix incorrect instance locations on $ref with allOf Fix incorrect instance locations on $ref with allOf Dec 26, 2025
@augmentcode
Copy link

augmentcode bot commented Dec 26, 2025

🤖 Augment PR Summary

Summary: Improves SchemaFrame instance-location computation for schemas that use $ref within allOf, especially when references target $defs subschemas.

Changes:

  • Add a new benchmark that frames instances for the W3C WoT TD v1.1 Draft-07 schema, plus the schema fixture under benchmark/schemas.
  • Refactor instance-location inheritance to a single-level propagation step and iterate until the overall instance-location count stabilizes.
  • Add depth guards to avoid unbounded instance-location growth while tracing `$ref` origin chains and inheriting locations.
  • Extend the 2020-12 frame tests with cases that cover `$ref`→`allOf`→`$defs` chains and deeper mixed applicator/reference chains.

Technical Notes: Convergence detection uses std::transform_reduce to sum per-pointer instance-location counts, with an upper bound on the number of propagation passes.

🤖 Was this summary useful? React with 👍 or 👎

Copy link

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

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

Review completed. 1 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

this->instances_.cbegin(), this->instances_.cend(), std::size_t{0},
std::plus<>{}, [](const auto &entry) { return entry.second.size(); })};

constexpr std::size_t MAX_PASSES{5};
Copy link

Choose a reason for hiding this comment

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

MAX_PASSES{5} can stop the fixpoint iteration early for schemas that require more than 5 inheritance/reference propagation rounds (e.g., deeper parent chains), yielding incomplete instance locations. Consider tying this bound to the same depth limit used for instance-location growth, or otherwise documenting the correctness tradeoff here.

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark (linux/llvm)

Details
Benchmark suite Current: d89edd9 Previous: a49bdc7 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.1284423465779847 ns/iter 3.153757134480479 ns/iter 0.99
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1078774307772288 ns/iter 3.1095541580660204 ns/iter 1.00
Regex_Period_Asterisk 3.1090356392375758 ns/iter 3.1104178211971565 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.1142767783655643 ns/iter 3.108821345527177 ns/iter 1.00
Regex_Period_Plus 3.0401867183055824 ns/iter 2.8817160085967255 ns/iter 1.05
Regex_Period 3.1091296584656156 ns/iter 3.108529180159894 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 3.108571120604326 ns/iter 3.1087725512357616 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1222737029875054 ns/iter 2.900353619108522 ns/iter 1.08
Regex_Caret_Period_Asterisk_Dollar 3.108853402169245 ns/iter 3.731503827545664 ns/iter 0.83
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.1077931886107333 ns/iter 3.7298358779818144 ns/iter 0.83
Regex_Caret_X_Hyphen 10.267710945520873 ns/iter 12.43285883152315 ns/iter 0.83
Regex_Period_Md_Dollar 27.88972006473275 ns/iter 27.652512065444494 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 7.462809528511687 ns/iter 6.5292419461646904 ns/iter 1.14
Regex_Caret_Period_Range_Dollar 3.7302647471119412 ns/iter 4.04176103347443 ns/iter 0.92
Regex_Nested_Backtrack 49.18642546411533 ns/iter 49.54324863074503 ns/iter 0.99
JSON_Array_Of_Objects_Unique 430.9878701152163 ns/iter 437.1791090637249 ns/iter 0.99
JSON_Parse_1 29085.328470493834 ns/iter 29014.40595247941 ns/iter 1.00
JSON_Parse_Real 37910.00546064164 ns/iter 37818.62193875101 ns/iter 1.00
JSON_Parse_Decimal 128803.80036831311 ns/iter 129204.67860438077 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 62.558157261368564 ns/iter 62.17160009761987 ns/iter 1.01
JSON_Equality_Helm_Chart_Lock 176.55518125282666 ns/iter 164.29273785357339 ns/iter 1.07
JSON_String_Equal/10 8.087892934557141 ns/iter 6.845738083410754 ns/iter 1.18
JSON_String_Equal/100 8.71356089277716 ns/iter 7.463461701334823 ns/iter 1.17
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9378679892572179 ns/iter 0.9361629966190337 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.257830167119998 ns/iter 14.603907267111635 ns/iter 0.70
JSON_String_Fast_Hash/10 2.487193852460138 ns/iter 2.8004998886412604 ns/iter 0.89
JSON_String_Fast_Hash/100 2.4868496228013934 ns/iter 2.7992222476469317 ns/iter 0.89
JSON_String_Key_Hash/10 2.488819530394769 ns/iter 2.6918943737091556 ns/iter 0.92
JSON_String_Key_Hash/100 6.527699284479519 ns/iter 9.024388517078545 ns/iter 0.72
JSON_Object_Defines_Miss_Same_Length 3.7367361658910143 ns/iter 3.735049679042204 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.7451290199310328 ns/iter 3.733735809798218 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.738777562123503 ns/iter 3.7360829795726036 ns/iter 1.00
Pointer_Object_Traverse 46.09839835550892 ns/iter 44.301421508230156 ns/iter 1.04
Pointer_Object_Try_Traverse 53.535197192481185 ns/iter 53.51904696725839 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 350.5228912850907 ns/iter 308.76029756864267 ns/iter 1.14
Schema_Frame_WoT_Instances 868879197.0000694 ns/iter
Schema_Frame_OMC_Instances 123143726344.00002 ns/iter 200896078.00002798 ns/iter 612.97
Schema_Frame_OMC_References 34123753.70000405 ns/iter 38465697.47368353 ns/iter 0.89
Schema_Frame_OMC_Locations 31750958.818179246 ns/iter 34782838.849997684 ns/iter 0.91
Schema_Frame_ISO_Language_Locations 155880195.00000882 ns/iter 174303135.24999973 ns/iter 0.89
Schema_Iterator_ISO_Language 6039308.068376803 ns/iter 6158405.946903016 ns/iter 0.98
Schema_PointerWalker_ISO_Language 4602226.940789933 ns/iter 4688018.993287975 ns/iter 0.98
Schema_Frame_ISO_Language_Locations_To_JSON 111239412.1666777 ns/iter 149004634.40001205 ns/iter 0.75
Schema_Tracker_ISO_Language 44996290.312504075 ns/iter 48262087.78571786 ns/iter 0.93
Schema_Tracker_ISO_Language_To_JSON 21404626.757575072 ns/iter 24471318.931032643 ns/iter 0.87
Schema_Format_ISO_Language_To_JSON 162472575.49997586 ns/iter 180436705.0000053 ns/iter 0.90
Schema_Bundle_Meta_2020_12 2237197.2261131755 ns/iter 2254709.366563293 ns/iter 0.99
Alterschema_Check_Readibility_ISO_Language_Set_3 281461138.49999213 ns/iter 303246445.5000081 ns/iter 0.93
Alterschema_Check_Readibility_OMC 121562722800.99995 ns/iter 209898669.9999917 ns/iter 579.15

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

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark (macos/llvm)

Details
Benchmark suite Current: d89edd9 Previous: a49bdc7 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.6547163446395763 ns/iter 1.6000358732160735 ns/iter 1.03
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.6795495589673066 ns/iter 1.609029341057054 ns/iter 1.04
Regex_Period_Asterisk 1.6581276693793143 ns/iter 1.6131867823099926 ns/iter 1.03
Regex_Group_Period_Asterisk_Group 1.6838391196232254 ns/iter 1.6082627591048861 ns/iter 1.05
Regex_Period_Plus 1.9847359883823663 ns/iter 1.9296087092307006 ns/iter 1.03
Regex_Period 1.9130442218188448 ns/iter 1.9098557124044846 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 1.891318773785049 ns/iter 1.9366421660536466 ns/iter 0.98
Regex_Caret_Group_Period_Plus_Group_Dollar 1.884758502795698 ns/iter 1.9102078439130548 ns/iter 0.99
Regex_Caret_Period_Asterisk_Dollar 1.5949821543352185 ns/iter 1.6074249436917991 ns/iter 0.99
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.6430976877457968 ns/iter 1.6036922643171512 ns/iter 1.02
Regex_Caret_X_Hyphen 6.247626674228351 ns/iter 6.3791029502966206 ns/iter 0.98
Regex_Period_Md_Dollar 19.48408202766095 ns/iter 20.419276248676354 ns/iter 0.95
Regex_Caret_Slash_Period_Asterisk 5.663423120303307 ns/iter 5.267682827691062 ns/iter 1.08
Regex_Caret_Period_Range_Dollar 1.7010243439000134 ns/iter 1.834708179113876 ns/iter 0.93
Regex_Nested_Backtrack 27.77339613203277 ns/iter 29.414846261786405 ns/iter 0.94
JSON_Array_Of_Objects_Unique 332.611747395587 ns/iter 360.9964167915341 ns/iter 0.92
JSON_Parse_1 20818.41908360619 ns/iter 21442.148613043428 ns/iter 0.97
JSON_Parse_Real 25265.96106274334 ns/iter 25694.32310401983 ns/iter 0.98
JSON_Parse_Decimal 252519.6911548982 ns/iter 248873.80642891937 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 57.40279762487146 ns/iter 56.719872866599395 ns/iter 1.01
JSON_Equality_Helm_Chart_Lock 131.7327406548471 ns/iter 125.73346254841796 ns/iter 1.05
JSON_String_Equal/10 6.839486517937544 ns/iter 6.32912193391008 ns/iter 1.08
JSON_String_Equal/100 6.41741750696615 ns/iter 6.191137481516241 ns/iter 1.04
JSON_String_Equal_Small_By_Perfect_Hash/10 0.33253112137731733 ns/iter 0.3176420856233203 ns/iter 1.05
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.2201807384968695 ns/iter 3.1306922593292894 ns/iter 1.03
JSON_String_Fast_Hash/10 2.2175844057278904 ns/iter 2.2240553810345642 ns/iter 1.00
JSON_String_Fast_Hash/100 1.9534962776174405 ns/iter 1.9061888778647211 ns/iter 1.02
JSON_String_Key_Hash/10 1.3192534661166964 ns/iter 1.2610515449460955 ns/iter 1.05
JSON_String_Key_Hash/100 2.1019688435270645 ns/iter 2.0382181434555577 ns/iter 1.03
JSON_Object_Defines_Miss_Same_Length 2.6306368029130396 ns/iter 2.644399957683702 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 2.6235990853700346 ns/iter 2.6998671414375397 ns/iter 0.97
JSON_Object_Defines_Miss_Too_Large 2.6242447552666897 ns/iter 2.7914477963855857 ns/iter 0.94
Pointer_Object_Traverse 14.00808499927912 ns/iter 15.60088841438379 ns/iter 0.90
Pointer_Object_Try_Traverse 17.884241394841677 ns/iter 19.585013298681307 ns/iter 0.91
Pointer_Push_Back_Pointer_To_Weak_Pointer 149.80868331190223 ns/iter 155.9483718769611 ns/iter 0.96
Schema_Frame_WoT_Instances 700055499.9999622 ns/iter
Schema_Frame_OMC_Instances 156236000542.00006 ns/iter 188622551.9999698 ns/iter 828.30
Schema_Frame_OMC_References 35026892.85713651 ns/iter 34208389.600007646 ns/iter 1.02
Schema_Frame_OMC_Locations 33490744.047629137 ns/iter 32359780.318198647 ns/iter 1.03
Schema_Frame_ISO_Language_Locations 121014368.16662197 ns/iter 117830991.79992859 ns/iter 1.03
Schema_Iterator_ISO_Language 6731462.837837302 ns/iter 6048712.719300391 ns/iter 1.11
Schema_PointerWalker_ISO_Language 6495286.99065494 ns/iter 5539472.219305408 ns/iter 1.17
Schema_Frame_ISO_Language_Locations_To_JSON 74260059.57144557 ns/iter 78694291.66668043 ns/iter 0.94
Schema_Tracker_ISO_Language 39285825.99998181 ns/iter 36990840.27776836 ns/iter 1.06
Schema_Tracker_ISO_Language_To_JSON 13904515.95744572 ns/iter 13566386.68001324 ns/iter 1.02
Schema_Format_ISO_Language_To_JSON 107680763.99995153 ns/iter 110045437.49974497 ns/iter 0.98
Schema_Bundle_Meta_2020_12 1517149.1546813753 ns/iter 1542569.678805258 ns/iter 0.98
Alterschema_Check_Readibility_ISO_Language_Set_3 191150083.49990603 ns/iter 196171583.49979037 ns/iter 0.97
Alterschema_Check_Readibility_OMC 157968061540.99976 ns/iter 202699718.74995464 ns/iter 779.32

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

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark (windows/msvc)

Details
Benchmark suite Current: d89edd9 Previous: a49bdc7 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.24805139582164 ns/iter 3.7718314218374154 ns/iter 1.13
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.765683282311918 ns/iter 4.44574375000002 ns/iter 1.07
Regex_Period_Asterisk 4.179154618667968 ns/iter 3.76840122767825 ns/iter 1.11
Regex_Group_Period_Asterisk_Group 4.802723438571306 ns/iter 4.395797499995524 ns/iter 1.09
Regex_Period_Plus 4.488254374999201 ns/iter 3.775193564690541 ns/iter 1.19
Regex_Period 4.426027243596582 ns/iter 3.771143654821548 ns/iter 1.17
Regex_Caret_Period_Plus_Dollar 5.193989999997939 ns/iter 4.394075624998095 ns/iter 1.18
Regex_Caret_Group_Period_Plus_Group_Dollar 5.097948617210285 ns/iter 4.397029375002148 ns/iter 1.16
Regex_Caret_Period_Asterisk_Dollar 4.898588170734248 ns/iter 4.467083750000711 ns/iter 1.10
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.912192644894756 ns/iter 4.39064375000271 ns/iter 1.12
Regex_Caret_X_Hyphen 8.212660714289452 ns/iter 7.84791852678625 ns/iter 1.05
Regex_Period_Md_Dollar 36.55593149006999 ns/iter 38.83620535713054 ns/iter 0.94
Regex_Caret_Slash_Period_Asterisk 8.358203125001955 ns/iter 7.8332723214304325 ns/iter 1.07
Regex_Caret_Period_Range_Dollar 4.921553571429221 ns/iter 4.724681260544559 ns/iter 1.04
Regex_Nested_Backtrack 103.17950432234053 ns/iter 112.07741017514992 ns/iter 0.92
JSON_Array_Of_Objects_Unique 526.4768749997627 ns/iter 456.6141343894238 ns/iter 1.15
JSON_Parse_1 77962.63392856011 ns/iter 75918.8169642552 ns/iter 1.03
JSON_Parse_Real 102521.25351544665 ns/iter 100181.29101381112 ns/iter 1.02
JSON_Parse_Decimal 377700.870574692 ns/iter 340766.0164273066 ns/iter 1.11
JSON_Fast_Hash_Helm_Chart_Lock 69.03457142860653 ns/iter 57.621999999992106 ns/iter 1.20
JSON_Equality_Helm_Chart_Lock 272.9890858476804 ns/iter 275.99342517886254 ns/iter 0.99
JSON_String_Equal/10 12.923005522659608 ns/iter 12.857264285701472 ns/iter 1.01
JSON_String_Equal/100 14.452193908696264 ns/iter 14.154498820746149 ns/iter 1.02
JSON_String_Equal_Small_By_Perfect_Hash/10 1.918403305284241 ns/iter 1.8864208945421506 ns/iter 1.02
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 13.799896428565717 ns/iter 12.545503571426966 ns/iter 1.10
JSON_String_Fast_Hash/10 4.006660625000791 ns/iter 3.1361843749989147 ns/iter 1.28
JSON_String_Fast_Hash/100 3.9248501768207613 ns/iter 3.136741071431613 ns/iter 1.25
JSON_String_Key_Hash/10 4.535711719763634 ns/iter 4.506504832680796 ns/iter 1.01
JSON_String_Key_Hash/100 16.671938727640228 ns/iter 16.228314623468194 ns/iter 1.03
JSON_Object_Defines_Miss_Same_Length 3.901169993033945 ns/iter 3.7629058861392504 ns/iter 1.04
JSON_Object_Defines_Miss_Too_Small 4.025540736607119 ns/iter 3.7622485647105286 ns/iter 1.07
JSON_Object_Defines_Miss_Too_Large 3.836775111606881 ns/iter 3.7680954241078473 ns/iter 1.02
Pointer_Object_Traverse 53.204794642860115 ns/iter 50.7969299999786 ns/iter 1.05
Pointer_Object_Try_Traverse 74.4736160714053 ns/iter 66.20436607144192 ns/iter 1.12
Pointer_Push_Back_Pointer_To_Weak_Pointer 171.0883009899749 ns/iter 170.20544220129938 ns/iter 1.01
Schema_Frame_WoT_Instances 1494152199.9999168 ns/iter
Schema_Frame_OMC_Instances 183452376499.9999 ns/iter 390929650.00008917 ns/iter 469.27
Schema_Frame_OMC_References 72535088.88889985 ns/iter 75887366.66669624 ns/iter 0.96
Schema_Frame_OMC_Locations 68914888.88888691 ns/iter 71896677.77775969 ns/iter 0.96
Schema_Frame_ISO_Language_Locations 285833949.9998692 ns/iter 300950150.0000624 ns/iter 0.95
Schema_Iterator_ISO_Language 13108350.000002246 ns/iter 12448297.999999339 ns/iter 1.05
Schema_PointerWalker_ISO_Language 10191917.187498234 ns/iter 9788614.66666179 ns/iter 1.04
Schema_Frame_ISO_Language_Locations_To_JSON 215091800.00005773 ns/iter 221804833.33340815 ns/iter 0.97
Schema_Tracker_ISO_Language 101131383.33334367 ns/iter 100820950.00007029 ns/iter 1.00
Schema_Tracker_ISO_Language_To_JSON 54170418.18182869 ns/iter 53051172.72729893 ns/iter 1.02
Schema_Format_ISO_Language_To_JSON 293283299.9999846 ns/iter 315061350.00063294 ns/iter 0.93
Schema_Bundle_Meta_2020_12 3964398.1220597452 ns/iter 3835882.352926573 ns/iter 1.03
Alterschema_Check_Readibility_ISO_Language_Set_3 449011600.00017625 ns/iter 470674050.0000706 ns/iter 0.95
Alterschema_Check_Readibility_OMC 178619654899.99966 ns/iter 382659849.9999818 ns/iter 466.78

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

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark (linux/gcc)

Details
Benchmark suite Current: d89edd9 Previous: a49bdc7 Ratio
Alterschema_Check_Readibility_ISO_Language_Set_3 307417364.9999921 ns/iter 306563556.0000146 ns/iter 1.00
Alterschema_Check_Readibility_OMC 148826335776.99973 ns/iter 202601030.3333502 ns/iter 734.58
Schema_Frame_WoT_Instances 798206267.0002961 ns/iter
Schema_Frame_OMC_Instances 141261056439.00018 ns/iter 198316078.49999955 ns/iter 712.30
Schema_Frame_OMC_References 40353337.6111227 ns/iter 40125028.77777832 ns/iter 1.01
Schema_Frame_OMC_Locations 38763978.055562295 ns/iter 37547067.94445105 ns/iter 1.03
Schema_Frame_ISO_Language_Locations 167880965.75010058 ns/iter 175860650.25000152 ns/iter 0.95
Schema_Iterator_ISO_Language 7328093.216491437 ns/iter 6853948.69306983 ns/iter 1.07
Schema_PointerWalker_ISO_Language 4344696.734178106 ns/iter 4410884.7721518725 ns/iter 0.98
Schema_Frame_ISO_Language_Locations_To_JSON 197848605.66672555 ns/iter 270052636.0000216 ns/iter 0.73
Schema_Tracker_ISO_Language 51615354.30768429 ns/iter 49870561.928563416 ns/iter 1.03
Schema_Tracker_ISO_Language_To_JSON 36989596.15789327 ns/iter 33199138.190476723 ns/iter 1.11
Schema_Format_ISO_Language_To_JSON 183444854.49995318 ns/iter 181148445.49995723 ns/iter 1.01
Schema_Bundle_Meta_2020_12 2459132.484218891 ns/iter 2451482.762235746 ns/iter 1.00
Pointer_Object_Traverse 49.927438047672325 ns/iter 49.25254416886729 ns/iter 1.01
Pointer_Object_Try_Traverse 26.17188500093872 ns/iter 22.725121348928578 ns/iter 1.15
Pointer_Push_Back_Pointer_To_Weak_Pointer 175.23099684544275 ns/iter 158.30908724696542 ns/iter 1.11
JSON_Array_Of_Objects_Unique 398.79221303225114 ns/iter 415.1209930491512 ns/iter 0.96
JSON_Parse_1 32910.382239581435 ns/iter 32710.553659900525 ns/iter 1.01
JSON_Parse_Real 44588.215739127474 ns/iter 43983.23881914095 ns/iter 1.01
JSON_Parse_Decimal 154726.4398755068 ns/iter 153940.8128025026 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 53.3545664468755 ns/iter 71.1420140510328 ns/iter 0.75
JSON_Equality_Helm_Chart_Lock 158.89226225000192 ns/iter 157.99722894239687 ns/iter 1.01
JSON_String_Equal/10 6.612378324924113 ns/iter 7.233844904635994 ns/iter 0.91
JSON_String_Equal/100 7.237484831887398 ns/iter 7.8596101307984085 ns/iter 0.92
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6236710985730238 ns/iter 0.9344057060126142 ns/iter 0.67
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 13.787063041904045 ns/iter 13.374518533326011 ns/iter 1.03
JSON_String_Fast_Hash/10 2.165663660943541 ns/iter 1.9428583142133082 ns/iter 1.11
JSON_String_Fast_Hash/100 2.1658867925104617 ns/iter 1.9445619113474701 ns/iter 1.11
JSON_String_Key_Hash/10 2.921162269491009 ns/iter 1.5571706062279456 ns/iter 1.88
JSON_String_Key_Hash/100 13.368664741311077 ns/iter 12.429057756658697 ns/iter 1.08
JSON_Object_Defines_Miss_Same_Length 2.7994671391351305 ns/iter 2.7986660148610785 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.7983644916153483 ns/iter 2.8005626816753213 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 2.799337087870306 ns/iter 2.7997432740969166 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.1095675109318393 ns/iter 3.1114223625679784 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1093968406553407 ns/iter 3.11069574159413 ns/iter 1.00
Regex_Period_Asterisk 3.1199769975782017 ns/iter 3.109829580789386 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.108592237775997 ns/iter 3.1086675131806945 ns/iter 1.00
Regex_Period_Plus 3.1093730006624973 ns/iter 2.8067755665417566 ns/iter 1.11
Regex_Period 3.116696587570237 ns/iter 2.798066357993793 ns/iter 1.11
Regex_Caret_Period_Plus_Dollar 3.1082873685056738 ns/iter 2.7982551255022 ns/iter 1.11
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1089084262146582 ns/iter 2.7998627948064816 ns/iter 1.11
Regex_Caret_Period_Asterisk_Dollar 4.35154621012232 ns/iter 4.047464112725437 ns/iter 1.08
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.352018280393351 ns/iter 4.040174389849032 ns/iter 1.08
Regex_Caret_X_Hyphen 13.061988570868445 ns/iter 13.704720906443242 ns/iter 0.95
Regex_Period_Md_Dollar 35.67136085890207 ns/iter 35.363651759609354 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 9.022961142098735 ns/iter 8.701966896642096 ns/iter 1.04
Regex_Caret_Period_Range_Dollar 4.665395023830851 ns/iter 3.818386901436186 ns/iter 1.22
Regex_Nested_Backtrack 59.93128449976372 ns/iter 56.800645214058264 ns/iter 1.06

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

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark (macos/gcc)

Details
Benchmark suite Current: d89edd9 Previous: a49bdc7 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.110640546270517 ns/iter 2.147905259207392 ns/iter 0.98
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.0838674915183772 ns/iter 2.1503622823782442 ns/iter 0.97
Regex_Period_Asterisk 2.0859386641588884 ns/iter 2.1884181466041452 ns/iter 0.95
Regex_Group_Period_Asterisk_Group 2.0848583112997456 ns/iter 2.2202547065432228 ns/iter 0.94
Regex_Period_Plus 2.2646354658691967 ns/iter 2.297738273696676 ns/iter 0.99
Regex_Period 2.155426178954819 ns/iter 2.3527267496474162 ns/iter 0.92
Regex_Caret_Period_Plus_Dollar 2.298811859433578 ns/iter 2.656426867433941 ns/iter 0.87
Regex_Caret_Group_Period_Plus_Group_Dollar 2.288661161940637 ns/iter 2.228380144580531 ns/iter 1.03
Regex_Caret_Period_Asterisk_Dollar 2.41226102590715 ns/iter 2.164429935851479 ns/iter 1.11
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.376019469917413 ns/iter 2.1600304239523456 ns/iter 1.10
Regex_Caret_X_Hyphen 7.262078446967921 ns/iter 6.645628845532071 ns/iter 1.09
Regex_Period_Md_Dollar 24.62457947223683 ns/iter 21.135922276617837 ns/iter 1.17
Regex_Caret_Slash_Period_Asterisk 5.851415865498322 ns/iter 4.77403959846143 ns/iter 1.23
Regex_Caret_Period_Range_Dollar 3.0419909014913693 ns/iter 2.1599618465414014 ns/iter 1.41
Regex_Nested_Backtrack 55.447927232796424 ns/iter 43.9095926546355 ns/iter 1.26
JSON_Array_Of_Objects_Unique 284.1399005879893 ns/iter 259.374169034043 ns/iter 1.10
JSON_Parse_1 24646.082725764736 ns/iter 23609.82080068927 ns/iter 1.04
JSON_Parse_Real 26191.111372773787 ns/iter 24496.626185820434 ns/iter 1.07
JSON_Parse_Decimal 263316.924144297 ns/iter 259788.86344087694 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 34.25840677132444 ns/iter 32.59118797113001 ns/iter 1.05
JSON_Equality_Helm_Chart_Lock 124.51151824898578 ns/iter 122.48233206246113 ns/iter 1.02
JSON_String_Equal/10 5.458048369558947 ns/iter 5.817193777921539 ns/iter 0.94
JSON_String_Equal/100 5.198069231690491 ns/iter 5.524824464137582 ns/iter 0.94
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7537367864270328 ns/iter 0.795320617023189 ns/iter 0.95
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.4979980067876943 ns/iter 3.6556130456657883 ns/iter 0.96
JSON_String_Fast_Hash/10 1.833107011818741 ns/iter 1.9246030899994657 ns/iter 0.95
JSON_String_Fast_Hash/100 1.9444190903710972 ns/iter 1.9162809631285906 ns/iter 1.01
JSON_String_Key_Hash/10 1.550811728971166 ns/iter 1.5212885242907466 ns/iter 1.02
JSON_String_Key_Hash/100 2.7899202181637026 ns/iter 2.7184964888300978 ns/iter 1.03
JSON_Object_Defines_Miss_Same_Length 2.0591163109240704 ns/iter 1.8772844966807358 ns/iter 1.10
JSON_Object_Defines_Miss_Too_Small 2.0939936633014486 ns/iter 1.79048011873879 ns/iter 1.17
JSON_Object_Defines_Miss_Too_Large 2.071472893942728 ns/iter 1.783477378805577 ns/iter 1.16
Pointer_Object_Traverse 60.19800573504984 ns/iter 49.96860134546936 ns/iter 1.20
Pointer_Object_Try_Traverse 40.97172297175281 ns/iter 35.58957447118954 ns/iter 1.15
Pointer_Push_Back_Pointer_To_Weak_Pointer 176.72065147082768 ns/iter 159.0123791821537 ns/iter 1.11
Schema_Frame_WoT_Instances 923938035.9649658 ns/iter
Schema_Frame_OMC_Instances 160275328159.33228 ns/iter 184548020.362854 ns/iter 868.47
Schema_Frame_OMC_References 45756936.07330322 ns/iter 39464433.98793539 ns/iter 1.16
Schema_Frame_OMC_Locations 41711582.85701976 ns/iter 37306785.583496094 ns/iter 1.12
Schema_Frame_ISO_Language_Locations 173077523.7083435 ns/iter 158005952.835083 ns/iter 1.10
Schema_Iterator_ISO_Language 6234069.841097942 ns/iter 6449108.823723749 ns/iter 0.97
Schema_PointerWalker_ISO_Language 10972574.353218079 ns/iter 8469871.985606657 ns/iter 1.30
Schema_Frame_ISO_Language_Locations_To_JSON 182179927.82592773 ns/iter 137751197.8149414 ns/iter 1.32
Schema_Tracker_ISO_Language 42483553.29036713 ns/iter 37426392.237345375 ns/iter 1.14
Schema_Tracker_ISO_Language_To_JSON 23354620.76910611 ns/iter 24619102.478027344 ns/iter 0.95
Schema_Format_ISO_Language_To_JSON 165235638.61846924 ns/iter 165259838.10424805 ns/iter 1.00
Schema_Bundle_Meta_2020_12 1856557.060690487 ns/iter 1932050.104010595 ns/iter 0.96
Alterschema_Check_Readibility_ISO_Language_Set_3 258724371.59220377 ns/iter 241150379.1809082 ns/iter 1.07
Alterschema_Check_Readibility_OMC 177564007997.51282 ns/iter 187406480.3123474 ns/iter 947.48

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants