Skip to content

Support a new context identifier in URITemplateRouter#2337

Merged
jviotti merged 2 commits intomainfrom
router-context-id
Apr 8, 2026
Merged

Support a new context identifier in URITemplateRouter#2337
jviotti merged 2 commits intomainfrom
router-context-id

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented Apr 8, 2026

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

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 7 files

@augmentcode
Copy link
Copy Markdown

augmentcode bot commented Apr 8, 2026

🤖 Augment PR Summary

Summary: This PR extends URITemplateRouter (and its serialized URITemplateRouterView) to carry an additional per-route context identifier alongside the existing handler identifier.

Changes:

  • Added a context field to trie nodes and extended add() to accept an optional context value (default 0).
  • Changed match() to return a std::pair of {identifier, context} for both the in-memory router and the serialized view.
  • Updated router view serialization format by bumping ROUTER_VERSION to 4 and including context in serialized nodes.
  • Adjusted benchmarks to use the new match() return type and updated add() call sites to pass the new argument position.
  • Refactored test helpers to assert both identifier and context, and added new tests validating context behavior across literals, variables, expansions, base paths, and argument storage.

Technical Notes: Non-matches now return {0, 0}, and serialized routers written with earlier versions will no longer be accepted due to the version bump.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@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. 2 suggestions posted.

Fix All in Augment

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

const sourcemeta::core::URITemplateRouterView view{
reinterpret_cast<const std::uint8_t *>(data), sizeof(data)};
EXPECT_ROUTER_MATCH(view, "/users", 0, captures);
EXPECT_ROUTER_MATCH(view, "/users", 0, 0, captures);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

test/uritemplate/uritemplate_router_view_test.cc:746: Many of the corruption fixtures in this section use a hard-coded router version of 1, so with ROUTER_VERSION now 4 these tests will return {0,0} at the version check and won’t exercise the specific corruption branches suggested by the test names (e.g., node-count/child bounds). Other locations where this applies: test/uritemplate/uritemplate_router_view_test.cc:755, test/uritemplate/uritemplate_router_view_test.cc:764, test/uritemplate/uritemplate_router_view_test.cc:730

Severity: low

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Copy link
Copy Markdown

