Skip to content

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Jan 9, 2026

Signed-off-by: Juan Cruz Viotti [email protected]

@augmentcode
Copy link

augmentcode bot commented Jan 9, 2026

🤖 Augment PR Summary

Summary: Fixes a crash in format() caused by storing raw pointers into schema sub-objects that may be invalidated during key reordering.

Changes:

  • Collect subschema locations as owned Pointer values (converted from WeakPointer) instead of JSON* addresses.
  • After the SchemaFrame is destroyed, re-fetch each subschema via get(schema, pointer) and reorder only object subschemas.
  • Add a regression test ensuring keyword reordering doesn’t invalidate child navigation and produces stable output ordering.

Technical Notes: Using to_pointer(WeakPointer) avoids dangling references once the frame goes out of scope.

🤖 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. No suggestions at this time.

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

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: 530ccdc Previous: 376f397 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.111198176372946 ns/iter 2.0182545962354728 ns/iter 1.54
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.114171320168502 ns/iter 2.017443583597074 ns/iter 1.54
Regex_Period_Asterisk 3.1137196995472856 ns/iter 2.017360596451721 ns/iter 1.54
Regex_Group_Period_Asterisk_Group 3.1093999542253044 ns/iter 2.0166982895762846 ns/iter 1.54
Regex_Period_Plus 2.9291844833954324 ns/iter 2.311155928774273 ns/iter 1.27
Regex_Period 3.109218053581422 ns/iter 2.3048099053911217 ns/iter 1.35
Regex_Caret_Period_Plus_Dollar 3.1101040780183165 ns/iter 2.305771161030794 ns/iter 1.35
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1096196961472056 ns/iter 2.3054226452240503 ns/iter 1.35
Regex_Caret_Period_Asterisk_Dollar 3.11284396406532 ns/iter 2.0220751899228193 ns/iter 1.54
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.109740091864058 ns/iter 2.0170581848673943 ns/iter 1.54
Regex_Caret_X_Hyphen 12.43536784521948 ns/iter 8.93452926379604 ns/iter 1.39
Regex_Period_Md_Dollar 27.713512298370738 ns/iter 25.298643238079727 ns/iter 1.10
Regex_Caret_Slash_Period_Asterisk 6.535047412449952 ns/iter 8.361426211794498 ns/iter 0.78
Regex_Caret_Period_Range_Dollar 3.731317117470944 ns/iter 2.329076875179069 ns/iter 1.60
Regex_Nested_Backtrack 48.88812021035991 ns/iter 43.61387132941086 ns/iter 1.12
JSON_Array_Of_Objects_Unique 426.4040077411494 ns/iter 344.36362772269365 ns/iter 1.24
JSON_Parse_1 29643.21651422989 ns/iter 27114.843471522025 ns/iter 1.09
JSON_Parse_Real 37686.3816859704 ns/iter 36807.34126523722 ns/iter 1.02
JSON_Parse_Decimal 130969.32330967784 ns/iter 123318.25277630812 ns/iter 1.06
JSON_Fast_Hash_Helm_Chart_Lock 62.56950074944371 ns/iter 46.40909516965963 ns/iter 1.35
JSON_Equality_Helm_Chart_Lock 166.1033136908127 ns/iter 136.8050283865673 ns/iter 1.21
JSON_String_Equal/10 7.166163172295526 ns/iter 4.8985902893904445 ns/iter 1.46
JSON_String_Equal/100 7.794928221205007 ns/iter 6.047962199628437 ns/iter 1.29
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9381836519275928 ns/iter 0.6911853204553201 ns/iter 1.36
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.63002554757909 ns/iter 9.550720782108105 ns/iter 1.53
JSON_String_Fast_Hash/10 2.4880211793957017 ns/iter 2.0162533147974484 ns/iter 1.23
JSON_String_Fast_Hash/100 2.4886835044614166 ns/iter 2.0167923376991266 ns/iter 1.23
JSON_String_Key_Hash/10 2.6984914136834726 ns/iter 2.0162557048359853 ns/iter 1.34
JSON_String_Key_Hash/100 9.015487641364954 ns/iter 6.6249736392035885 ns/iter 1.36
JSON_Object_Defines_Miss_Same_Length 3.7361189732523834 ns/iter 3.4173912390775603 ns/iter 1.09
JSON_Object_Defines_Miss_Too_Small 3.7479904328111813 ns/iter 4.013528333507193 ns/iter 0.93
JSON_Object_Defines_Miss_Too_Large 3.735064237333143 ns/iter 3.4551029919920033 ns/iter 1.08
Pointer_Object_Traverse 46.158066818932035 ns/iter 38.04385278493165 ns/iter 1.21
Pointer_Object_Try_Traverse 53.875332906417576 ns/iter 45.97915732500763 ns/iter 1.17
Pointer_Push_Back_Pointer_To_Weak_Pointer 302.80991423633844 ns/iter 226.37614703604908 ns/iter 1.34
Pointer_Walker_Schema_ISO_Language 3168860.418919304 ns/iter 3012846.5109168463 ns/iter 1.05
Schema_Frame_WoT_References 5101203.231884094 ns/iter 4416396.436709022 ns/iter 1.16
Schema_Frame_OMC_References 21332272.696971208 ns/iter 19220593.61111097 ns/iter 1.11
Schema_Frame_OMC_Locations 19974362.428570203 ns/iter 17374227.150000367 ns/iter 1.15
Schema_Frame_ISO_Language_Locations 109749188.16666938 ns/iter 100194196.50001281 ns/iter 1.10
Schema_Iterator_ISO_Language 2338454.315614879 ns/iter 2213052.7192429146 ns/iter 1.06
Schema_Frame_ISO_Language_Locations_To_JSON 134027799.7499868 ns/iter 129071035.59998631 ns/iter 1.04
Schema_Tracker_ISO_Language 47720909.199999064 ns/iter 45026759.66666629 ns/iter 1.06
Schema_Tracker_ISO_Language_To_JSON 23573176.310343303 ns/iter 26058499.555553548 ns/iter 0.90
Schema_Format_ISO_Language_To_JSON 116571938.99996324 ns/iter 104316353.71427156 ns/iter 1.12
Schema_Bundle_Meta_2020_12 2131432.103344768 ns/iter 1945993.2666645981 ns/iter 1.10
Alterschema_Check_Readibility_ISO_Language_Set_3 221167948.33334553 ns/iter 193621918.9999804 ns/iter 1.14
Alterschema_Check_Readibility_OMC 27522931.559997234 ns/iter 23915045.58620689 ns/iter 1.15
URITemplateRouter_Create 16685.738142903407 ns/iter 13486.13424979778 ns/iter 1.24
URITemplateRouter_Match 165.58111029668754 ns/iter 147.86109118845746 ns/iter 1.12
URITemplateRouterView_Restore 8196.289643656271 ns/iter 3515.2507746789993 ns/iter 2.33
URITemplateRouterView_Match 119.32035441702855 ns/iter 116.72111859363793 ns/iter 1.02

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: 530ccdc Previous: 376f397 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.9329169932428467 ns/iter 2.0302713120058717 ns/iter 0.95
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.2305883078155384 ns/iter 2.166116627168818 ns/iter 1.03
Regex_Period_Asterisk 2.1343031995592217 ns/iter 1.9553222884315757 ns/iter 1.09
Regex_Group_Period_Asterisk_Group 2.3032457709103125 ns/iter 2.0998407201756892 ns/iter 1.10
Regex_Period_Plus 2.6317453890259457 ns/iter 2.4664694367194593 ns/iter 1.07
Regex_Period 2.731453593337681 ns/iter 2.705751919694676 ns/iter 1.01
Regex_Caret_Period_Plus_Dollar 2.8308122439094148 ns/iter 2.6919804958083966 ns/iter 1.05
Regex_Caret_Group_Period_Plus_Group_Dollar 2.5658652013041285 ns/iter 2.496792282875287 ns/iter 1.03
Regex_Caret_Period_Asterisk_Dollar 3.1452194733980674 ns/iter 2.5006790360453888 ns/iter 1.26
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.3665552604509945 ns/iter 2.2830181475857594 ns/iter 1.04
Regex_Caret_X_Hyphen 8.761186107066285 ns/iter 7.88112649253541 ns/iter 1.11
Regex_Period_Md_Dollar 35.932161934101586 ns/iter 25.233581725790454 ns/iter 1.42
Regex_Caret_Slash_Period_Asterisk 8.405064827871374 ns/iter 7.164916286726602 ns/iter 1.17
Regex_Caret_Period_Range_Dollar 3.0642515670789017 ns/iter 2.3851539349720667 ns/iter 1.28
Regex_Nested_Backtrack 42.60408961601528 ns/iter 38.38404746690049 ns/iter 1.11
JSON_Array_Of_Objects_Unique 518.9189170000645 ns/iter 483.42374926802574 ns/iter 1.07
JSON_Parse_1 29272.71185003073 ns/iter 31794.802167902308 ns/iter 0.92
JSON_Parse_Real 35692.864926168695 ns/iter 36855.40996985954 ns/iter 0.97
JSON_Parse_Decimal 347510.2203389922 ns/iter 354719.3697432887 ns/iter 0.98
JSON_Fast_Hash_Helm_Chart_Lock 76.43675681325213 ns/iter 80.56045467778274 ns/iter 0.95
JSON_Equality_Helm_Chart_Lock 191.170582983632 ns/iter 175.4109550043607 ns/iter 1.09
JSON_String_Equal/10 9.442455999592122 ns/iter 9.028999941774966 ns/iter 1.05
JSON_String_Equal/100 10.397119326649896 ns/iter 10.245408352529457 ns/iter 1.01
JSON_String_Equal_Small_By_Perfect_Hash/10 0.46195150122042766 ns/iter 0.3905573058129075 ns/iter 1.18
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.6939311115003743 ns/iter 4.103096100772273 ns/iter 0.90
JSON_String_Fast_Hash/10 2.771146947377415 ns/iter 3.605977601287722 ns/iter 0.77
JSON_String_Fast_Hash/100 2.258332702346264 ns/iter 2.726847861419301 ns/iter 0.83
JSON_String_Key_Hash/10 1.6639018793656482 ns/iter 1.7677874413253194 ns/iter 0.94
JSON_String_Key_Hash/100 2.623087564821029 ns/iter 3.928746099597967 ns/iter 0.67
JSON_Object_Defines_Miss_Same_Length 3.032708782097235 ns/iter 3.7446207124688256 ns/iter 0.81
JSON_Object_Defines_Miss_Too_Small 3.5235609251096864 ns/iter 3.3880276612431928 ns/iter 1.04
JSON_Object_Defines_Miss_Too_Large 3.6241633004898346 ns/iter 3.2536717320746127 ns/iter 1.11
Pointer_Object_Traverse 23.300076666824904 ns/iter 18.528049056176545 ns/iter 1.26
Pointer_Object_Try_Traverse 32.44976925251476 ns/iter 27.322205986703082 ns/iter 1.19
Pointer_Push_Back_Pointer_To_Weak_Pointer 236.7526216908476 ns/iter 223.3957038965558 ns/iter 1.06
Pointer_Walker_Schema_ISO_Language 6240558.490384493 ns/iter 6301418.181817553 ns/iter 0.99
Schema_Frame_WoT_References 7418252.973214935 ns/iter 7141597.457626762 ns/iter 1.04
Schema_Frame_OMC_References 47360862.70588657 ns/iter 34078026.31579072 ns/iter 1.39
Schema_Frame_OMC_Locations 38683752.56249834 ns/iter 29084829.54545765 ns/iter 1.33
Schema_Frame_ISO_Language_Locations 142321066.59999317 ns/iter 107410244.14284895 ns/iter 1.33
Schema_Iterator_ISO_Language 3841785.191709933 ns/iter 2375099.360139782 ns/iter 1.62
Schema_Frame_ISO_Language_Locations_To_JSON 169494146.00000522 ns/iter 95564777.66667134 ns/iter 1.77
Schema_Tracker_ISO_Language 72569541.66666673 ns/iter 40770370.11764413 ns/iter 1.78
Schema_Tracker_ISO_Language_To_JSON 25983087.78571225 ns/iter 15150327.777776813 ns/iter 1.72
Schema_Format_ISO_Language_To_JSON 154017150.2000021 ns/iter 102464654.85714193 ns/iter 1.50
Schema_Bundle_Meta_2020_12 2936843.4199299132 ns/iter 1842180.9393119158 ns/iter 1.59
Alterschema_Check_Readibility_ISO_Language_Set_3 318751792.0000005 ns/iter 161946999.99999785 ns/iter 1.97
Alterschema_Check_Readibility_OMC 56166410.714289285 ns/iter 31254242.409090694 ns/iter 1.80
URITemplateRouter_Create 25262.933063028893 ns/iter 19228.25345186138 ns/iter 1.31
URITemplateRouter_Match 277.6783372226373 ns/iter 173.67432206024674 ns/iter 1.60
URITemplateRouterView_Restore 18724.144170559342 ns/iter 10763.491284824277 ns/iter 1.74
URITemplateRouterView_Match 183.01663352612516 ns/iter 123.78433896427201 ns/iter 1.48

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: 530ccdc Previous: 376f397 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.804869457491328 ns/iter 4.730054041234386 ns/iter 0.80
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.337690708325649 ns/iter 4.392790524928579 ns/iter 0.76
Regex_Period_Asterisk 3.0971964285712823 ns/iter 4.083345275148984 ns/iter 0.76
Regex_Group_Period_Asterisk_Group 3.3874533429212637 ns/iter 4.082417864433009 ns/iter 0.83
Regex_Period_Plus 3.5075580079124986 ns/iter 4.392457631968001 ns/iter 0.80
Regex_Period 3.4815931642029616 ns/iter 4.393190625000187 ns/iter 0.79
Regex_Caret_Period_Plus_Dollar 3.457331913469169 ns/iter 4.3932365293916 ns/iter 0.79
Regex_Caret_Group_Period_Plus_Group_Dollar 4.024516875000472 ns/iter 4.400217721249979 ns/iter 0.91
Regex_Caret_Period_Asterisk_Dollar 4.016930944672744 ns/iter 4.112987596629678 ns/iter 0.98
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.288297761985264 ns/iter 4.152301672253953 ns/iter 0.79
Regex_Caret_X_Hyphen 6.141259821428134 ns/iter 7.5723671875011735 ns/iter 0.81
Regex_Period_Md_Dollar 47.03144292236483 ns/iter 34.439812222137775 ns/iter 1.37
Regex_Caret_Slash_Period_Asterisk 6.628032366071679 ns/iter 7.222771205357097 ns/iter 0.92
Regex_Caret_Period_Range_Dollar 3.6991532076803177 ns/iter 4.712015635517965 ns/iter 0.79
Regex_Nested_Backtrack 92.76064732142788 ns/iter 95.21489307076052 ns/iter 0.97
JSON_Array_Of_Objects_Unique 400.1456473214609 ns/iter 464.75989560002284 ns/iter 0.86
JSON_Parse_1 75851.1160714294 ns/iter 71408.36607142376 ns/iter 1.06
JSON_Parse_Real 97325.10044643102 ns/iter 91714.59756260167 ns/iter 1.06
JSON_Parse_Decimal 315981.4345992023 ns/iter 329449.16502948606 ns/iter 0.96
JSON_Fast_Hash_Helm_Chart_Lock 42.07240544018586 ns/iter 55.828680000001896 ns/iter 0.75
JSON_Equality_Helm_Chart_Lock 252.9781428571758 ns/iter 285.9587149125863 ns/iter 0.88
JSON_String_Equal/10 10.907618750000125 ns/iter 13.15543593750057 ns/iter 0.83
JSON_String_Equal/100 13.820395920445202 ns/iter 14.49743899777858 ns/iter 0.95
JSON_String_Equal_Small_By_Perfect_Hash/10 1.8969883048415899 ns/iter 2.196622187500097 ns/iter 0.86
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 11.89084062500001 ns/iter 12.625408928570891 ns/iter 0.94
JSON_String_Fast_Hash/10 2.6244728994424236 ns/iter 3.4899302169823745 ns/iter 0.75
JSON_String_Fast_Hash/100 2.566271426280113 ns/iter 3.4860252169889345 ns/iter 0.74
JSON_String_Key_Hash/10 3.3735468802707005 ns/iter 4.403655815080636 ns/iter 0.77
JSON_String_Key_Hash/100 15.172408860837539 ns/iter 19.966338035938364 ns/iter 0.76
JSON_Object_Defines_Miss_Same_Length 4.100500243705296 ns/iter 3.8175219574688253 ns/iter 1.07
JSON_Object_Defines_Miss_Too_Small 4.090030409089308 ns/iter 3.7614449932835936 ns/iter 1.09
JSON_Object_Defines_Miss_Too_Large 4.092945065136993 ns/iter 3.8200092788928264 ns/iter 1.07
Pointer_Object_Traverse 46.77211464214623 ns/iter 51.20871999999963 ns/iter 0.91
Pointer_Object_Try_Traverse 62.51818749999773 ns/iter 66.33411830357768 ns/iter 0.94
Pointer_Push_Back_Pointer_To_Weak_Pointer 172.5263686959646 ns/iter 168.22234831845168 ns/iter 1.03
Pointer_Walker_Schema_ISO_Language 12175012.500000954 ns/iter 10859276.562500853 ns/iter 1.12
Schema_Frame_WoT_References 11068845.312498964 ns/iter 11170750.000001054 ns/iter 0.99
Schema_Frame_OMC_References 52297979.99999164 ns/iter 50922739.999998614 ns/iter 1.03
Schema_Frame_OMC_Locations 47312386.66666589 ns/iter 48441360.00000011 ns/iter 0.98
Schema_Frame_ISO_Language_Locations 213924600.0000033 ns/iter 208519233.33331493 ns/iter 1.03
Schema_Iterator_ISO_Language 4623326.785714912 ns/iter 4446463.95348778 ns/iter 1.04
Schema_Frame_ISO_Language_Locations_To_JSON 244150333.33332303 ns/iter 242098499.99999735 ns/iter 1.01
Schema_Tracker_ISO_Language 104152849.9999913 ns/iter 121597966.66666503 ns/iter 0.86
Schema_Tracker_ISO_Language_To_JSON 53842000.00000047 ns/iter 66134300.000002936 ns/iter 0.81
Schema_Format_ISO_Language_To_JSON 217913900.0000229 ns/iter 250911433.33330974 ns/iter 0.87
Schema_Bundle_Meta_2020_12 4080420.1117342464 ns/iter 4147968.0232572625 ns/iter 0.98
Alterschema_Check_Readibility_ISO_Language_Set_3 327057550.0000064 ns/iter 330931550.0000025 ns/iter 0.99
Alterschema_Check_Readibility_OMC 58680699.999999054 ns/iter 58542399.999995805 ns/iter 1.00
URITemplateRouter_Create 22513.865625001017 ns/iter 22347.688083837907 ns/iter 1.01
URITemplateRouter_Match 234.6704537198269 ns/iter 207.13250191373407 ns/iter 1.13
URITemplateRouterView_Restore 23338.23125000123 ns/iter 29880.779507185976 ns/iter 0.78
URITemplateRouterView_Match 144.8777145143872 ns/iter 144.18855159871765 ns/iter 1.00

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: 530ccdc Previous: 376f397 Ratio
URITemplateRouter_Create 14575.880930666059 ns/iter 14642.242109039358 ns/iter 1.00
URITemplateRouter_Match 157.59557972160286 ns/iter 184.67496888929406 ns/iter 0.85
URITemplateRouterView_Restore 8127.199689138043 ns/iter 7859.292762941449 ns/iter 1.03
URITemplateRouterView_Match 120.50395297079505 ns/iter 125.03125541213272 ns/iter 0.96
Alterschema_Check_Readibility_ISO_Language_Set_3 214803909.333303 ns/iter 214041086.33335757 ns/iter 1.00
Alterschema_Check_Readibility_OMC 29423338.958333526 ns/iter 28900879.999999538 ns/iter 1.02
Schema_Frame_WoT_References 5583245.896825846 ns/iter 5563905.206349052 ns/iter 1.00
Schema_Frame_OMC_References 23338640.80000012 ns/iter 23131543.19999739 ns/iter 1.01
Schema_Frame_OMC_Locations 22082815.000000224 ns/iter 21403654.636363473 ns/iter 1.03
Schema_Frame_ISO_Language_Locations 110845815.49999939 ns/iter 112212367.83332717 ns/iter 0.99
Schema_Iterator_ISO_Language 2512370.6000000215 ns/iter 2569102.622221972 ns/iter 0.98
Schema_Frame_ISO_Language_Locations_To_JSON 298013450.6666824 ns/iter 289031756.9999752 ns/iter 1.03
Schema_Tracker_ISO_Language 47680467.266665496 ns/iter 48331169.99999826 ns/iter 0.99
Schema_Tracker_ISO_Language_To_JSON 33445772.476192184 ns/iter 33756138.68181724 ns/iter 0.99
Schema_Format_ISO_Language_To_JSON 118466130.66671807 ns/iter 116400496.66666149 ns/iter 1.02
Schema_Bundle_Meta_2020_12 2336044.146667291 ns/iter 2309938.716170223 ns/iter 1.01
Pointer_Object_Traverse 48.13152589475481 ns/iter 49.718888109350516 ns/iter 0.97
Pointer_Object_Try_Traverse 22.716387174955628 ns/iter 26.177226559371206 ns/iter 0.87
Pointer_Push_Back_Pointer_To_Weak_Pointer 157.37521139335234 ns/iter 154.4114176068044 ns/iter 1.02
Pointer_Walker_Schema_ISO_Language 3518683.7910448695 ns/iter 3518465.439393973 ns/iter 1.00
JSON_Array_Of_Objects_Unique 454.2508375558156 ns/iter 417.0976235474061 ns/iter 1.09
JSON_Parse_1 32923.56642410392 ns/iter 32983.05835606158 ns/iter 1.00
JSON_Parse_Real 43460.64225422323 ns/iter 43131.37024029562 ns/iter 1.01
JSON_Parse_Decimal 155316.5957399781 ns/iter 157073.28179159746 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 60.95943517254097 ns/iter 61.41338991806526 ns/iter 0.99
JSON_Equality_Helm_Chart_Lock 158.51623803319444 ns/iter 157.68132436274428 ns/iter 1.01
JSON_String_Equal/10 7.278199554250459 ns/iter 6.6223250717399615 ns/iter 1.10
JSON_String_Equal/100 7.897485898743033 ns/iter 7.2380725306588065 ns/iter 1.09
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6237067011635927 ns/iter 0.6231473026901968 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 19.57562295851642 ns/iter 27.787834545624087 ns/iter 0.70
JSON_String_Fast_Hash/10 2.254180363684108 ns/iter 1.9432333159198303 ns/iter 1.16
JSON_String_Fast_Hash/100 2.253615266524519 ns/iter 1.9482251940484785 ns/iter 1.16
JSON_String_Key_Hash/10 1.249941305246712 ns/iter 1.2456064011897081 ns/iter 1.00
JSON_String_Key_Hash/100 12.429131015012944 ns/iter 12.428516739254999 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.4890395520799706 ns/iter 2.4885699996461126 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.5187227255409215 ns/iter 2.801395074017389 ns/iter 0.90
JSON_Object_Defines_Miss_Too_Large 2.492105854567368 ns/iter 2.4872780605965237 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.113673091749704 ns/iter 3.420333832474004 ns/iter 0.91
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1093161099820006 ns/iter 3.4219822204603227 ns/iter 0.91
Regex_Period_Asterisk 3.110617590255145 ns/iter 3.422673090517266 ns/iter 0.91
Regex_Group_Period_Asterisk_Group 3.1089352378626365 ns/iter 3.4213027581093565 ns/iter 0.91
Regex_Period_Plus 2.7980210287433596 ns/iter 3.420238474458365 ns/iter 0.82
Regex_Period 2.8014287666556625 ns/iter 3.163814258133438 ns/iter 0.89
Regex_Caret_Period_Plus_Dollar 2.798235943781952 ns/iter 3.118727656690199 ns/iter 0.90
Regex_Caret_Group_Period_Plus_Group_Dollar 2.799017706925555 ns/iter 3.107483563317105 ns/iter 0.90
Regex_Caret_Period_Asterisk_Dollar 4.041973222086417 ns/iter 3.728554172317091 ns/iter 1.08
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.042546803084334 ns/iter 3.730854971621827 ns/iter 1.08
Regex_Caret_X_Hyphen 13.686213923117128 ns/iter 13.056959304921067 ns/iter 1.05
Regex_Period_Md_Dollar 37.614287398575996 ns/iter 36.162332923756345 ns/iter 1.04
Regex_Caret_Slash_Period_Asterisk 8.705871704524851 ns/iter 9.976003376535726 ns/iter 0.87
Regex_Caret_Period_Range_Dollar 4.042001370017609 ns/iter 4.660377368672455 ns/iter 0.87
Regex_Nested_Backtrack 60.54554962109467 ns/iter 58.34497769948212 ns/iter 1.04

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

