Skip to content

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Jan 15, 2026

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

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: bc5e4cd Previous: 36c0734 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.109320034352683 ns/iter 2.0237745411952215 ns/iter 1.54
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.108863220065973 ns/iter 2.0172831994082925 ns/iter 1.54
Regex_Period_Asterisk 3.1100365771302605 ns/iter 2.022203800377977 ns/iter 1.54
Regex_Group_Period_Asterisk_Group 3.1100553477119606 ns/iter 2.017819851140491 ns/iter 1.54
Regex_Period_Plus 2.892361134023031 ns/iter 2.304589580516515 ns/iter 1.26
Regex_Period 3.108322258852897 ns/iter 2.3042071980151406 ns/iter 1.35
Regex_Caret_Period_Plus_Dollar 3.1084018892215375 ns/iter 2.3042112070054808 ns/iter 1.35
Regex_Caret_Group_Period_Plus_Group_Dollar 3.108411797227925 ns/iter 2.3062400346891296 ns/iter 1.35
Regex_Caret_Period_Asterisk_Dollar 3.108052165809499 ns/iter 2.0176531736062406 ns/iter 1.54
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.107604515460083 ns/iter 2.018861913163977 ns/iter 1.54
Regex_Caret_X_Hyphen 13.060947872758002 ns/iter 8.932730009655085 ns/iter 1.46
Regex_Period_Md_Dollar 27.513397932785107 ns/iter 25.328888939479747 ns/iter 1.09
Regex_Caret_Slash_Period_Asterisk 6.220066961986852 ns/iter 8.323591996477722 ns/iter 0.75
Regex_Caret_Period_Range_Dollar 3.7297467562845004 ns/iter 2.3384356434453384 ns/iter 1.59
Regex_Nested_Backtrack 49.944166734023625 ns/iter 43.81233508263429 ns/iter 1.14
JSON_Array_Of_Objects_Unique 433.6365636063879 ns/iter 346.2663455710912 ns/iter 1.25
JSON_Parse_1 29385.454176873096 ns/iter 27207.837373070804 ns/iter 1.08
JSON_Parse_Real 38218.04487986453 ns/iter 36852.511261974854 ns/iter 1.04
JSON_Parse_Decimal 130303.55081111216 ns/iter 123355.0423131037 ns/iter 1.06
JSON_Fast_Hash_Helm_Chart_Lock 61.86479578050958 ns/iter 46.30199446766456 ns/iter 1.34
JSON_Equality_Helm_Chart_Lock 172.69430867826554 ns/iter 137.18873015108426 ns/iter 1.26
JSON_String_Equal/10 7.160054737763616 ns/iter 4.896853154668813 ns/iter 1.46
JSON_String_Equal/100 7.783967542878528 ns/iter 6.050066010047542 ns/iter 1.29
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9388866999540654 ns/iter 0.6927978112065694 ns/iter 1.36
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.619460094026346 ns/iter 9.556708295718272 ns/iter 1.53
JSON_String_Fast_Hash/10 2.493921970192601 ns/iter 2.0166697938354115 ns/iter 1.24
JSON_String_Fast_Hash/100 2.4873514359286593 ns/iter 2.024155200570148 ns/iter 1.23
JSON_String_Key_Hash/10 2.65460413321714 ns/iter 2.0164706291647643 ns/iter 1.32
JSON_String_Key_Hash/100 9.02017932480939 ns/iter 6.620443595171297 ns/iter 1.36
JSON_Object_Defines_Miss_Same_Length 3.7365159477639494 ns/iter 3.4206817336422386 ns/iter 1.09
JSON_Object_Defines_Miss_Too_Small 3.7345765569081353 ns/iter 3.8542321537062154 ns/iter 0.97
JSON_Object_Defines_Miss_Too_Large 3.7421736559081187 ns/iter 3.4241340070944353 ns/iter 1.09
Pointer_Object_Traverse 46.080582883109685 ns/iter 41.83723222138581 ns/iter 1.10
Pointer_Object_Try_Traverse 53.82552152640131 ns/iter 45.79486821392742 ns/iter 1.18
Pointer_Push_Back_Pointer_To_Weak_Pointer 289.5551810111974 ns/iter 220.04617950495117 ns/iter 1.32
Pointer_Walker_Schema_ISO_Language 3221286.9128439175 ns/iter 3049278.283842736 ns/iter 1.06
Schema_Frame_WoT_References 5784888.487603194 ns/iter 4474933.94230783 ns/iter 1.29
Schema_Frame_OMC_References 27662670.919999074 ns/iter 19266274.944445487 ns/iter 1.44
Schema_Frame_OMC_Locations 25695107.22222461 ns/iter 17584350.049997963 ns/iter 1.46
Schema_Frame_ISO_Language_Locations 125380425.20000091 ns/iter 100022897.33334161 ns/iter 1.25
Schema_Iterator_ISO_Language 2341509.722407675 ns/iter 2191943.0031250184 ns/iter 1.07
Schema_Frame_ISO_Language_Locations_To_JSON 133301189.25000533 ns/iter 130899060.79999308 ns/iter 1.02
Schema_Tracker_ISO_Language 47185461.73333683 ns/iter 43837975.75000159 ns/iter 1.08
Schema_Tracker_ISO_Language_To_JSON 25109549.357141856 ns/iter 23737275.750002187 ns/iter 1.06
Schema_Format_ISO_Language_To_JSON 133122727.20002055 ns/iter 107301799.42855297 ns/iter 1.24
Schema_Bundle_Meta_2020_12 2169533.3167708977 ns/iter 1952247.382684539 ns/iter 1.11
Schema_Frame_Many_Resources_References 254175276.6666529 ns/iter 2539599517.999932 ns/iter 0.10
Alterschema_Check_Readibility_ISO_Language_Set_3 235511108.33329856 ns/iter 196278109.99998018 ns/iter 1.20
Alterschema_Check_Readibility_OMC 33629096.47619073 ns/iter 23563030.034481395 ns/iter 1.43
EditorSchema_ForEditor_EmbeddedResources 14225282.612252548 ns/iter 17857694.76923167 ns/iter 0.80
URITemplateRouter_Create 16768.2817580202 ns/iter 12695.894851065135 ns/iter 1.32
URITemplateRouter_Match 175.52623560304596 ns/iter 153.65184059461703 ns/iter 1.14
URITemplateRouterView_Restore 8152.236863517451 ns/iter 3483.4791889375633 ns/iter 2.34
URITemplateRouterView_Match 136.38566033531615 ns/iter 110.16956690744681 ns/iter 1.24

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: bc5e4cd Previous: 36c0734 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.790820350373401 ns/iter 3.7983526785710455 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.775150669642307 ns/iter 3.7659481191156576 ns/iter 1.00
Regex_Period_Asterisk 4.43830812500039 ns/iter 4.393606249999493 ns/iter 1.01
Regex_Group_Period_Asterisk_Group 4.106596703762478 ns/iter 4.081825900146413 ns/iter 1.01
Regex_Period_Plus 4.4435306249994255 ns/iter 4.396121640992396 ns/iter 1.01
Regex_Period 4.440296149812391 ns/iter 4.390314999999134 ns/iter 1.01
Regex_Caret_Period_Plus_Dollar 4.086799560869559 ns/iter 4.143378578828061 ns/iter 0.99
Regex_Caret_Group_Period_Plus_Group_Dollar 3.7791053503949077 ns/iter 3.7620739218540167 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 4.0971339285711394 ns/iter 4.122608757362321 ns/iter 0.99
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.7972943467454283 ns/iter 3.88832868303522 ns/iter 0.98
Regex_Caret_X_Hyphen 7.554638392858034 ns/iter 8.232845982141562 ns/iter 0.92
Regex_Period_Md_Dollar 35.222427861115136 ns/iter 35.510864955361804 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 7.345374107144056 ns/iter 7.2270125000000816 ns/iter 1.02
Regex_Caret_Period_Range_Dollar 4.1181376859246495 ns/iter 4.0953784001696505 ns/iter 1.01
Regex_Nested_Backtrack 99.32809377999644 ns/iter 100.33283927085743 ns/iter 0.99
JSON_Array_Of_Objects_Unique 492.06231965673544 ns/iter 505.67520000004146 ns/iter 0.97
JSON_Parse_1 73271.47321427267 ns/iter 74318.18080357391 ns/iter 0.99
JSON_Parse_Real 93283.17932234585 ns/iter 94771.25000000086 ns/iter 0.98
JSON_Parse_Decimal 336417.5834970594 ns/iter 351058.11462231644 ns/iter 0.96
JSON_Fast_Hash_Helm_Chart_Lock 69.87745999999788 ns/iter 69.58704464285655 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 266.25055876115505 ns/iter 264.3667857142873 ns/iter 1.01
JSON_String_Equal/10 12.271006249999774 ns/iter 12.219810714287046 ns/iter 1.00
JSON_String_Equal/100 13.976742794745775 ns/iter 13.818983643664565 ns/iter 1.01
JSON_String_Equal_Small_By_Perfect_Hash/10 2.208583125000274 ns/iter 2.1944181249999417 ns/iter 1.01
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.847073214284624 ns/iter 12.58064464285472 ns/iter 1.02
JSON_String_Fast_Hash/10 3.7711093749998827 ns/iter 3.7580212432893987 ns/iter 1.00
JSON_String_Fast_Hash/100 3.7884464285716946 ns/iter 3.7610614218553358 ns/iter 1.01
JSON_String_Key_Hash/10 3.7765221361133854 ns/iter 3.7699119575538234 ns/iter 1.00
JSON_String_Key_Hash/100 13.764971590333138 ns/iter 16.30510714285549 ns/iter 0.84
JSON_Object_Defines_Miss_Same_Length 4.732335447484562 ns/iter 4.7552678677570315 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.783911243242115 ns/iter 3.7684521361281944 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 4.740338849866345 ns/iter 4.72542121590415 ns/iter 1.00
Pointer_Object_Traverse 50.98358999998709 ns/iter 51.67548214284271 ns/iter 0.99
Pointer_Object_Try_Traverse 69.4700267857229 ns/iter 69.02901785714732 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 147.1027032543553 ns/iter 178.8195231352356 ns/iter 0.82
Pointer_Walker_Schema_ISO_Language 11164534.375001978 ns/iter 9677401.562498745 ns/iter 1.15
Schema_Frame_WoT_References 10928540.624998817 ns/iter 11083508.928570447 ns/iter 0.99
Schema_Frame_OMC_References 54647754.545468085 ns/iter 50254963.636358626 ns/iter 1.09
Schema_Frame_OMC_Locations 50979460.00000775 ns/iter 46853364.28571775 ns/iter 1.09
Schema_Frame_ISO_Language_Locations 235679433.33334064 ns/iter 203966000.00003672 ns/iter 1.16
Schema_Iterator_ISO_Language 4185298.1927705915 ns/iter 4256930.722891707 ns/iter 0.98
Schema_Frame_ISO_Language_Locations_To_JSON 245138500.00001487 ns/iter 239516433.33331656 ns/iter 1.02
Schema_Tracker_ISO_Language 99727533.33333154 ns/iter 98991000.00000414 ns/iter 1.01
Schema_Tracker_ISO_Language_To_JSON 53532860.00001845 ns/iter 52106272.727273375 ns/iter 1.03
Schema_Format_ISO_Language_To_JSON 239277500.00007108 ns/iter 206371733.33337462 ns/iter 1.16
Schema_Bundle_Meta_2020_12 4198333.139533832 ns/iter 4113584.3373453952 ns/iter 1.02
Schema_Frame_Many_Resources_References 501316399.9999506 ns/iter 2605139999.999892 ns/iter 0.19
Alterschema_Check_Readibility_ISO_Language_Set_3 354270649.99998945 ns/iter 322562050.0001014 ns/iter 1.10
Alterschema_Check_Readibility_OMC 63166063.63634492 ns/iter 57206372.727271385 ns/iter 1.10
EditorSchema_ForEditor_EmbeddedResources 24260959.37499184 ns/iter 35842721.05266744 ns/iter 0.68
URITemplateRouter_Create 22743.321874997946 ns/iter 22223.696875002475 ns/iter 1.02
URITemplateRouter_Match 207.62087499996085 ns/iter 207.70615624996935 ns/iter 1.00
URITemplateRouterView_Restore 31902.32589286016 ns/iter 29209.34821428237 ns/iter 1.09
URITemplateRouterView_Match 146.98475906317697 ns/iter 140.64883970319195 ns/iter 1.05

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: bc5e4cd Previous: 36c0734 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.016055330907933 ns/iter 1.9731503139677145 ns/iter 1.02
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.3977214967810516 ns/iter 2.0788688838703804 ns/iter 1.15
Regex_Period_Asterisk 2.3835672798489824 ns/iter 2.3485382742023133 ns/iter 1.01
Regex_Group_Period_Asterisk_Group 2.470624097206267 ns/iter 2.0191872049683868 ns/iter 1.22
Regex_Period_Plus 2.7603449161622624 ns/iter 2.434667917888323 ns/iter 1.13
Regex_Period 2.760728537471305 ns/iter 2.468950514653725 ns/iter 1.12
Regex_Caret_Period_Plus_Dollar 2.858203920533926 ns/iter 2.713185467396239 ns/iter 1.05
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1257296576573137 ns/iter 2.7291039604105714 ns/iter 1.15
Regex_Caret_Period_Asterisk_Dollar 2.33869565681804 ns/iter 2.2928960019446505 ns/iter 1.02
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.201619765111868 ns/iter 2.110482432815641 ns/iter 1.04
Regex_Caret_X_Hyphen 8.296425670372754 ns/iter 8.69176971810415 ns/iter 0.95
Regex_Period_Md_Dollar 36.134819001907104 ns/iter 28.690201253937914 ns/iter 1.26
Regex_Caret_Slash_Period_Asterisk 7.239032507084441 ns/iter 6.976440921232846 ns/iter 1.04
Regex_Caret_Period_Range_Dollar 2.142786119998792 ns/iter 2.694915874656469 ns/iter 0.80
Regex_Nested_Backtrack 47.88007962765147 ns/iter 34.94888957635304 ns/iter 1.37
JSON_Array_Of_Objects_Unique 623.3809999999949 ns/iter 463.4987064624597 ns/iter 1.34
JSON_Parse_1 30187.61800219284 ns/iter 25575.849442889936 ns/iter 1.18
JSON_Parse_Real 34208.581241194996 ns/iter 30443.677452280976 ns/iter 1.12
JSON_Parse_Decimal 355130.7611392099 ns/iter 400969.52009929775 ns/iter 0.89
JSON_Fast_Hash_Helm_Chart_Lock 80.2884187359613 ns/iter 95.01652097228278 ns/iter 0.84
JSON_Equality_Helm_Chart_Lock 174.19433551385904 ns/iter 188.94448305912235 ns/iter 0.92
JSON_String_Equal/10 9.256192668909781 ns/iter 9.34623254604511 ns/iter 0.99
JSON_String_Equal/100 9.503759712854464 ns/iter 9.014468641590591 ns/iter 1.05
JSON_String_Equal_Small_By_Perfect_Hash/10 0.42148206490945767 ns/iter 0.4798609817684165 ns/iter 0.88
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 5.023819189242011 ns/iter 5.883585420000372 ns/iter 0.85
JSON_String_Fast_Hash/10 2.8987138364550393 ns/iter 3.431413546754656 ns/iter 0.84
JSON_String_Fast_Hash/100 2.8464002427573054 ns/iter 3.1173795367864954 ns/iter 0.91
JSON_String_Key_Hash/10 2.0613033815839494 ns/iter 3.0760610439445157 ns/iter 0.67
JSON_String_Key_Hash/100 2.817880217839424 ns/iter 3.65208043886365 ns/iter 0.77
JSON_Object_Defines_Miss_Same_Length 3.136140935856416 ns/iter 3.9343445210657366 ns/iter 0.80
JSON_Object_Defines_Miss_Too_Small 2.8976429010721754 ns/iter 3.6931723191991868 ns/iter 0.78
JSON_Object_Defines_Miss_Too_Large 3.0812733992365806 ns/iter 3.343405161360382 ns/iter 0.92
Pointer_Object_Traverse 19.46509134798312 ns/iter 19.410096261485794 ns/iter 1.00
Pointer_Object_Try_Traverse 24.348602773307135 ns/iter 24.709850482415504 ns/iter 0.99
Pointer_Push_Back_Pointer_To_Weak_Pointer 182.92411699655509 ns/iter 180.6996345686554 ns/iter 1.01
Pointer_Walker_Schema_ISO_Language 6341780.099998889 ns/iter 5188306.519379899 ns/iter 1.22
Schema_Frame_WoT_References 6396371.9357799925 ns/iter 5887665.999999627 ns/iter 1.09
Schema_Frame_OMC_References 40576548.61111359 ns/iter 35738664.86956574 ns/iter 1.14
Schema_Frame_OMC_Locations 38806638.888887495 ns/iter 31624916.695650626 ns/iter 1.23
Schema_Frame_ISO_Language_Locations 141106725.00000873 ns/iter 122755840.16667078 ns/iter 1.15
Schema_Iterator_ISO_Language 3030036.1756095607 ns/iter 3214995.3224637867 ns/iter 0.94
Schema_Frame_ISO_Language_Locations_To_JSON 139150591.80001208 ns/iter 137058583.33332798 ns/iter 1.02
Schema_Tracker_ISO_Language 61228462.09090808 ns/iter 55753499.99999575 ns/iter 1.10
Schema_Tracker_ISO_Language_To_JSON 20673315.870967157 ns/iter 23435358.870969024 ns/iter 0.88
Schema_Format_ISO_Language_To_JSON 135185194.1666761 ns/iter 152445316.60005122 ns/iter 0.89
Schema_Bundle_Meta_2020_12 2487682.46483249 ns/iter 2406143.235688056 ns/iter 1.03
Schema_Frame_Many_Resources_References 319432354.5000088 ns/iter 1864676874.9999864 ns/iter 0.17
Alterschema_Check_Readibility_ISO_Language_Set_3 236032750.00001153 ns/iter 251256027.6666515 ns/iter 0.94
Alterschema_Check_Readibility_OMC 49229486.93749873 ns/iter 46848008.92856954 ns/iter 1.05
EditorSchema_ForEditor_EmbeddedResources 17430504.125002243 ns/iter 26197758.857145052 ns/iter 0.67
URITemplateRouter_Create 22232.848900163044 ns/iter 19351.01776642889 ns/iter 1.15
URITemplateRouter_Match 207.34793893293724 ns/iter 213.08606003422227 ns/iter 0.97
URITemplateRouterView_Restore 12162.169608249964 ns/iter 15163.705858393148 ns/iter 0.80
URITemplateRouterView_Match 144.99430626738575 ns/iter 138.73392840577918 ns/iter 1.05

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: bc5e4cd Previous: 36c0734 Ratio
URITemplateRouter_Create 14294.45315003051 ns/iter 14540.255989604604 ns/iter 0.98
URITemplateRouter_Match 178.89508810035727 ns/iter 179.62860981244583 ns/iter 1.00
URITemplateRouterView_Restore 8247.726316733299 ns/iter 8241.760404635457 ns/iter 1.00
URITemplateRouterView_Match 116.60756619538803 ns/iter 119.22209528203537 ns/iter 0.98
EditorSchema_ForEditor_EmbeddedResources 14992771.173910035 ns/iter 21210640.696953114 ns/iter 0.71
Alterschema_Check_Readibility_ISO_Language_Set_3 230433051.66667473 ns/iter 223795649.333321 ns/iter 1.03
Alterschema_Check_Readibility_OMC 34586710.29999892 ns/iter 31610345.727275755 ns/iter 1.09
Schema_Frame_WoT_References 6329934.018182567 ns/iter 5566784.519998692 ns/iter 1.14
Schema_Frame_OMC_References 28564501.000000745 ns/iter 24827139.392860837 ns/iter 1.15
Schema_Frame_OMC_Locations 27484462.153845124 ns/iter 21865807.22580754 ns/iter 1.26
Schema_Frame_ISO_Language_Locations 125178477.40000434 ns/iter 114063186.99998035 ns/iter 1.10
Schema_Iterator_ISO_Language 2545128.3054545373 ns/iter 2517229.8392858137 ns/iter 1.01
Schema_Frame_ISO_Language_Locations_To_JSON 290317239.00000846 ns/iter 295263271.66665095 ns/iter 0.98
Schema_Tracker_ISO_Language 48837148.42857704 ns/iter 49447454.42857571 ns/iter 0.99
Schema_Tracker_ISO_Language_To_JSON 33560063.99999697 ns/iter 37103945.00000121 ns/iter 0.90
Schema_Format_ISO_Language_To_JSON 133394495.19996834 ns/iter 125616123.66672157 ns/iter 1.06
Schema_Bundle_Meta_2020_12 2373422.1220331043 ns/iter 2319211.5747483256 ns/iter 1.02
Schema_Frame_Many_Resources_References 270848519.50002074 ns/iter 1751648345.9999108 ns/iter 0.15
Pointer_Object_Traverse 46.3408454139726 ns/iter 47.059762372006126 ns/iter 0.98
Pointer_Object_Try_Traverse 22.754324187439757 ns/iter 22.7228518355172 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 169.96946471870643 ns/iter 152.17563346387908 ns/iter 1.12
Pointer_Walker_Schema_ISO_Language 3435749.4117645556 ns/iter 3564505.3181814076 ns/iter 0.96
JSON_Array_Of_Objects_Unique 419.51138845369536 ns/iter 416.2191685519219 ns/iter 1.01
JSON_Parse_1 33206.09563900992 ns/iter 33364.23275121259 ns/iter 1.00
JSON_Parse_Real 44539.027180140045 ns/iter 43926.12789969203 ns/iter 1.01
JSON_Parse_Decimal 157558.32214463328 ns/iter 156138.7930728169 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 60.365712502557244 ns/iter 63.48597954330574 ns/iter 0.95
JSON_Equality_Helm_Chart_Lock 159.7384442185068 ns/iter 156.3953231836497 ns/iter 1.02
JSON_String_Equal/10 7.583389787265846 ns/iter 6.340843918152353 ns/iter 1.20
JSON_String_Equal/100 8.20827545787102 ns/iter 6.972036656545373 ns/iter 1.18
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6229071746533762 ns/iter 0.6276604280548674 ns/iter 0.99
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 19.56764149983964 ns/iter 19.57088976560261 ns/iter 1.00
JSON_String_Fast_Hash/10 2.3343835859920428 ns/iter 1.9432868310795497 ns/iter 1.20
JSON_String_Fast_Hash/100 2.3329016014385076 ns/iter 1.9419766345574212 ns/iter 1.20
JSON_String_Key_Hash/10 1.2466162315196152 ns/iter 1.2453164413557545 ns/iter 1.00
JSON_String_Key_Hash/100 12.4311799400546 ns/iter 12.428218018469183 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.4904209065361056 ns/iter 2.800337358308202 ns/iter 0.89
JSON_Object_Defines_Miss_Too_Small 2.799263794976581 ns/iter 2.489094187100286 ns/iter 1.12
JSON_Object_Defines_Miss_Too_Large 2.798343049305548 ns/iter 2.493519751338225 ns/iter 1.12
Regex_Lower_S_Or_Upper_S_Asterisk 3.109143053557097 ns/iter 3.1115776619976727 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.109171128032553 ns/iter 3.1101275047064805 ns/iter 1.00
Regex_Period_Asterisk 3.1101576156596975 ns/iter 3.112807243268439 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.108139643288131 ns/iter 3.118713203797744 ns/iter 1.00
Regex_Period_Plus 2.8018513174437905 ns/iter 2.797850707630282 ns/iter 1.00
Regex_Period 2.7970833485317717 ns/iter 2.79689726276798 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 2.800868392455239 ns/iter 2.7969411621572435 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 2.7997535104875917 ns/iter 2.7992860175714607 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 4.0390287491802095 ns/iter 4.057986012480271 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.039595094255668 ns/iter 3.8804340810136417 ns/iter 1.04
Regex_Caret_X_Hyphen 13.67772819575659 ns/iter 13.05834342865626 ns/iter 1.05
Regex_Period_Md_Dollar 39.06125169975443 ns/iter 35.78383932866701 ns/iter 1.09
Regex_Caret_Slash_Period_Asterisk 7.770572035461489 ns/iter 8.70272020227653 ns/iter 0.89
Regex_Caret_Period_Range_Dollar 3.1083619808982044 ns/iter 4.043915246543896 ns/iter 0.77
Regex_Nested_Backtrack 60.33484537447477 ns/iter 60.67557505405929 ns/iter 0.99

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