@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: eec6c42 Previous: e8df271 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.5187892574329713 ns/iter 3.1126163391911894 ns/iter 1.13
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.5159635355590564 ns/iter 3.1126444868582626 ns/iter 1.13
Regex_Period_Asterisk 3.51876450745904 ns/iter 3.1133985776282356 ns/iter 1.13
Regex_Group_Period_Asterisk_Group 3.5159693059016375 ns/iter 3.1138849132493305 ns/iter 1.13
Regex_Period_Plus 3.5172007087672505 ns/iter 3.04203023247037 ns/iter 1.16
Regex_Period 3.5176291768677266 ns/iter 2.856559893456582 ns/iter 1.23
Regex_Caret_Period_Plus_Dollar 3.51560327724599 ns/iter 3.1161890574812214 ns/iter 1.13
Regex_Caret_Group_Period_Plus_Group_Dollar 3.515794693201478 ns/iter 3.0530253032300965 ns/iter 1.15
Regex_Caret_Period_Asterisk_Dollar 3.515166379918713 ns/iter 3.2850342722924686 ns/iter 1.07
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.515373455768394 ns/iter 3.1107759650742417 ns/iter 1.13
Regex_Caret_X_Hyphen 12.301087581079436 ns/iter 10.659222505062184 ns/iter 1.15
Regex_Period_Md_Dollar 26.398482132256603 ns/iter 27.57339530978368 ns/iter 0.96
Regex_Caret_Slash_Period_Asterisk 7.383272581339402 ns/iter 6.223023745956739 ns/iter 1.19
Regex_Caret_Period_Range_Dollar 4.21956467721297 ns/iter 4.075590196447373 ns/iter 1.04
Regex_Nested_Backtrack 46.740209499132554 ns/iter 48.94195435022098 ns/iter 0.96
JSON_Array_Of_Objects_Unique 428.8690999702329 ns/iter 421.07795237694467 ns/iter 1.02
JSON_Parse_1 5772.241104172395 ns/iter 5920.7126469825835 ns/iter 0.97
JSON_Parse_Real 10421.647366465913 ns/iter 10586.258281487322 ns/iter 0.98
JSON_Parse_Decimal 11348.037225317203 ns/iter 11580.765464386299 ns/iter 0.98
JSON_Parse_Schema_ISO_Language 3634793.609374872 ns/iter 3578344.6269429997 ns/iter 1.02
JSON_Fast_Hash_Helm_Chart_Lock 73.53220447090287 ns/iter 61.00711265621494 ns/iter 1.21
JSON_Equality_Helm_Chart_Lock 164.9916130848369 ns/iter 155.46561596673985 ns/iter 1.06
JSON_Divisible_By_Decimal 237.27470481507177 ns/iter 252.0494362588457 ns/iter 0.94
JSON_String_Equal/10 5.981004128244079 ns/iter 6.230433525733751 ns/iter 0.96
JSON_String_Equal/100 6.683120435189449 ns/iter 6.8577092955014125 ns/iter 0.97
JSON_String_Equal_Small_By_Perfect_Hash/10 1.054387353781097 ns/iter 0.9364764628084662 ns/iter 1.13
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.40186815864376 ns/iter 10.270809016290475 ns/iter 1.21
JSON_String_Fast_Hash/10 2.814115575024525 ns/iter 2.803261556191528 ns/iter 1.00
JSON_String_Fast_Hash/100 2.8138468488348702 ns/iter 2.8166321956804676 ns/iter 1.00
JSON_String_Key_Hash/10 2.461262182144041 ns/iter 2.1879674226854604 ns/iter 1.12
JSON_String_Key_Hash/100 7.734610790293165 ns/iter 6.535185176148899 ns/iter 1.18
JSON_Object_Defines_Miss_Same_Length 4.2195878148437025 ns/iter 3.7385288244948796 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Small 4.281602961098312 ns/iter 3.7390142183280046 ns/iter 1.15
JSON_Object_Defines_Miss_Too_Large 4.220028668554394 ns/iter 3.7456953578608094 ns/iter 1.13
Pointer_Object_Traverse 27.23811809961657 ns/iter 25.280560750180662 ns/iter 1.08
Pointer_Object_Try_Traverse 29.186228973182704 ns/iter 28.274206139943235 ns/iter 1.03
Pointer_Push_Back_Pointer_To_Weak_Pointer 170.97505472030707 ns/iter 156.1361401025019 ns/iter 1.10
Pointer_Walker_Schema_ISO_Language 3351572.4305554307 ns/iter 3047587.4824565365 ns/iter 1.10
Pointer_Maybe_Tracked_Deeply_Nested/0 1418071.4728369457 ns/iter 1412983.8065173319 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/1 1747133.1349997853 ns/iter 1799559.6709510242 ns/iter 0.97
Pointer_Position_Tracker_Get_Deeply_Nested 675.0203402435878 ns/iter 637.9167093955374 ns/iter 1.06
Schema_Frame_WoT_References 5328799.930769562 ns/iter 5155880.481481324 ns/iter 1.03
Schema_Frame_OMC_References 22716157.531249337 ns/iter 21235010.454543874 ns/iter 1.07
Schema_Frame_OMC_Locations 20452863.400000103 ns/iter 19611399.055555187 ns/iter 1.04
Schema_Frame_ISO_Language_Locations 101603918.00000449 ns/iter 101275193.83333568 ns/iter 1.00
Schema_Frame_KrakenD_References 43681637.88235372 ns/iter 40778542.72222541 ns/iter 1.07
Schema_Frame_KrakenD_Reachable 622583525.9998575 ns/iter 592761643.000017 ns/iter 1.05
Schema_Iterator_ISO_Language 2310089.81578939 ns/iter 2337105.9864862096 ns/iter 0.99
Schema_Frame_ISO_Language_Locations_To_JSON 109872431.49999888 ns/iter 115289613.79999599 ns/iter 0.95
Schema_Tracker_ISO_Language 4841327.0482765725 ns/iter 4845649.643356524 ns/iter 1.00
Schema_Tracker_ISO_Language_To_JSON 18622392.00000048 ns/iter 19276728.77777948 ns/iter 0.97
Schema_Format_ISO_Language_To_JSON 108790009.83330418 ns/iter 107474706.83336739 ns/iter 1.01
Schema_Bundle_Meta_2020_12 1711966.8926003424 ns/iter 1688234.0552871148 ns/iter 1.01
Schema_Frame_Many_Resources_References 381335503.99999195 ns/iter 383090734.50000143 ns/iter 1.00
Alterschema_Check_Readibility_ISO_Language_Set_3 209447637.00000143 ns/iter 219211843.00000128 ns/iter 0.96
Alterschema_Check_Readibility_OMC 34845608.39999631 ns/iter 34349083.499995455 ns/iter 1.01
Alterschema_Apply_Readibility_KrakenD 609561944.0000064 ns/iter 640022369.9999969 ns/iter 0.95
Alterschema_Check_Invalid_External_Refs 115518604.1666525 ns/iter 123491229.83334838 ns/iter 0.94
EditorSchema_ForEditor_EmbeddedResources 14031857.260010839 ns/iter 13971944.459990483 ns/iter 1.00
URITemplateRouter_Create 15251.746382492329 ns/iter 16772.09252771343 ns/iter 0.91
URITemplateRouter_Match 182.75519157929463 ns/iter 173.22244087314002 ns/iter 1.06
URITemplateRouter_Match_BasePath 223.6595811022924 ns/iter 200.93380049768442 ns/iter 1.11
URITemplateRouterView_Restore 6415.2680404794555 ns/iter 4976.4518077845905 ns/iter 1.29
URITemplateRouterView_Match 146.22137785893747 ns/iter 142.9141406552978 ns/iter 1.02
URITemplateRouterView_Match_BasePath 166.45042577429584 ns/iter 161.74606319041914 ns/iter 1.03
URITemplateRouterView_Arguments 471.2323713954493 ns/iter 433.3400719732286 ns/iter 1.09
HTML_Build_Table_100000 85730214.62498787 ns/iter 63607573.374994785 ns/iter 1.35
HTML_Render_Table_100000 5004726.100719872 ns/iter 5482061.8897640705 ns/iter 0.91

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

