Skip to content

Introduce URI template router operation IDs#2375

Merged
jviotti merged 7 commits into
mainfrom
operation-ids
May 12, 2026
Merged

Introduce URI template router operation IDs#2375
jviotti merged 7 commits into
mainfrom
operation-ids

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented May 12, 2026

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

Signed-off-by: Juan Cruz Viotti <[email protected]>
@jviotti jviotti marked this pull request as ready for review May 12, 2026 17:34
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.

2 issues found across 9 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/core/uritemplate/uritemplate_router.cc">

<violation number="1" location="src/core/uritemplate/uritemplate_router.cc:200">
P1: `add()` mutates `operations_` before fallible parsing, so failures leave stale operation-id entries and inconsistent router state.</violation>
</file>

<file name="src/core/uritemplate/uritemplate_router_view.cc">

<violation number="1" location="src/core/uritemplate/uritemplate_router_view.cc:794">
P2: Inconsistent and overly permissive `string_table_size` calculation. This should use `header->arguments_offset - header->string_table_offset` like all other methods, to properly validate that operation entry string offsets fall within the actual string table region.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread src/core/uritemplate/uritemplate_router.cc Outdated
Comment thread src/core/uritemplate/uritemplate_router_view.cc Outdated
@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented May 12, 2026

🤖 Augment PR Summary

Summary: This PR introduces operation identifiers to the URI template router, enabling route lookup by a stable string ID in addition to path matching.

Changes:

  • Extended URITemplateRouter::add to require an operation_id with a constrained format and global uniqueness.
  • Added router APIs to resolve an operation_id to (identifier, context) for both the in-memory router and the serialized view.
  • Introduced new error types for invalid and duplicate operation identifiers.
  • Updated benchmarks and unit tests to pass operation IDs and to validate operation ID rules and behavior.
  • Bumped the serialized router format to version 6 and added an operations section to the on-disk blob.
  • Refactored URITemplateRouterView to use FileView (IO module) for file-backed views instead of reading into a vector.

Technical Notes: The view now binary-searches a sorted operations table persisted in the serialized router blob; format version mismatches are treated as misses.

🤖 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. 4 suggestions posted.

Fix All in Augment

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

