Introduce URI template router operation IDs#2375
Conversation
Signed-off-by: Juan Cruz Viotti <[email protected]>
Signed-off-by: Juan Cruz Viotti <[email protected]>
There was a problem hiding this comment.
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.
🤖 Augment PR SummarySummary: This PR introduces operation identifiers to the URI template router, enabling route lookup by a stable string ID in addition to path matching. Changes:
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 👎 |
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]>
There was a problem hiding this comment.
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]>
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
Signed-off-by: Juan Cruz Viotti [email protected]