Copy link
Copy Markdown

@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: eec6c42 Previous: e8df271 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.7734852082992068 ns/iter 2.056579550788201 ns/iter 0.86
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.7294025461417244 ns/iter 2.058888506688851 ns/iter 0.84
Regex_Period_Asterisk 1.754608226927496 ns/iter 2.1949406984978475 ns/iter 0.80
Regex_Group_Period_Asterisk_Group 1.8616318922181907 ns/iter 2.1355225337774293 ns/iter 0.87
Regex_Period_Plus 2.188264706686783 ns/iter 2.408771234168216 ns/iter 0.91
Regex_Period 2.089192169639036 ns/iter 2.426715615811587 ns/iter 0.86
Regex_Caret_Period_Plus_Dollar 2.102960536037355 ns/iter 2.4988705745400512 ns/iter 0.84
Regex_Caret_Group_Period_Plus_Group_Dollar 2.0888169954914604 ns/iter 2.5919435716996104 ns/iter 0.81
Regex_Caret_Period_Asterisk_Dollar 1.7283201891323252 ns/iter 2.167674244120102 ns/iter 0.80
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.8590104116528596 ns/iter 2.252617300351798 ns/iter 0.83
Regex_Caret_X_Hyphen 6.835529785139736 ns/iter 7.803765402932134 ns/iter 0.88
Regex_Period_Md_Dollar 22.359071929590637 ns/iter 29.754243357517247 ns/iter 0.75
Regex_Caret_Slash_Period_Asterisk 4.870386123466764 ns/iter 6.731261343844144 ns/iter 0.72
Regex_Caret_Period_Range_Dollar 1.917662830614832 ns/iter 2.4201922296927734 ns/iter 0.79
Regex_Nested_Backtrack 27.806377988246243 ns/iter 34.40672788892869 ns/iter 0.81
JSON_Array_Of_Objects_Unique 347.7454826066527 ns/iter 429.1526213288432 ns/iter 0.81
JSON_Parse_1 4327.110175693186 ns/iter 5339.37208999987 ns/iter 0.81
JSON_Parse_Real 6943.389708777359 ns/iter 8294.045755046096 ns/iter 0.84
JSON_Parse_Decimal 8428.859541290783 ns/iter 11796.697263914784 ns/iter 0.71
JSON_Parse_Schema_ISO_Language 4584697.713376827 ns/iter 5160343.675860814 ns/iter 0.89
JSON_Fast_Hash_Helm_Chart_Lock 66.71767540174126 ns/iter 71.4284061641084 ns/iter 0.93
JSON_Equality_Helm_Chart_Lock 144.54384068104818 ns/iter 178.91979692134717 ns/iter 0.81
JSON_Divisible_By_Decimal 184.30220298748486 ns/iter 228.57437807053648 ns/iter 0.81
JSON_String_Equal/10 6.927319577303313 ns/iter 8.247060973617009 ns/iter 0.84
JSON_String_Equal/100 6.666819594373214 ns/iter 7.5250950037841395 ns/iter 0.89
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7812448729970052 ns/iter 1.0227698849868239 ns/iter 0.76
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.5175180062320344 ns/iter 4.920769462032695 ns/iter 0.71
JSON_String_Fast_Hash/10 2.5443338367443724 ns/iter 3.075405841424101 ns/iter 0.83
JSON_String_Fast_Hash/100 2.2382400635321402 ns/iter 2.499420459476231 ns/iter 0.90
JSON_String_Key_Hash/10 1.3900055080790883 ns/iter 1.722654795154422 ns/iter 0.81
JSON_String_Key_Hash/100 2.252148365786213 ns/iter 2.7400002820024842 ns/iter 0.82
JSON_Object_Defines_Miss_Same_Length 2.4531243225936943 ns/iter 3.095489027457575 ns/iter 0.79
JSON_Object_Defines_Miss_Too_Small 2.540945774500631 ns/iter 2.796711153979503 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Large 2.9742227398636674 ns/iter 2.8097411992492285 ns/iter 1.06
Pointer_Object_Traverse 15.395834540406064 ns/iter 21.168993211104173 ns/iter 0.73
Pointer_Object_Try_Traverse 20.21968806483001 ns/iter 25.94251841247795 ns/iter 0.78
Pointer_Push_Back_Pointer_To_Weak_Pointer 156.53973274314816 ns/iter 201.60409503896398 ns/iter 0.78
Pointer_Walker_Schema_ISO_Language 4580316.0828017425 ns/iter 5832683.26829234 ns/iter 0.79
Pointer_Maybe_Tracked_Deeply_Nested/0 970119.2288629692 ns/iter 1501204.2577567678 ns/iter 0.65
Pointer_Maybe_Tracked_Deeply_Nested/1 1345142.1663441185 ns/iter 1804453.8085710625 ns/iter 0.75
Pointer_Position_Tracker_Get_Deeply_Nested 361.8062201382983 ns/iter 474.1974556458843 ns/iter 0.76
Schema_Frame_WoT_References 4910006.693430693 ns/iter 6303324.827955802 ns/iter 0.78
Schema_Frame_OMC_References 26617875.000001732 ns/iter 35428632.90476817 ns/iter 0.75
Schema_Frame_OMC_Locations 25237264.37930393 ns/iter 33142535.954549536 ns/iter 0.76
Schema_Frame_ISO_Language_Locations 80087088.4999938 ns/iter 95015034.66666842 ns/iter 0.84
Schema_Frame_KrakenD_References 54578458.40001027 ns/iter 64237515.0909257 ns/iter 0.85
Schema_Frame_KrakenD_Reachable 376988041.4998852 ns/iter 583132083.0000095 ns/iter 0.65
Schema_Iterator_ISO_Language 1960036.7445054173 ns/iter 2618858.7598424447 ns/iter 0.75
Schema_Frame_ISO_Language_Locations_To_JSON 96777618.16665983 ns/iter 105618029.85713647 ns/iter 0.92
Schema_Tracker_ISO_Language 11065427.225352785 ns/iter 12240569.148935776 ns/iter 0.90
Schema_Tracker_ISO_Language_To_JSON 14685875.000000322 ns/iter 18070807.14285933 ns/iter 0.81
Schema_Format_ISO_Language_To_JSON 79348035.57139146 ns/iter 105099828.00002149 ns/iter 0.75
Schema_Bundle_Meta_2020_12 1420782.0239036947 ns/iter 1834575.6985126117 ns/iter 0.77
Schema_Frame_Many_Resources_References 306818583.49998945 ns/iter 477187062.5000929 ns/iter 0.64
Alterschema_Check_Readibility_ISO_Language_Set_3 158361447.99999374 ns/iter 187686152.66662893 ns/iter 0.84
Alterschema_Check_Readibility_OMC 35809278.473679066 ns/iter 45609557.31248839 ns/iter 0.79
Alterschema_Apply_Readibility_KrakenD 501973749.9997063 ns/iter 652821583.9998666 ns/iter 0.77
Alterschema_Check_Invalid_External_Refs 90876779.09999457 ns/iter 94076632.00003451 ns/iter 0.97
EditorSchema_ForEditor_EmbeddedResources 14681871.266647149 ns/iter 14833352.857132403 ns/iter 0.99
URITemplateRouter_Create 17404.751497452933 ns/iter 21662.521777442114 ns/iter 0.80
URITemplateRouter_Match 176.68468134516905 ns/iter 206.11449107115575 ns/iter 0.86
URITemplateRouter_Match_BasePath 212.1751640948942 ns/iter 260.5479540073261 ns/iter 0.81
URITemplateRouterView_Restore 15126.992203675909 ns/iter 17693.63331723602 ns/iter 0.85
URITemplateRouterView_Match 137.43597122106715 ns/iter 173.18472133848294 ns/iter 0.79
URITemplateRouterView_Match_BasePath 150.53690918094827 ns/iter 191.48238690126604 ns/iter 0.79
URITemplateRouterView_Arguments 413.16867944474035 ns/iter 495.4661655771169 ns/iter 0.83
HTML_Build_Table_100000 66043019.00000048 ns/iter 93342677.1249799 ns/iter 0.71
HTML_Render_Table_100000 3606457.335329156 ns/iter 4595443.249999774 ns/iter 0.78

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

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Copy link
Copy Markdown