@jviotti jviotti merged commit 8c41142 into main Jan 9, 2026
13 checks passed
@jviotti jviotti deleted the reorder-fix branch January 9, 2026 13:04
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: 530ccdc Previous: 376f397 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.635031104201461 ns/iter 2.240182700407863 ns/iter 1.18
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.7125807254119056 ns/iter 2.244867082220991 ns/iter 1.21
Regex_Period_Asterisk 2.6115833648969424 ns/iter 2.232612242793138 ns/iter 1.17
Regex_Group_Period_Asterisk_Group 2.6887339441767906 ns/iter 2.2006684466117035 ns/iter 1.22
Regex_Period_Plus 2.7994849566234525 ns/iter 2.2732045316225484 ns/iter 1.23
Regex_Period 2.783069019556553 ns/iter 2.3002639272919256 ns/iter 1.21
Regex_Caret_Period_Plus_Dollar 2.8937564612285325 ns/iter 2.3093806773324954 ns/iter 1.25
Regex_Caret_Group_Period_Plus_Group_Dollar 2.9332912187974562 ns/iter 2.306658436554843 ns/iter 1.27
Regex_Caret_Period_Asterisk_Dollar 3.000343055659778 ns/iter 2.231400245865821 ns/iter 1.34
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.9355461323456535 ns/iter 2.232564136481118 ns/iter 1.31
Regex_Caret_X_Hyphen 8.994119970908612 ns/iter 6.815179140469097 ns/iter 1.32
Regex_Period_Md_Dollar 26.36768969020026 ns/iter 22.374076241660607 ns/iter 1.18
Regex_Caret_Slash_Period_Asterisk 6.037685494611809 ns/iter 5.114383509331763 ns/iter 1.18
Regex_Caret_Period_Range_Dollar 2.5185517471229635 ns/iter 2.34308707298005 ns/iter 1.07
Regex_Nested_Backtrack 52.57227420806885 ns/iter 47.8150575475028 ns/iter 1.10
JSON_Array_Of_Objects_Unique 316.20207528764263 ns/iter 289.3403003590449 ns/iter 1.09
JSON_Parse_1 31516.18215443339 ns/iter 25167.47820699283 ns/iter 1.25
JSON_Parse_Real 30544.38033728029 ns/iter 27652.192427408576 ns/iter 1.10
JSON_Parse_Decimal 284844.3435980638 ns/iter 279067.6731340584 ns/iter 1.02
JSON_Fast_Hash_Helm_Chart_Lock 35.7946897283129 ns/iter 34.14936257012738 ns/iter 1.05
JSON_Equality_Helm_Chart_Lock 147.6297506359401 ns/iter 129.20175773946204 ns/iter 1.14
JSON_String_Equal/10 7.437968978170481 ns/iter 6.334127775318983 ns/iter 1.17
JSON_String_Equal/100 7.6062309680350895 ns/iter 5.704169993455149 ns/iter 1.33
JSON_String_Equal_Small_By_Perfect_Hash/10 1.0197573241831646 ns/iter 0.828564244483846 ns/iter 1.23
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 5.029881701135446 ns/iter 4.0455081594185875 ns/iter 1.24
JSON_String_Fast_Hash/10 2.4337211469463687 ns/iter 2.1618222628297943 ns/iter 1.13
JSON_String_Fast_Hash/100 2.423812724566463 ns/iter 2.000075755040423 ns/iter 1.21
JSON_String_Key_Hash/10 1.7251993350796513 ns/iter 1.59136628414523 ns/iter 1.08
JSON_String_Key_Hash/100 3.263349075482163 ns/iter 2.8148634818873504 ns/iter 1.16
JSON_Object_Defines_Miss_Same_Length 2.070076286355402 ns/iter 1.955150064520067 ns/iter 1.06
JSON_Object_Defines_Miss_Too_Small 2.3169663281843946 ns/iter 1.9364407613301402 ns/iter 1.20
JSON_Object_Defines_Miss_Too_Large 2.5307431254398476 ns/iter 1.9380171716681351 ns/iter 1.31
Pointer_Object_Traverse 71.32896312328958 ns/iter 56.31945917238665 ns/iter 1.27
Pointer_Object_Try_Traverse 39.54793655720409 ns/iter 38.16503975074314 ns/iter 1.04
Pointer_Push_Back_Pointer_To_Weak_Pointer 213.49539434530382 ns/iter 170.9452012578352 ns/iter 1.25
Pointer_Walker_Schema_ISO_Language 4669907.616405953 ns/iter 4677949.072439459 ns/iter 1.00
Schema_Frame_WoT_References 5048329.830169678 ns/iter 5295523.281755119 ns/iter 0.95
Schema_Frame_OMC_References 29053802.490234375 ns/iter 26017339.14128056 ns/iter 1.12
Schema_Frame_OMC_Locations 27324355.166891348 ns/iter 24296900.321697365 ns/iter 1.12
Schema_Frame_ISO_Language_Locations 92774561.47330149 ns/iter 94425712.31297085 ns/iter 0.98
Schema_Iterator_ISO_Language 1935813.0140677511 ns/iter 1856755.8039318433 ns/iter 1.04
Schema_Frame_ISO_Language_Locations_To_JSON 271010955.174764 ns/iter 176219701.76696777 ns/iter 1.54
Schema_Tracker_ISO_Language 50521433.35342407 ns/iter 42948812.24632263 ns/iter 1.18
Schema_Tracker_ISO_Language_To_JSON 40039902.64165969 ns/iter 26529000.35564716 ns/iter 1.51
Schema_Format_ISO_Language_To_JSON 116150895.75449626 ns/iter 97744567.05365862 ns/iter 1.19
Schema_Bundle_Meta_2020_12 1628368.5607569558 ns/iter 1608720.788269751 ns/iter 1.01
Alterschema_Check_Readibility_ISO_Language_Set_3 151719617.84362793 ns/iter 152766990.6616211 ns/iter 0.99
Alterschema_Check_Readibility_OMC 32785747.36221977 ns/iter 29868530.190509297 ns/iter 1.10
URITemplateRouter_Create 13780.717944822318 ns/iter 14205.464391906697 ns/iter 0.97
URITemplateRouter_Match 170.57204891432892 ns/iter 177.7330463062293 ns/iter 0.96
URITemplateRouterView_Restore 9532.310009967727 ns/iter 9592.96513398468 ns/iter 0.99
URITemplateRouterView_Match 107.08020796106607 ns/iter 115.17577187704448 ns/iter 0.93

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