Comment thread src/core/uritemplate/uritemplate_router_view.cc
Comment thread src/core/uritemplate/uritemplate_router_view.cc Outdated
Comment thread src/core/uritemplate/uritemplate_router_view.cc Outdated
Comment thread src/core/uritemplate/uritemplate_router.cc Outdated
jviotti added 4 commits May 12, 2026 13:44
Signed-off-by: Juan Cruz Viotti <[email protected]>
Signed-off-by: Juan Cruz Viotti <[email protected]>
Signed-off-by: Juan Cruz Viotti <[email protected]>
Signed-off-by: Juan Cruz Viotti <[email protected]>
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: a1fa7d4 Previous: aa31480 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.4661817192812014 ns/iter 2.5217545100129333 ns/iter 0.98
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.4848243560374015 ns/iter 2.1782912133179866 ns/iter 1.14
Regex_Period_Asterisk 2.4637354389824737 ns/iter 2.490490454776221 ns/iter 0.99
Regex_Group_Period_Asterisk_Group 2.4627136837268266 ns/iter 2.1946210106491453 ns/iter 1.12
Regex_Period_Plus 3.867888417501312 ns/iter 2.8741634290277664 ns/iter 1.35
Regex_Period 2.8138229785934525 ns/iter 2.4911368362670503 ns/iter 1.13
Regex_Caret_Period_Plus_Dollar 2.4618860285583963 ns/iter 2.8029597931722137 ns/iter 0.88
Regex_Caret_Group_Period_Plus_Group_Dollar 2.814078684583213 ns/iter 2.4913702923489387 ns/iter 1.13
Regex_Caret_Period_Asterisk_Dollar 3.516111299044137 ns/iter 2.818443176969155 ns/iter 1.25
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.8675299850491522 ns/iter 2.494123041777233 ns/iter 1.55
Regex_Caret_X_Hyphen 7.032700035931606 ns/iter 7.1674062424986325 ns/iter 0.98
Regex_Period_Md_Dollar 26.639802616390597 ns/iter 27.48299740565185 ns/iter 0.97
Regex_Caret_Slash_Period_Asterisk 7.3826149783377275 ns/iter 7.471527647446679 ns/iter 0.99
Regex_Caret_Period_Range_Dollar 4.219987613424164 ns/iter 3.708109646772005 ns/iter 1.14
Regex_Nested_Backtrack 36.61380964597295 ns/iter 37.27199186302724 ns/iter 0.98
JSON_Array_Of_Objects_Unique 459.2744058203742 ns/iter 408.22714718821703 ns/iter 1.13
JSON_Parse_1 5755.983288710623 ns/iter 5876.991835262705 ns/iter 0.98
JSON_Parse_Real 10367.278486190495 ns/iter 10881.764830409567 ns/iter 0.95
JSON_Parse_Decimal 11808.291402212351 ns/iter 11042.18943022747 ns/iter 1.07
JSON_Parse_Schema_ISO_Language 3825989.5144510716 ns/iter 3625683.166666486 ns/iter 1.06
JSON_Fast_Hash_Helm_Chart_Lock 73.82106403273727 ns/iter 61.31347160153616 ns/iter 1.20
JSON_Equality_Helm_Chart_Lock 159.7087192044578 ns/iter 166.15488781395547 ns/iter 0.96
JSON_Divisible_By_Decimal 251.46614965618147 ns/iter 239.50175562967263 ns/iter 1.05
JSON_String_Equal/10 5.981311774832874 ns/iter 6.22966863041304 ns/iter 0.96
JSON_String_Equal/100 6.757111913889559 ns/iter 6.862273150717245 ns/iter 0.98
JSON_String_Equal_Small_By_Perfect_Hash/10 1.0593490056364294 ns/iter 0.9429507430545259 ns/iter 1.12
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.490064970108204 ns/iter 14.622364382308467 ns/iter 0.85
JSON_String_Fast_Hash/10 2.462813428943605 ns/iter 2.489221467162353 ns/iter 0.99
JSON_String_Fast_Hash/100 2.4615533162197973 ns/iter 2.489125653177753 ns/iter 0.99
JSON_String_Key_Hash/10 2.4723730764377327 ns/iter 2.7002299133640846 ns/iter 0.92
JSON_String_Key_Hash/100 8.085764071226533 ns/iter 9.024087226619635 ns/iter 0.90
JSON_Object_Defines_Miss_Same_Length 4.219691854643015 ns/iter 3.738180915142287 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Small 4.2310391903216376 ns/iter 3.7374341689244286 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Large 4.225886529231072 ns/iter 3.7383573624780153 ns/iter 1.13
Pointer_Object_Traverse 27.164726255337204 ns/iter 24.389295277639533 ns/iter 1.11
Pointer_Object_Try_Traverse 30.16506614733454 ns/iter 26.145361597366897 ns/iter 1.15
Pointer_Push_Back_Pointer_To_Weak_Pointer 197.49186599336065 ns/iter 226.26514178222752 ns/iter 0.87
Pointer_Walker_Schema_ISO_Language 3181969.5545452344 ns/iter 3012669.995708111 ns/iter 1.06
Pointer_Maybe_Tracked_Deeply_Nested/0 1389322.5996055426 ns/iter 1425455.9190872612 ns/iter 0.97
Pointer_Maybe_Tracked_Deeply_Nested/1 1725921.7536945085 ns/iter 1926570.08264448 ns/iter 0.90
Pointer_Position_Tracker_Get_Deeply_Nested 694.1255877488313 ns/iter 670.3921891574181 ns/iter 1.04
Schema_Frame_WoT_References 5292611.407079538 ns/iter 5200478.896296301 ns/iter 1.02
Schema_Frame_OMC_References 22603931.935486067 ns/iter 21253983.999999393 ns/iter 1.06
Schema_Frame_OMC_Locations 20572763.90908927 ns/iter 19953342.583335143 ns/iter 1.03
Schema_Frame_ISO_Language_Locations 104071532.3333264 ns/iter 98388457.66667722 ns/iter 1.06
Schema_Frame_KrakenD_References 43785216.374999434 ns/iter 38477470.55555651 ns/iter 1.14
Schema_Frame_KrakenD_Reachable 631676298.0000021 ns/iter 566400487.0000099 ns/iter 1.12
Schema_Iterator_ISO_Language 3157019.09589028 ns/iter 2975758.699152474 ns/iter 1.06
Schema_Frame_ISO_Language_Locations_To_JSON 110210230.50000167 ns/iter 110795617.19998309 ns/iter 0.99
Schema_Tracker_ISO_Language 4697264.302013695 ns/iter 4565529.686274678 ns/iter 1.03
Schema_Tracker_ISO_Language_To_JSON 18188295.236843478 ns/iter 18702525.342103183 ns/iter 0.97
Schema_Format_ISO_Language_To_JSON 114197790.83331604 ns/iter 105291552.50001545 ns/iter 1.08
Schema_Bundle_Meta_2020_12 1681449.2153119307 ns/iter 1703134.9756113808 ns/iter 0.99
Schema_Frame_Many_Resources_References 384187080.4999985 ns/iter 373785875.99999946 ns/iter 1.03
EditorSchema_ForEditor_EmbeddedResources 14066234.419999547 ns/iter 13838670.843127005 ns/iter 1.02
URITemplateRouter_Create 30580.59223511087 ns/iter 19638.79936332207 ns/iter 1.56
URITemplateRouter_Match 187.4093465950796 ns/iter 166.3946385579475 ns/iter 1.13
URITemplateRouter_Match_BasePath 206.11303104174448 ns/iter 199.86858297586494 ns/iter 1.03
URITemplateRouterView_Restore 8722.447763193477 ns/iter 5146.725812866753 ns/iter 1.69
URITemplateRouterView_Match 143.58242378399 ns/iter 159.83901192075965 ns/iter 0.90
URITemplateRouterView_Match_BasePath 162.86601318504972 ns/iter 180.1372330606668 ns/iter 0.90
URITemplateRouterView_Arguments 484.5300753706088 ns/iter 478.99905386469237 ns/iter 1.01
JSONL_Parse_Large 10117109.855072606 ns/iter 10864703.21875055 ns/iter 0.93
JSONL_Parse_Large_GZIP 11428900.836065503 ns/iter 12080338.120689515 ns/iter 0.95
HTML_Build_Table_100000 90313348.62500273 ns/iter 63847465.545460515 ns/iter 1.41
HTML_Render_Table_100000 5029632.788321173 ns/iter 5418501.434108702 ns/iter 0.93

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