@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: eec6c42 Previous: e8df271 Ratio
HTML_Build_Table_100000 63515082.818184964 ns/iter 67721316.39997952 ns/iter 0.94
HTML_Render_Table_100000 5704384.815126029 ns/iter 9939253.117646357 ns/iter 0.57
URITemplateRouter_Create 14485.349922235891 ns/iter 11568.14069584065 ns/iter 1.25
URITemplateRouter_Match 213.84280852963465 ns/iter 157.05013876751127 ns/iter 1.36
URITemplateRouter_Match_BasePath 244.1325856225008 ns/iter 174.01147929261367 ns/iter 1.40
URITemplateRouterView_Restore 5136.683283634836 ns/iter 2363.736413200534 ns/iter 2.17
URITemplateRouterView_Match 134.30855109092363 ns/iter 119.0574657838718 ns/iter 1.13
URITemplateRouterView_Match_BasePath 166.03582739441626 ns/iter 135.74324135112616 ns/iter 1.22
URITemplateRouterView_Arguments 473.2335987342491 ns/iter 477.0495228046867 ns/iter 0.99
EditorSchema_ForEditor_EmbeddedResources 14197059.379989695 ns/iter 12665617.818187127 ns/iter 1.12
Alterschema_Check_Readibility_ISO_Language_Set_3 214252140.66668257 ns/iter 175630677.0000151 ns/iter 1.22
Alterschema_Check_Readibility_OMC 34917142.68421961 ns/iter 31558048.54545543 ns/iter 1.11
Alterschema_Apply_Readibility_KrakenD 633245978.0001045 ns/iter 515164815.999924 ns/iter 1.23
Alterschema_Check_Invalid_External_Refs 128843073.9999967 ns/iter 91651477.49999392 ns/iter 1.41
Schema_Frame_WoT_References 5411888.68992357 ns/iter 4866199.673611188 ns/iter 1.11
Schema_Frame_OMC_References 23131064.06452261 ns/iter 20129931.028571133 ns/iter 1.15
Schema_Frame_OMC_Locations 21215399.121212445 ns/iter 18697101.131579075 ns/iter 1.13
Schema_Frame_ISO_Language_Locations 103686387.14284575 ns/iter 92140517.37498608 ns/iter 1.13
Schema_Frame_KrakenD_References 42949427.64705839 ns/iter 37104678.9444386 ns/iter 1.16
Schema_Frame_KrakenD_Reachable 594514609.0000435 ns/iter 720632727.9998277 ns/iter 0.82
Schema_Iterator_ISO_Language 2607968.5939853024 ns/iter 2405316.3801364177 ns/iter 1.08
Schema_Frame_ISO_Language_Locations_To_JSON 216520287.6666778 ns/iter 195683776.75000194 ns/iter 1.11
Schema_Tracker_ISO_Language 4892932.436619882 ns/iter 4680286.880793514 ns/iter 1.05
Schema_Tracker_ISO_Language_To_JSON 22083895.87499937 ns/iter 22772306.100000605 ns/iter 0.97
Schema_Format_ISO_Language_To_JSON 110621579.83322626 ns/iter 97815422.00000462 ns/iter 1.13
Schema_Bundle_Meta_2020_12 1800258.5861161638 ns/iter 1674250.0885096993 ns/iter 1.08
Schema_Frame_Many_Resources_References 387984103.000008 ns/iter 352745357.49999815 ns/iter 1.10
Pointer_Object_Traverse 26.00046685856525 ns/iter 26.556574711906293 ns/iter 0.98
Pointer_Object_Try_Traverse 24.618426566736872 ns/iter 27.876626224720745 ns/iter 0.88
Pointer_Push_Back_Pointer_To_Weak_Pointer 142.43291527659767 ns/iter 156.21797073410735 ns/iter 0.91
Pointer_Walker_Schema_ISO_Language 3492790.05025156 ns/iter 3184304.2772731096 ns/iter 1.10
Pointer_Maybe_Tracked_Deeply_Nested/0 1547274.4678491713 ns/iter 1384327.3735178825 ns/iter 1.12
Pointer_Maybe_Tracked_Deeply_Nested/1 1867368.1546667162 ns/iter 1795644.2148341225 ns/iter 1.04
Pointer_Position_Tracker_Get_Deeply_Nested 382.22345029556504 ns/iter 398.4950497534471 ns/iter 0.96
JSON_Array_Of_Objects_Unique 389.60673462243034 ns/iter 329.16844617066005 ns/iter 1.18
JSON_Parse_1 7888.657460238919 ns/iter 6928.481741335413 ns/iter 1.14
JSON_Parse_Real 12304.736066819205 ns/iter 11190.539138612814 ns/iter 1.10
JSON_Parse_Decimal 18498.330753843948 ns/iter 14746.400971795763 ns/iter 1.25
JSON_Parse_Schema_ISO_Language 4620312.8157892 ns/iter 4163036.263473183 ns/iter 1.11
JSON_Fast_Hash_Helm_Chart_Lock 62.223800726886196 ns/iter 44.97844076574463 ns/iter 1.38
JSON_Equality_Helm_Chart_Lock 164.23463369536643 ns/iter 140.05621573961412 ns/iter 1.17
JSON_Divisible_By_Decimal 242.37064744129927 ns/iter 250.03118200632778 ns/iter 0.97
JSON_String_Equal/10 6.310330286628345 ns/iter 5.870764804028273 ns/iter 1.07
JSON_String_Equal/100 6.938299744412262 ns/iter 7.024299140105989 ns/iter 0.99
JSON_String_Equal_Small_By_Perfect_Hash/10 0.623758217374984 ns/iter 0.8244784897060586 ns/iter 0.76
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 28.091033649188176 ns/iter 17.861828262628304 ns/iter 1.57
JSON_String_Fast_Hash/10 0.9347787734919565 ns/iter 1.1535732777499599 ns/iter 0.81
JSON_String_Fast_Hash/100 0.9335906872974766 ns/iter 1.1523443985787634 ns/iter 0.81
JSON_String_Key_Hash/10 1.5576304068016709 ns/iter 1.7293218359278621 ns/iter 0.90
JSON_String_Key_Hash/100 12.445286900259768 ns/iter 11.826753778539443 ns/iter 1.05
JSON_Object_Defines_Miss_Same_Length 3.4269422890169676 ns/iter 3.6109837208298576 ns/iter 0.95
JSON_Object_Defines_Miss_Too_Small 3.4244739788677836 ns/iter 3.0171931099763376 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Large 3.422210136495175 ns/iter 3.1814142292288747 ns/iter 1.08
Regex_Lower_S_Or_Upper_S_Asterisk 1.2465089984586337 ns/iter 1.4408451089307963 ns/iter 0.87
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.557892737474679 ns/iter 1.7324318330233441 ns/iter 0.90
Regex_Period_Asterisk 1.5570734158719277 ns/iter 1.7289721225208918 ns/iter 0.90
Regex_Group_Period_Asterisk_Group 1.5564061193912626 ns/iter 1.727445293299959 ns/iter 0.90
Regex_Period_Plus 1.557553481620618 ns/iter 1.7285734306583367 ns/iter 0.90
Regex_Period 1.5582154181637404 ns/iter 1.7280663544126813 ns/iter 0.90
Regex_Caret_Period_Plus_Dollar 1.562045149147917 ns/iter 1.728613642190244 ns/iter 0.90
Regex_Caret_Group_Period_Plus_Group_Dollar 1.5614919051624183 ns/iter 1.4397316305567311 ns/iter 1.08
Regex_Caret_Period_Asterisk_Dollar 1.5573476344403032 ns/iter 1.444619490804616 ns/iter 1.08
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.2457573062727407 ns/iter 1.4406377520138451 ns/iter 0.86
Regex_Caret_X_Hyphen 12.828813107344534 ns/iter 8.353717958410432 ns/iter 1.54
Regex_Period_Md_Dollar 31.895608427885527 ns/iter 23.669031263991343 ns/iter 1.35
Regex_Caret_Slash_Period_Asterisk 4.670722768506546 ns/iter 8.062953223256983 ns/iter 0.58
Regex_Caret_Period_Range_Dollar 1.5567988074052366 ns/iter 1.4405463919978956 ns/iter 1.08
Regex_Nested_Backtrack 53.27701289585232 ns/iter 40.334083465013265 ns/iter 1.32

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