@jviotti jviotti marked this pull request as ready for review January 15, 2026 17:59
@jviotti jviotti merged commit 6866e0e into main Jan 15, 2026
13 checks passed
@jviotti jviotti deleted the optimise-frame-2 branch January 15, 2026 18:01
@augmentcode
Copy link

augmentcode bot commented Jan 15, 2026

🤖 Augment PR Summary

Summary: This PR optimises JSON Schema framing for large schemas by reducing repeated ancestor-walks and lookups while computing pointer/resource locations.

Changes:

  • Generalised the “nearest base” helper routines to work with different map types via templates.
  • Introduced find_dialect_and_all_bases to compute (in a single upward traversal) the nearest dialect and the full set of base URIs applicable to a pointer.
  • Reworked the per-pointer framing loop to reuse the combined walk result, hoisting the nearest base/base-dialect computation once per pointer.
  • Switched internal caches (subschemas, base_uris, base_dialects) from std::unordered_map to std::map.

Technical Notes: The new combined walk avoids repeating find_nearest_… and “every base” traversals per base URI, which should reduce overhead when framing schemas with many pointers/bases.

🤖 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 (macos/gcc)

Details
Benchmark suite Current: bc5e4cd Previous: 36c0734 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.6227507716666483 ns/iter 2.609843721108945 ns/iter 1.39
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.4826132959108596 ns/iter 2.8026423803714806 ns/iter 1.24
Regex_Period_Asterisk 2.6816372596001785 ns/iter 2.7639993255878794 ns/iter 0.97
Regex_Group_Period_Asterisk_Group 2.7522668688408376 ns/iter 2.6199046613722756 ns/iter 1.05
Regex_Period_Plus 2.978012027380983 ns/iter 2.756400757985226 ns/iter 1.08
Regex_Period 3.2673990967982216 ns/iter 2.905836190092928 ns/iter 1.12
Regex_Caret_Period_Plus_Dollar 3.029786321012568 ns/iter 2.557916291640005 ns/iter 1.18
Regex_Caret_Group_Period_Plus_Group_Dollar 3.3231934617002907 ns/iter 2.508673756396921 ns/iter 1.32
Regex_Caret_Period_Asterisk_Dollar 2.6388489226348497 ns/iter 2.863966331442909 ns/iter 0.92
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.8603721927746633 ns/iter 2.4364402143441186 ns/iter 1.17
Regex_Caret_X_Hyphen 8.578752277307125 ns/iter 7.466720301666052 ns/iter 1.15
Regex_Period_Md_Dollar 34.73243063249721 ns/iter 26.388341980355065 ns/iter 1.32
Regex_Caret_Slash_Period_Asterisk 6.252743640578396 ns/iter 5.672333840493194 ns/iter 1.10
Regex_Caret_Period_Range_Dollar 2.897696973834241 ns/iter 2.6524802395358615 ns/iter 1.09
Regex_Nested_Backtrack 71.19912825020798 ns/iter 59.87144173915612 ns/iter 1.19
JSON_Array_Of_Objects_Unique 336.28932674446577 ns/iter 411.8886744178746 ns/iter 0.82
JSON_Parse_1 31615.95638448746 ns/iter 33427.95527327289 ns/iter 0.95
JSON_Parse_Real 36394.087076409414 ns/iter 32730.10707604783 ns/iter 1.11
JSON_Parse_Decimal 352356.91639759974 ns/iter 341215.9076377527 ns/iter 1.03
JSON_Fast_Hash_Helm_Chart_Lock 41.8275076898295 ns/iter 43.75204703033942 ns/iter 0.96
JSON_Equality_Helm_Chart_Lock 179.26100040883173 ns/iter 165.1154803188316 ns/iter 1.09
JSON_String_Equal/10 8.721928102809768 ns/iter 7.4021001049131465 ns/iter 1.18
JSON_String_Equal/100 7.601222241647531 ns/iter 7.456570297640169 ns/iter 1.02
JSON_String_Equal_Small_By_Perfect_Hash/10 1.0646470511967925 ns/iter 1.0701749465329617 ns/iter 0.99
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.728460718417373 ns/iter 4.283703166018718 ns/iter 1.10
JSON_String_Fast_Hash/10 2.2588322814000428 ns/iter 2.0513310827178413 ns/iter 1.10
JSON_String_Fast_Hash/100 2.2331606793241603 ns/iter 2.204743450207123 ns/iter 1.01
JSON_String_Key_Hash/10 1.9091301013351611 ns/iter 1.867879911776799 ns/iter 1.02
JSON_String_Key_Hash/100 3.9598970095325376 ns/iter 3.352887327550248 ns/iter 1.18
JSON_Object_Defines_Miss_Same_Length 2.7206801219010956 ns/iter 2.3697497772497194 ns/iter 1.15
JSON_Object_Defines_Miss_Too_Small 2.88457623671738 ns/iter 2.6515899827213 ns/iter 1.09
JSON_Object_Defines_Miss_Too_Large 2.757408782719943 ns/iter 2.2676481604424947 ns/iter 1.22
Pointer_Object_Traverse 81.90490308683727 ns/iter 78.04758855556005 ns/iter 1.05
Pointer_Object_Try_Traverse 54.60641384124756 ns/iter 53.87251377105713 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 208.42894875331822 ns/iter 222.66593810759227 ns/iter 0.94
Pointer_Walker_Schema_ISO_Language 7257471.913876741 ns/iter 5839872.360229492 ns/iter 1.24
Schema_Frame_WoT_References 7980480.426695289 ns/iter 7265547.53645411 ns/iter 1.10
Schema_Frame_OMC_References 38073301.31530762 ns/iter 34550775.18116344 ns/iter 1.10
Schema_Frame_OMC_Locations 43651707.03214758 ns/iter 35824418.06793213 ns/iter 1.22
Schema_Frame_ISO_Language_Locations 152067780.49468994 ns/iter 126823016.57540457 ns/iter 1.20
Schema_Iterator_ISO_Language 2690277.847589231 ns/iter 2618420.6008911133 ns/iter 1.03
Schema_Frame_ISO_Language_Locations_To_JSON 391201257.7056885 ns/iter 192873239.5172119 ns/iter 2.03
Schema_Tracker_ISO_Language 58120727.5390625 ns/iter 55792790.19282414 ns/iter 1.04
Schema_Tracker_ISO_Language_To_JSON 32834005.35583496 ns/iter 31565666.19873047 ns/iter 1.04
Schema_Format_ISO_Language_To_JSON 164167761.80267334 ns/iter 119672639.02936663 ns/iter 1.37
Schema_Bundle_Meta_2020_12 2187395.8905537925 ns/iter 1927757.107862044 ns/iter 1.13
Schema_Frame_Many_Resources_References 373120546.3409424 ns/iter 1895576953.8879395 ns/iter 0.20
Alterschema_Check_Readibility_ISO_Language_Set_3 277596712.11242676 ns/iter 208838522.43423462 ns/iter 1.33
Alterschema_Check_Readibility_OMC 52896295.27500697 ns/iter 36391448.974609375 ns/iter 1.45
EditorSchema_ForEditor_EmbeddedResources 17283099.038260322 ns/iter 21055987.386992484 ns/iter 0.82
URITemplateRouter_Create 22567.280196902964 ns/iter 20395.553877723167 ns/iter 1.11
URITemplateRouter_Match 290.518317170791 ns/iter 226.13175727975064 ns/iter 1.28
URITemplateRouterView_Restore 15166.278997184825 ns/iter 13593.458491564877 ns/iter 1.12
URITemplateRouterView_Match 152.87637678018143 ns/iter 135.75313324311458 ns/iter 1.13

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