Signed-off-by: Juan Cruz Viotti <[email protected]>
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: a1fa7d4 Previous: aa31480 Ratio
HTML_Build_Table_100000 60197254.833326496 ns/iter 62076992.090913504 ns/iter 0.97
HTML_Render_Table_100000 4989306.709219831 ns/iter 5227585.293232209 ns/iter 0.95
JSONL_Parse_Large 11824621.118644938 ns/iter 12995261.90740818 ns/iter 0.91
JSONL_Parse_Large_GZIP 12934778.629629465 ns/iter 14156110.20000142 ns/iter 0.91
URITemplateRouter_Create 28806.596058510386 ns/iter 18493.831114264216 ns/iter 1.56
URITemplateRouter_Match 165.7665956671624 ns/iter 166.87264718097438 ns/iter 0.99
URITemplateRouter_Match_BasePath 192.08217290893643 ns/iter 191.34088584464715 ns/iter 1.00
URITemplateRouterView_Restore 7126.249614975982 ns/iter 6663.733402242017 ns/iter 1.07
URITemplateRouterView_Match 124.40251248839276 ns/iter 132.93957777517647 ns/iter 0.94
URITemplateRouterView_Match_BasePath 145.1457351376438 ns/iter 154.32231933256185 ns/iter 0.94
URITemplateRouterView_Arguments 453.9857393938096 ns/iter 451.80049140517946 ns/iter 1.00
EditorSchema_ForEditor_EmbeddedResources 12861284.272705896 ns/iter 13847417.999988252 ns/iter 0.93
Schema_Frame_WoT_References 4926366.183097562 ns/iter 5316420.863636901 ns/iter 0.93
Schema_Frame_OMC_References 20038486.914284345 ns/iter 21686635.87499964 ns/iter 0.92
Schema_Frame_OMC_Locations 18678827.07894727 ns/iter 20162603.882353965 ns/iter 0.93
Schema_Frame_ISO_Language_Locations 91166466.28571548 ns/iter 99088651.85713825 ns/iter 0.92
Schema_Frame_KrakenD_References 36228237.94736225 ns/iter 38589410.38889599 ns/iter 0.94
Schema_Frame_KrakenD_Reachable 474699559.49998164 ns/iter 512693123.0001901 ns/iter 0.93
Schema_Iterator_ISO_Language 3026906.7068963037 ns/iter 3260963.339534799 ns/iter 0.93
Schema_Frame_ISO_Language_Locations_To_JSON 198883213.00004464 ns/iter 211307052.33334386 ns/iter 0.94
Schema_Tracker_ISO_Language 4250994.060606845 ns/iter 4687735.460000415 ns/iter 0.91
Schema_Tracker_ISO_Language_To_JSON 20514058.294117924 ns/iter 23269896.366673492 ns/iter 0.88
Schema_Format_ISO_Language_To_JSON 97746063.85713014 ns/iter 105924097.57142767 ns/iter 0.92
Schema_Bundle_Meta_2020_12 1659696.4410350323 ns/iter 1787476.8061214664 ns/iter 0.93
Schema_Frame_Many_Resources_References 342221574.50005853 ns/iter 370352494.5000254 ns/iter 0.92
Pointer_Object_Traverse 25.588533657408185 ns/iter 26.145422873881078 ns/iter 0.98
Pointer_Object_Try_Traverse 21.459144396625913 ns/iter 20.002499761024247 ns/iter 1.07
Pointer_Push_Back_Pointer_To_Weak_Pointer 151.29790328144045 ns/iter 153.3023296416759 ns/iter 0.99
Pointer_Walker_Schema_ISO_Language 3024037.284483217 ns/iter 3329146.4218008174 ns/iter 0.91
Pointer_Maybe_Tracked_Deeply_Nested/0 1452914.3762991645 ns/iter 1569539.0588232602 ns/iter 0.93
Pointer_Maybe_Tracked_Deeply_Nested/1 1634259.170960369 ns/iter 1767360.6565653465 ns/iter 0.92
Pointer_Position_Tracker_Get_Deeply_Nested 373.7562091869862 ns/iter 423.1469427891711 ns/iter 0.88
JSON_Array_Of_Objects_Unique 390.0510966095004 ns/iter 405.94485120365954 ns/iter 0.96
JSON_Parse_1 7356.026913337095 ns/iter 7940.193687636868 ns/iter 0.93
JSON_Parse_Real 11517.880905576425 ns/iter 12157.891230571218 ns/iter 0.95
JSON_Parse_Decimal 16636.283804813822 ns/iter 18152.123739163027 ns/iter 0.92
JSON_Parse_Schema_ISO_Language 4354575.098764817 ns/iter 4693118.913332909 ns/iter 0.93
JSON_Fast_Hash_Helm_Chart_Lock 63.18928334777983 ns/iter 72.20598581611483 ns/iter 0.88
JSON_Equality_Helm_Chart_Lock 162.47992384130433 ns/iter 169.14186019448428 ns/iter 0.96
JSON_Divisible_By_Decimal 221.2148459278995 ns/iter 235.25547902104515 ns/iter 0.94
JSON_String_Equal/10 6.433183227919576 ns/iter 6.622663442149829 ns/iter 0.97
JSON_String_Equal/100 7.0681362239324645 ns/iter 7.340961522420095 ns/iter 0.96
JSON_String_Equal_Small_By_Perfect_Hash/10 0.5786619822779439 ns/iter 0.623453345829302 ns/iter 0.93
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 23.263066055480284 ns/iter 25.206260402620416 ns/iter 0.92
JSON_String_Fast_Hash/10 0.8663837523846805 ns/iter 0.9340769722291686 ns/iter 0.93
JSON_String_Fast_Hash/100 0.8687664517726731 ns/iter 0.9338983857744297 ns/iter 0.93
JSON_String_Key_Hash/10 1.442647966250166 ns/iter 1.5576267094341456 ns/iter 0.93
JSON_String_Key_Hash/100 11.530143801798049 ns/iter 12.441505236827709 ns/iter 0.93
JSON_Object_Defines_Miss_Same_Length 3.330981682260919 ns/iter 3.4234876412966555 ns/iter 0.97
JSON_Object_Defines_Miss_Too_Small 2.876639947253445 ns/iter 3.7474000771822946 ns/iter 0.77
JSON_Object_Defines_Miss_Too_Large 3.4533079827620172 ns/iter 3.11203806849862 ns/iter 1.11
Regex_Lower_S_Or_Upper_S_Asterisk 0.8626711833008264 ns/iter 0.9342230515920465 ns/iter 0.92
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.8672354512154208 ns/iter 0.9338739001403591 ns/iter 0.93
Regex_Period_Asterisk 0.5754257028721338 ns/iter 0.6225528489324105 ns/iter 0.92
Regex_Group_Period_Asterisk_Group 0.575608767282439 ns/iter 0.6224784091161983 ns/iter 0.92
Regex_Period_Plus 0.8662858463553934 ns/iter 0.9340502848452393 ns/iter 0.93
Regex_Period 0.8674852008390941 ns/iter 0.9340121559596286 ns/iter 0.93
Regex_Caret_Period_Plus_Dollar 0.5759981455772931 ns/iter 0.6229918981938956 ns/iter 0.92
Regex_Caret_Group_Period_Plus_Group_Dollar 0.5747366045511596 ns/iter 0.6231058189104475 ns/iter 0.92
Regex_Caret_Period_Asterisk_Dollar 0.8643331217877351 ns/iter 0.9350419301940197 ns/iter 0.92
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.8678414528607106 ns/iter 0.9340435244822429 ns/iter 0.93
Regex_Caret_X_Hyphen 4.036977219131794 ns/iter 4.3625129493667485 ns/iter 0.93
Regex_Period_Md_Dollar 25.309466330121968 ns/iter 29.790067016693346 ns/iter 0.85
Regex_Caret_Slash_Period_Asterisk 4.027224853059128 ns/iter 4.358401366531148 ns/iter 0.92
Regex_Caret_Period_Range_Dollar 0.870510055149732 ns/iter 0.9341048725951162 ns/iter 0.93
Regex_Nested_Backtrack 33.44391317019647 ns/iter 38.190702467344494 ns/iter 0.88

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: a1fa7d4 Previous: aa31480 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 8.828275407014004 ns/iter 7.513503348215116 ns/iter 1.17
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 8.828930317727215 ns/iter 7.533984821427404 ns/iter 1.17
Regex_Period_Asterisk 8.824053978462334 ns/iter 7.5061986607164295 ns/iter 1.18
Regex_Group_Period_Asterisk_Group 8.855217817609875 ns/iter 7.502420758930738 ns/iter 1.18
Regex_Period_Plus 11.28890624999812 ns/iter 9.682828081775313 ns/iter 1.17
Regex_Period 11.2807703124993 ns/iter 9.666265135418497 ns/iter 1.17
Regex_Caret_Period_Plus_Dollar 11.300375842408346 ns/iter 9.679161117502133 ns/iter 1.17
Regex_Caret_Group_Period_Plus_Group_Dollar 11.37671428571301 ns/iter 9.692839062498848 ns/iter 1.17
Regex_Caret_Period_Asterisk_Dollar 8.822840585613367 ns/iter 7.505017857142145 ns/iter 1.18
Regex_Caret_Group_Period_Asterisk_Group_Dollar 8.88502228176311 ns/iter 7.505939732142609 ns/iter 1.18
Regex_Caret_X_Hyphen 13.813886991900995 ns/iter 11.882835937498726 ns/iter 1.16
Regex_Period_Md_Dollar 40.804037499995616 ns/iter 38.02880041498606 ns/iter 1.07
Regex_Caret_Slash_Period_Asterisk 13.101387500000783 ns/iter 11.505335937499694 ns/iter 1.14
Regex_Caret_Period_Range_Dollar 11.285151562500317 ns/iter 9.684987010335306 ns/iter 1.17
Regex_Nested_Backtrack 53.0120800000077 ns/iter 47.638516198838424 ns/iter 1.11
JSON_Array_Of_Objects_Unique 489.1257790654806 ns/iter 492.9571999998643 ns/iter 0.99
JSON_Parse_1 7540.3359375008395 ns/iter 7986.433035713146 ns/iter 0.94
JSON_Parse_Real 13861.34035116213 ns/iter 16017.880030446033 ns/iter 0.87
JSON_Parse_Decimal 15228.062499999289 ns/iter 15739.267857140607 ns/iter 0.97
JSON_Parse_Schema_ISO_Language 6299139.285713652 ns/iter 6032294.999999976 ns/iter 1.04
JSON_Fast_Hash_Helm_Chart_Lock 61.993783482147286 ns/iter 72.13119419644849 ns/iter 0.86
JSON_Equality_Helm_Chart_Lock 285.3759391321514 ns/iter 251.57796428572965 ns/iter 1.13
JSON_Divisible_By_Decimal 255.9487499999997 ns/iter 246.79803571432655 ns/iter 1.04
JSON_String_Equal/10 11.690589062499868 ns/iter 12.603370312497475 ns/iter 0.93
JSON_String_Equal/100 13.118383870007413 ns/iter 13.398324047329421 ns/iter 0.98
JSON_String_Equal_Small_By_Perfect_Hash/10 2.122505312500067 ns/iter 2.2103868750001254 ns/iter 0.96
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 11.888083928572055 ns/iter 13.002899999999531 ns/iter 0.91
JSON_String_Fast_Hash/10 3.5369940115414464 ns/iter 4.173196168167352 ns/iter 0.85
JSON_String_Fast_Hash/100 3.5325201953731566 ns/iter 4.094351562498996 ns/iter 0.86
JSON_String_Key_Hash/10 3.9017571358905063 ns/iter 4.12328893593483 ns/iter 0.95
JSON_String_Key_Hash/100 17.28803448244332 ns/iter 14.472542346104978 ns/iter 1.19
JSON_Object_Defines_Miss_Same_Length 5.012598999999227 ns/iter 3.7875909598218884 ns/iter 1.32
JSON_Object_Defines_Miss_Too_Small 3.8726365161278675 ns/iter 3.790137850374028 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Large 3.8477078502713122 ns/iter 3.7801891003927333 ns/iter 1.02
Pointer_Object_Traverse 43.49705919985476 ns/iter 42.347745165566366 ns/iter 1.03
Pointer_Object_Try_Traverse 53.11091964285555 ns/iter 49.66693999999734 ns/iter 1.07
Pointer_Push_Back_Pointer_To_Weak_Pointer 164.3465668089282 ns/iter 159.09348214283423 ns/iter 1.03
Pointer_Walker_Schema_ISO_Language 12381819.642858515 ns/iter 11761767.187500993 ns/iter 1.05
Pointer_Maybe_Tracked_Deeply_Nested/0 2074525.7142859178 ns/iter 2034267.8571426272 ns/iter 1.02
Pointer_Maybe_Tracked_Deeply_Nested/1 3067794.1964287115 ns/iter 3134929.46428592 ns/iter 0.98
Pointer_Position_Tracker_Get_Deeply_Nested 649.0743744057212 ns/iter 583.5150669642226 ns/iter 1.11
Schema_Frame_WoT_References 10171401.562498517 ns/iter 9828338.666666241 ns/iter 1.03
Schema_Frame_OMC_References 44055393.333337635 ns/iter 43917276.470585205 ns/iter 1.00
Schema_Frame_OMC_Locations 41305758.82352199 ns/iter 39821355.55555841 ns/iter 1.04
Schema_Frame_ISO_Language_Locations 204808466.66669095 ns/iter 200493199.9999826 ns/iter 1.02
Schema_Frame_KrakenD_References 92944028.57143983 ns/iter 89342728.57144216 ns/iter 1.04
Schema_Frame_KrakenD_Reachable 527791799.99970436 ns/iter 540853499.9999119 ns/iter 0.98
Schema_Iterator_ISO_Language 6607681.250000854 ns/iter 6481508.928573021 ns/iter 1.02
Schema_Frame_ISO_Language_Locations_To_JSON 302430899.9999903 ns/iter 293664149.99992687 ns/iter 1.03
Schema_Tracker_ISO_Language 9724658.666667286 ns/iter 9954014.666667111 ns/iter 0.98
Schema_Tracker_ISO_Language_To_JSON 50177681.81817866 ns/iter 49482781.8181627 ns/iter 1.01
Schema_Format_ISO_Language_To_JSON 203692233.33333746 ns/iter 193312633.3333348 ns/iter 1.05
Schema_Bundle_Meta_2020_12 2822472.033894921 ns/iter 2905938.983040692 ns/iter 0.97
Schema_Frame_Many_Resources_References 1477989700.00008 ns/iter 1500406799.999837 ns/iter 0.99
EditorSchema_ForEditor_EmbeddedResources 30337290.909125675 ns/iter 28296280.000004116 ns/iter 1.07
URITemplateRouter_Create 36445.09189854953 ns/iter 25276.832142854542 ns/iter 1.44
URITemplateRouter_Match 218.8343749999433 ns/iter 211.48860439784383 ns/iter 1.03
URITemplateRouter_Match_BasePath 255.87678571428438 ns/iter 247.689447802539 ns/iter 1.03
URITemplateRouterView_Restore 23309.746543001103 ns/iter 31251.460179065332 ns/iter 0.75
URITemplateRouterView_Match 152.21767857142814 ns/iter 162.77252232142254 ns/iter 0.94
URITemplateRouterView_Match_BasePath 175.7879085525238 ns/iter 192.1011646496372 ns/iter 0.92
URITemplateRouterView_Arguments 444.3354858922248 ns/iter 447.36047838232673 ns/iter 0.99
JSONL_Parse_Large 27698707.69231357 ns/iter 28302960.000000898 ns/iter 0.98
JSONL_Parse_Large_GZIP 27354611.53846385 ns/iter 28088452.000001777 ns/iter 0.97
HTML_Build_Table_100000 91521199.99998832 ns/iter 88427785.71429984 ns/iter 1.03
HTML_Render_Table_100000 8080093.333332014 ns/iter 7914211.111112005 ns/iter 1.02

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: a1fa7d4 Previous: aa31480 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.306975946788408 ns/iter 2.265589839208304 ns/iter 1.02
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.0666524648425315 ns/iter 2.2434615064086625 ns/iter 0.92
Regex_Period_Asterisk 2.3014755137224796 ns/iter 2.3162434995208177 ns/iter 0.99
Regex_Group_Period_Asterisk_Group 2.125181951675604 ns/iter 2.048947371984022 ns/iter 1.04
Regex_Period_Plus 3.2193820627705856 ns/iter 2.4162927476442135 ns/iter 1.33
Regex_Period 3.0946735651074713 ns/iter 2.257637196827813 ns/iter 1.37
Regex_Caret_Period_Plus_Dollar 3.1643734931384575 ns/iter 2.7148266802159835 ns/iter 1.17
Regex_Caret_Group_Period_Plus_Group_Dollar 2.882962786898195 ns/iter 2.832473262459372 ns/iter 1.02
Regex_Caret_Period_Asterisk_Dollar 2.435761584082222 ns/iter 2.2755841036504227 ns/iter 1.07
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.529050737921184 ns/iter 1.9330021237846855 ns/iter 1.31
Regex_Caret_X_Hyphen 9.868507310444514 ns/iter 7.352339033078271 ns/iter 1.34
Regex_Period_Md_Dollar 27.775491665634828 ns/iter 19.737438493726188 ns/iter 1.41
Regex_Caret_Slash_Period_Asterisk 9.106006127630128 ns/iter 5.542189225495103 ns/iter 1.64
Regex_Caret_Period_Range_Dollar 2.1715839510930706 ns/iter 1.7029659325033328 ns/iter 1.28
Regex_Nested_Backtrack 33.43835602987797 ns/iter 27.07526181720531 ns/iter 1.24
JSON_Array_Of_Objects_Unique 517.8220026704821 ns/iter 395.71723158374334 ns/iter 1.31
JSON_Parse_1 6434.245168443279 ns/iter 4808.308420945856 ns/iter 1.34
JSON_Parse_Real 8984.367473962482 ns/iter 7330.947905355502 ns/iter 1.23
JSON_Parse_Decimal 12111.187404763517 ns/iter 9200.98698237408 ns/iter 1.32
JSON_Parse_Schema_ISO_Language 7093254.055556979 ns/iter 5766503.31858363 ns/iter 1.23
JSON_Fast_Hash_Helm_Chart_Lock 87.4305049484947 ns/iter 77.89462405227125 ns/iter 1.12
JSON_Equality_Helm_Chart_Lock 183.20083868776072 ns/iter 167.76712738909725 ns/iter 1.09
JSON_Divisible_By_Decimal 338.4618795163334 ns/iter 221.7925969522987 ns/iter 1.53
JSON_String_Equal/10 10.376822341965644 ns/iter 7.156069869572806 ns/iter 1.45
JSON_String_Equal/100 10.450946424301783 ns/iter 7.88376052302353 ns/iter 1.33
JSON_String_Equal_Small_By_Perfect_Hash/10 1.115489559465967 ns/iter 0.8908259404840778 ns/iter 1.25
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 5.598340334471776 ns/iter 3.8705313208905947 ns/iter 1.45
JSON_String_Fast_Hash/10 3.2796289996756074 ns/iter 2.5769210828739992 ns/iter 1.27
JSON_String_Fast_Hash/100 3.031572687056662 ns/iter 2.4434111426013847 ns/iter 1.24
JSON_String_Key_Hash/10 2.0098596401364843 ns/iter 1.5427717332229163 ns/iter 1.30
JSON_String_Key_Hash/100 3.0446931344166748 ns/iter 2.766538884840435 ns/iter 1.10
JSON_Object_Defines_Miss_Same_Length 2.894512029292466 ns/iter 3.0826079089916454 ns/iter 0.94
JSON_Object_Defines_Miss_Too_Small 3.5757974116034075 ns/iter 3.1117405688815665 ns/iter 1.15
JSON_Object_Defines_Miss_Too_Large 2.64911835854819 ns/iter 2.825187331900302 ns/iter 0.94
Pointer_Object_Traverse 15.091873406257298 ns/iter 17.201060967685045 ns/iter 0.88
Pointer_Object_Try_Traverse 19.066958341918323 ns/iter 23.71768946139601 ns/iter 0.80
Pointer_Push_Back_Pointer_To_Weak_Pointer 154.51865003210932 ns/iter 191.15101111476872 ns/iter 0.81
Pointer_Walker_Schema_ISO_Language 4344670.242858228 ns/iter 6157159.429751704 ns/iter 0.71
Pointer_Maybe_Tracked_Deeply_Nested/0 1055395.0600001372 ns/iter 1337919.5882349014 ns/iter 0.79
Pointer_Maybe_Tracked_Deeply_Nested/1 1364828.627777536 ns/iter 1606714.3197832173 ns/iter 0.85
Pointer_Position_Tracker_Get_Deeply_Nested 362.4991443711093 ns/iter 466.8253169528347 ns/iter 0.78
Schema_Frame_WoT_References 5223154.164286826 ns/iter 6111432.919999516 ns/iter 0.85
Schema_Frame_OMC_References 37611388.916673146 ns/iter 39096827.38095571 ns/iter 0.96
Schema_Frame_OMC_Locations 29313246.80769019 ns/iter 31731105.086958885 ns/iter 0.92
Schema_Frame_ISO_Language_Locations 102876861.16665404 ns/iter 120947548.49999845 ns/iter 0.85
Schema_Frame_KrakenD_References 53790951.923089705 ns/iter 71306742.3636279 ns/iter 0.75
Schema_Frame_KrakenD_Reachable 502141812.5000991 ns/iter 571977290.9999392 ns/iter 0.88
Schema_Iterator_ISO_Language 4341584.005405329 ns/iter 3073728.1845489037 ns/iter 1.41
Schema_Frame_ISO_Language_Locations_To_JSON 141846458.24997234 ns/iter 112378041.60000451 ns/iter 1.26
Schema_Tracker_ISO_Language 7808637.892857123 ns/iter 6801627.525251803 ns/iter 1.15
Schema_Tracker_ISO_Language_To_JSON 20614477.843743373 ns/iter 21285871.794869028 ns/iter 0.97
Schema_Format_ISO_Language_To_JSON 96552720.4285276 ns/iter 91113958.37499003 ns/iter 1.06
Schema_Bundle_Meta_2020_12 1653430.100470738 ns/iter 1654844.7367169294 ns/iter 1.00
Schema_Frame_Many_Resources_References 449764541.50003064 ns/iter 358106000.0000207 ns/iter 1.26
EditorSchema_ForEditor_EmbeddedResources 19589395.818177927 ns/iter 15928861.327252392 ns/iter 1.23
URITemplateRouter_Create 40792.90692020255 ns/iter 20916.789351205985 ns/iter 1.95
URITemplateRouter_Match 240.5035884065174 ns/iter 259.652997590961 ns/iter 0.93
URITemplateRouter_Match_BasePath 272.60985610960887 ns/iter 246.4663014776719 ns/iter 1.11
URITemplateRouterView_Restore 17154.431845892217 ns/iter 18838.675124207108 ns/iter 0.91
URITemplateRouterView_Match 185.0925365592916 ns/iter 149.67837132434587 ns/iter 1.24
URITemplateRouterView_Match_BasePath 250.03788203125816 ns/iter 170.75687758527653 ns/iter 1.46
URITemplateRouterView_Arguments 687.238788706197 ns/iter 455.7308406366344 ns/iter 1.51
JSONL_Parse_Large 27451591.657141503 ns/iter 14611656.789473895 ns/iter 1.88
JSONL_Parse_Large_GZIP 23051084.758623708 ns/iter 17112222.56097621 ns/iter 1.35
HTML_Build_Table_100000 96922190.42855348 ns/iter 72692574.11111438 ns/iter 1.33
HTML_Render_Table_100000 6986855.83185893 ns/iter 4358296.87499958 ns/iter 1.60

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

@jviotti jviotti merged commit ce85e61 into main May 12, 2026
13 checks passed
@jviotti jviotti deleted the operation-ids branch May 12, 2026 19:13
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