Copy link
Copy Markdown

@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: eec6c42 Previous: e8df271 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.297536525532111 ns/iter 4.113334069844961 ns/iter 1.04
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.100843623394346 ns/iter 4.174961181170424 ns/iter 0.98
Regex_Period_Asterisk 4.419682846290044 ns/iter 4.4572606250000035 ns/iter 0.99
Regex_Group_Period_Asterisk_Group 4.128032775228783 ns/iter 4.317608569501423 ns/iter 0.96
Regex_Period_Plus 4.12192305619591 ns/iter 4.7389132599837405 ns/iter 0.87
Regex_Period 4.08608804301149 ns/iter 4.843154911794017 ns/iter 0.84
Regex_Caret_Period_Plus_Dollar 3.8007309985251507 ns/iter 4.669635658176523 ns/iter 0.81
Regex_Caret_Group_Period_Plus_Group_Dollar 3.774149993260621 ns/iter 4.502113404124762 ns/iter 0.84
Regex_Caret_Period_Asterisk_Dollar 4.091679203734707 ns/iter 4.160243124999852 ns/iter 0.98
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.096895623170904 ns/iter 4.217940543244205 ns/iter 0.97
Regex_Caret_X_Hyphen 7.573506249999338 ns/iter 7.496998883930977 ns/iter 1.01
Regex_Period_Md_Dollar 35.363937263190884 ns/iter 35.79372922460602 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 7.2336139999993065 ns/iter 7.1895747767872615 ns/iter 1.01
Regex_Caret_Period_Range_Dollar 4.086411882296042 ns/iter 4.1310529538064245 ns/iter 0.99
Regex_Nested_Backtrack 100.97485263504477 ns/iter 97.81822331172464 ns/iter 1.03
JSON_Array_Of_Objects_Unique 517.9829000001064 ns/iter 490.4375360254161 ns/iter 1.06
JSON_Parse_1 8175.222098214213 ns/iter 8646.121651787147 ns/iter 0.95
JSON_Parse_Real 15839.982142859453 ns/iter 15683.91484763861 ns/iter 1.01
JSON_Parse_Decimal 16306.936430381073 ns/iter 15668.38839286179 ns/iter 1.04
JSON_Parse_Schema_ISO_Language 5826784.99999929 ns/iter 5859958.0357119 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 71.20845982141942 ns/iter 58.909428571415184 ns/iter 1.21
JSON_Equality_Helm_Chart_Lock 257.9219624072571 ns/iter 257.63921428571325 ns/iter 1.00
JSON_Divisible_By_Decimal 257.8757499999743 ns/iter 247.2888034504111 ns/iter 1.04
JSON_String_Equal/10 12.288912500001256 ns/iter 12.765903571432448 ns/iter 0.96
JSON_String_Equal/100 13.01424642857033 ns/iter 13.20154821428332 ns/iter 0.99
JSON_String_Equal_Small_By_Perfect_Hash/10 1.883082144118153 ns/iter 1.933168930297144 ns/iter 0.97
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.561253124999894 ns/iter 13.137166071430784 ns/iter 0.96
JSON_String_Fast_Hash/10 3.782501243245513 ns/iter 3.346545005229111 ns/iter 1.13
JSON_String_Fast_Hash/100 3.807592493200637 ns/iter 3.1809924107152807 ns/iter 1.20
JSON_String_Key_Hash/10 4.089705989446493 ns/iter 4.748068122878356 ns/iter 0.86
JSON_String_Key_Hash/100 16.92123113668939 ns/iter 14.937957589294472 ns/iter 1.13
JSON_Object_Defines_Miss_Same_Length 5.130842000000939 ns/iter 5.308985000001485 ns/iter 0.97
JSON_Object_Defines_Miss_Too_Small 3.7730973146903803 ns/iter 3.8202040831141266 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Large 4.10167131696377 ns/iter 3.843213169642772 ns/iter 1.07
Pointer_Object_Traverse 43.41211933142075 ns/iter 43.216971265928905 ns/iter 1.00
Pointer_Object_Try_Traverse 49.971624999999776 ns/iter 53.62825000001976 ns/iter 0.93
Pointer_Push_Back_Pointer_To_Weak_Pointer 169.99131049049444 ns/iter 149.34864285716492 ns/iter 1.14
Pointer_Walker_Schema_ISO_Language 11474039.285713745 ns/iter 11830191.071429193 ns/iter 0.97
Pointer_Maybe_Tracked_Deeply_Nested/0 2131693.6454849285 ns/iter 2154936.363636449 ns/iter 0.99
Pointer_Maybe_Tracked_Deeply_Nested/1 3125795.535714206 ns/iter 3222743.19248802 ns/iter 0.97
Pointer_Position_Tracker_Get_Deeply_Nested 659.6050223213824 ns/iter 629.5209821424967 ns/iter 1.05
Schema_Frame_WoT_References 10197987.5000008 ns/iter 10241940.000002312 ns/iter 1.00
Schema_Frame_OMC_References 44775506.24999083 ns/iter 43514435.29410116 ns/iter 1.03
Schema_Frame_OMC_Locations 41262676.47059061 ns/iter 40931163.157893024 ns/iter 1.01
Schema_Frame_ISO_Language_Locations 197566766.66664436 ns/iter 187202124.9999989 ns/iter 1.06
Schema_Frame_KrakenD_References 93875285.71431045 ns/iter 86844577.77776009 ns/iter 1.08
Schema_Frame_KrakenD_Reachable 517079100.0000463 ns/iter 516400699.99984914 ns/iter 1.00
Schema_Iterator_ISO_Language 4986891.034482612 ns/iter 5163232.9999984 ns/iter 0.97
Schema_Frame_ISO_Language_Locations_To_JSON 292488599.999956 ns/iter 301098149.99991614 ns/iter 0.97
Schema_Tracker_ISO_Language 16581612.195123829 ns/iter 16120871.11111072 ns/iter 1.03
Schema_Tracker_ISO_Language_To_JSON 52055545.454550155 ns/iter 49286814.285713784 ns/iter 1.06
Schema_Format_ISO_Language_To_JSON 198843100.0000522 ns/iter 204792350.00004792 ns/iter 0.97
Schema_Bundle_Meta_2020_12 2954148.72882259 ns/iter 3172783.935747339 ns/iter 0.93
Schema_Frame_Many_Resources_References 1536754300.0002115 ns/iter 1572601800.0000296 ns/iter 0.98
Alterschema_Check_Readibility_ISO_Language_Set_3 324889699.9999715 ns/iter 340091699.9999026 ns/iter 0.96
Alterschema_Check_Readibility_OMC 61730790.9090786 ns/iter 67126209.09092948 ns/iter 0.92
Alterschema_Apply_Readibility_KrakenD 990154800.0000275 ns/iter 976775099.9999408 ns/iter 1.01
Alterschema_Check_Invalid_External_Refs 146375059.9999912 ns/iter 150981474.99998048 ns/iter 0.97
EditorSchema_ForEditor_EmbeddedResources 29654695.833291575 ns/iter 29669554.166673604 ns/iter 1.00
URITemplateRouter_Create 23095.034653627972 ns/iter 24808.93214284866 ns/iter 0.93
URITemplateRouter_Match 208.36112499999615 ns/iter 218.1242625837077 ns/iter 0.96
URITemplateRouter_Match_BasePath 241.53007142850973 ns/iter 255.36103571425886 ns/iter 0.95
URITemplateRouterView_Restore 32875.031250004635 ns/iter 30210.812499993674 ns/iter 1.09
URITemplateRouterView_Match 151.5432142857114 ns/iter 154.1038616071181 ns/iter 0.98
URITemplateRouterView_Match_BasePath 174.9425385006541 ns/iter 179.5935254192116 ns/iter 0.97
URITemplateRouterView_Arguments 447.33187500000327 ns/iter 463.18175517474776 ns/iter 0.97
HTML_Build_Table_100000 86010085.71427622 ns/iter 89899277.7777797 ns/iter 0.96
HTML_Render_Table_100000 7796141.111111864 ns/iter 7190076.666670899 ns/iter 1.08

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

@jviotti jviotti merged commit c91f056 into main Apr 8, 2026
13 checks passed
@jviotti jviotti deleted the router-context-id branch April 8, 2026 14:29
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.

1 participant