Add a URITemplate::is_uritemplate static method#2382
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR adds a fast validation API for RFC 6570 URI Templates. Changes:
Technical Notes: The validation path reuses the existing parser logic, ensuring consistent rules while avoiding allocations for token vectors. 🤖 Was this summary useful? React with 👍 or 👎 |
| tokens.emplace_back(std::move(result->first)); | ||
| remaining.remove_prefix(result->second); | ||
| offset += result->second; | ||
| std::vector<URITemplateToken> *tokens) -> bool { |
There was a problem hiding this comment.
src/core/uritemplate/uritemplate.cc:13: When instantiated with CheckOnly=true, the tokens parameter becomes unused due to the if constexpr branch, and this repo enables -Wunused-parameter, so this will likely produce a compiler warning. The same unused-parameter pattern also shows up in the check-only instantiations at the other locations listed below.
Severity: low
Other Locations
src/core/uritemplate/uritemplate.cc:31src/core/uritemplate/helpers.h:183
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: b0c7fee | Previous: e774d05 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.499449887934953 ns/iter |
2.4947268985611415 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.1928035894095848 ns/iter |
2.1782202441127523 ns/iter |
1.01 |
Regex_Period_Asterisk |
2.502460766259149 ns/iter |
2.4896992912172973 ns/iter |
1.01 |
Regex_Group_Period_Asterisk_Group |
2.1935522942672696 ns/iter |
2.1911645934035326 ns/iter |
1.00 |
Regex_Period_Plus |
3.1176978748331394 ns/iter |
3.1143148592615684 ns/iter |
1.00 |
Regex_Period |
2.769252395443177 ns/iter |
2.801440984889888 ns/iter |
0.99 |
Regex_Caret_Period_Plus_Dollar |
2.8040409522941965 ns/iter |
3.113346749804408 ns/iter |
0.90 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.5155639259115716 ns/iter |
2.800812866633846 ns/iter |
0.90 |
Regex_Caret_Period_Asterisk_Dollar |
2.8022704285979017 ns/iter |
2.499588167108227 ns/iter |
1.12 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.321941169137641 ns/iter |
2.1797248307470705 ns/iter |
1.07 |
Regex_Caret_X_Hyphen |
6.277039264136677 ns/iter |
6.851146283299355 ns/iter |
0.92 |
Regex_Period_Md_Dollar |
28.00667496859661 ns/iter |
27.44882302935245 ns/iter |
1.02 |
Regex_Caret_Slash_Period_Asterisk |
6.556371795977785 ns/iter |
6.537660606716677 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
3.746214816814034 ns/iter |
3.7355570207243556 ns/iter |
1.00 |
Regex_Nested_Backtrack |
37.21443993147538 ns/iter |
37.099636226243035 ns/iter |
1.00 |
JSON_Array_Of_Objects_Unique |
484.6260586328954 ns/iter |
484.8131950156579 ns/iter |
1.00 |
JSON_Parse_1 |
5764.541868205482 ns/iter |
5733.7139967239345 ns/iter |
1.01 |
JSON_Parse_Real |
10835.071681250281 ns/iter |
10766.665874950246 ns/iter |
1.01 |
JSON_Parse_Decimal |
11062.343166453953 ns/iter |
10996.17076122525 ns/iter |
1.01 |
JSON_Parse_Schema_ISO_Language |
3601850.246153705 ns/iter |
3585623.7948722155 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
66.03435189011982 ns/iter |
70.09716732878368 ns/iter |
0.94 |
JSON_Equality_Helm_Chart_Lock |
169.5823576386423 ns/iter |
156.04440711185111 ns/iter |
1.09 |
JSON_Divisible_By_Decimal |
248.42128971118663 ns/iter |
248.42906153861603 ns/iter |
1.00 |
JSON_String_Equal/10 |
5.923446074032092 ns/iter |
5.923567969997356 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.558651013556824 ns/iter |
6.556729360256251 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9357347018218893 ns/iter |
0.9351843033726551 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
10.274191141167483 ns/iter |
14.618500568072987 ns/iter |
0.70 |
JSON_String_Fast_Hash/10 |
2.803446775032875 ns/iter |
2.8026411739485457 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.8024635417154045 ns/iter |
2.801868086993211 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
2.182528669591399 ns/iter |
2.578318310138872 ns/iter |
0.85 |
JSON_String_Key_Hash/100 |
6.537003711085748 ns/iter |
9.041138372888748 ns/iter |
0.72 |
JSON_Object_Defines_Miss_Same_Length |
3.7397924072992375 ns/iter |
3.7423736836590904 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.742083210751714 ns/iter |
3.7407097942641765 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.7409116434808913 ns/iter |
3.7402717905401275 ns/iter |
1.00 |
Pointer_Object_Traverse |
23.965086714729004 ns/iter |
23.942435209594965 ns/iter |
1.00 |
Pointer_Object_Try_Traverse |
27.90032361701504 ns/iter |
27.903535696423592 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
177.4196015375056 ns/iter |
191.17549814235372 ns/iter |
0.93 |
Pointer_Walker_Schema_ISO_Language |
3048303.2025864334 ns/iter |
2995579.038298139 ns/iter |
1.02 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1504910.6531051178 ns/iter |
1478736.5711206465 ns/iter |
1.02 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1943614.0886426833 ns/iter |
1938310.5386742696 ns/iter |
1.00 |
Pointer_Position_Tracker_Get_Deeply_Nested |
623.9689994002041 ns/iter |
638.6339879656172 ns/iter |
0.98 |
Schema_Frame_WoT_References |
5287223.563909823 ns/iter |
5171085.751880284 ns/iter |
1.02 |
Schema_Frame_OMC_References |
21585816.878789708 ns/iter |
21436383.48484549 ns/iter |
1.01 |
Schema_Frame_OMC_Locations |
19928006.142858326 ns/iter |
19685222.342851765 ns/iter |
1.01 |
Schema_Frame_ISO_Language_Locations |
101673330.5000154 ns/iter |
102429351.3333608 ns/iter |
0.99 |
Schema_Frame_KrakenD_References |
40363764.9999984 ns/iter |
42173872.58824387 ns/iter |
0.96 |
Schema_Frame_KrakenD_Reachable |
584882378.9999642 ns/iter |
578982469.0000387 ns/iter |
1.01 |
Schema_Iterator_ISO_Language |
3048902.1140354318 ns/iter |
3002425.217948615 ns/iter |
1.02 |
Schema_Frame_ISO_Language_Locations_To_JSON |
111540193.59998985 ns/iter |
107236717.80001496 ns/iter |
1.04 |
Schema_Tracker_ISO_Language |
4867548.411347349 ns/iter |
4868995.590277968 ns/iter |
1.00 |
Schema_Tracker_ISO_Language_To_JSON |
19663434.805554263 ns/iter |
19440882.47222453 ns/iter |
1.01 |
Schema_Format_ISO_Language_To_JSON |
109801705.83331983 ns/iter |
108165109.85715207 ns/iter |
1.02 |
Schema_Bundle_Meta_2020_12 |
1700950.2749397918 ns/iter |
1680141.0456679377 ns/iter |
1.01 |
Schema_Frame_Many_Resources_References |
383837427.0000031 ns/iter |
376193393.99998355 ns/iter |
1.02 |
EditorSchema_ForEditor_EmbeddedResources |
14127926.612257732 ns/iter |
13874807.95999636 ns/iter |
1.02 |
URITemplateRouter_Create |
31977.221192585406 ns/iter |
31865.292059528598 ns/iter |
1.00 |
URITemplateRouter_Match |
176.02449340888447 ns/iter |
170.96604971104676 ns/iter |
1.03 |
URITemplateRouter_Match_BasePath |
196.88429669460157 ns/iter |
197.58482821067219 ns/iter |
1.00 |
URITemplateRouterView_Restore |
7945.2440090324235 ns/iter |
7659.066104759942 ns/iter |
1.04 |
URITemplateRouterView_Match |
143.5002871051717 ns/iter |
143.3635639821217 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
163.36567810984104 ns/iter |
163.23417255433893 ns/iter |
1.00 |
URITemplateRouterView_Arguments |
473.15589281139796 ns/iter |
453.31496585138115 ns/iter |
1.04 |
JSONL_Parse_Large |
10806434.276923938 ns/iter |
10490349.343284046 ns/iter |
1.03 |
JSONL_Parse_Large_GZIP |
12072225.931035519 ns/iter |
11737416.349997906 ns/iter |
1.03 |
HTML_Build_Table_100000 |
63720413.90909544 ns/iter |
72629035.00000821 ns/iter |
0.88 |
HTML_Render_Table_100000 |
5653479.05555539 ns/iter |
5177762.55555536 ns/iter |
1.09 |
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: b0c7fee | Previous: e774d05 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
6.83694910714345 ns/iter |
7.500008928573721 ns/iter |
0.91 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
6.8411283482129805 ns/iter |
7.521804687498396 ns/iter |
0.91 |
Regex_Period_Asterisk |
6.837681250000774 ns/iter |
7.502542410711451 ns/iter |
0.91 |
Regex_Group_Period_Asterisk_Group |
6.836033928572809 ns/iter |
7.507033035713968 ns/iter |
0.91 |
Regex_Period_Plus |
8.744832550246041 ns/iter |
9.681616028207024 ns/iter |
0.90 |
Regex_Period |
8.746933035713564 ns/iter |
9.680866028206177 ns/iter |
0.90 |
Regex_Caret_Period_Plus_Dollar |
8.74621335381041 ns/iter |
9.86298611668511 ns/iter |
0.89 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
8.739716478841046 ns/iter |
9.682900403200028 ns/iter |
0.90 |
Regex_Caret_Period_Asterisk_Dollar |
6.840966964284283 ns/iter |
7.5041249999990045 ns/iter |
0.91 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
6.8563205357138814 ns/iter |
7.506683035716475 ns/iter |
0.91 |
Regex_Caret_X_Hyphen |
10.666034374999356 ns/iter |
11.748580357139613 ns/iter |
0.91 |
Regex_Period_Md_Dollar |
31.280718749999078 ns/iter |
37.819199324650306 ns/iter |
0.83 |
Regex_Caret_Slash_Period_Asterisk |
10.140546383302004 ns/iter |
11.285389062500428 ns/iter |
0.90 |
Regex_Caret_Period_Range_Dollar |
8.744600853820462 ns/iter |
9.700132992409307 ns/iter |
0.90 |
Regex_Nested_Backtrack |
38.999930879462376 ns/iter |
46.51635561144556 ns/iter |
0.84 |
JSON_Array_Of_Objects_Unique |
375.15251116066696 ns/iter |
461.22448583287587 ns/iter |
0.81 |
JSON_Parse_1 |
6087.384821429153 ns/iter |
7888.913442349283 ns/iter |
0.77 |
JSON_Parse_Real |
10778.500000000691 ns/iter |
15696.181894075602 ns/iter |
0.69 |
JSON_Parse_Decimal |
11405.496874999699 ns/iter |
15826.071428577392 ns/iter |
0.72 |
JSON_Parse_Schema_ISO_Language |
5203058.000001875 ns/iter |
5980042.857142312 ns/iter |
0.87 |
JSON_Fast_Hash_Helm_Chart_Lock |
47.98335714286038 ns/iter |
59.99557000000095 ns/iter |
0.80 |
JSON_Equality_Helm_Chart_Lock |
217.85440624995545 ns/iter |
263.47033765497326 ns/iter |
0.83 |
JSON_Divisible_By_Decimal |
201.32231467311962 ns/iter |
250.77142857136485 ns/iter |
0.80 |
JSON_String_Equal/10 |
8.810427455355603 ns/iter |
12.219330357140734 ns/iter |
0.72 |
JSON_String_Equal/100 |
10.174095312500242 ns/iter |
13.151247932358347 ns/iter |
0.77 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.647877835924728 ns/iter |
2.197891135939444 ns/iter |
0.75 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
8.755620496627383 ns/iter |
12.925498603014628 ns/iter |
0.68 |
JSON_String_Fast_Hash/10 |
2.7398667857141845 ns/iter |
3.1333674107137153 ns/iter |
0.87 |
JSON_String_Fast_Hash/100 |
2.741449418419553 ns/iter |
3.132274418244065 ns/iter |
0.88 |
JSON_String_Key_Hash/10 |
3.0161794642852766 ns/iter |
3.7712335646939676 ns/iter |
0.80 |
JSON_String_Key_Hash/100 |
13.118721428570877 ns/iter |
14.42639323916955 ns/iter |
0.91 |
JSON_Object_Defines_Miss_Same_Length |
3.8478152901788576 ns/iter |
5.1394600000003265 ns/iter |
0.75 |
JSON_Object_Defines_Miss_Too_Small |
3.094559536085135 ns/iter |
3.7806289218210534 ns/iter |
0.82 |
JSON_Object_Defines_Miss_Too_Large |
2.985513254930512 ns/iter |
3.765864100417939 ns/iter |
0.79 |
Pointer_Object_Traverse |
32.684658323197084 ns/iter |
42.53301458064944 ns/iter |
0.77 |
Pointer_Object_Try_Traverse |
42.24303047645955 ns/iter |
52.194620000000214 ns/iter |
0.81 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
114.07307812500989 ns/iter |
149.87133928566922 ns/iter |
0.76 |
Pointer_Walker_Schema_ISO_Language |
10899146.87499771 ns/iter |
11437339.06249622 ns/iter |
0.95 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1596607.5067019763 ns/iter |
1981291.4285710445 ns/iter |
0.81 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
2348246.7857141793 ns/iter |
3036258.482142427 ns/iter |
0.77 |
Pointer_Position_Tracker_Get_Deeply_Nested |
489.52696428585796 ns/iter |
602.8881696431248 ns/iter |
0.81 |
Schema_Frame_WoT_References |
7938549.999999447 ns/iter |
9852623.437502928 ns/iter |
0.81 |
Schema_Frame_OMC_References |
37411331.57895523 ns/iter |
43353670.58823013 ns/iter |
0.86 |
Schema_Frame_OMC_Locations |
34139485.71429025 ns/iter |
39212061.11110425 ns/iter |
0.87 |
Schema_Frame_ISO_Language_Locations |
178834074.9999975 ns/iter |
200297200.00002274 ns/iter |
0.89 |
Schema_Frame_KrakenD_References |
76747500.00001042 ns/iter |
92825585.71430854 ns/iter |
0.83 |
Schema_Frame_KrakenD_Reachable |
428173800.0000814 ns/iter |
533939500.00008774 ns/iter |
0.80 |
Schema_Iterator_ISO_Language |
5226841.999999579 ns/iter |
6280305.357141255 ns/iter |
0.83 |
Schema_Frame_ISO_Language_Locations_To_JSON |
252896233.3333311 ns/iter |
298512150.0000787 ns/iter |
0.85 |
Schema_Tracker_ISO_Language |
8193708.888888472 ns/iter |
10050124.999999356 ns/iter |
0.82 |
Schema_Tracker_ISO_Language_To_JSON |
40956052.94117591 ns/iter |
50920590.90909309 ns/iter |
0.80 |
Schema_Format_ISO_Language_To_JSON |
174384399.99995124 ns/iter |
203129850.00009575 ns/iter |
0.86 |
Schema_Bundle_Meta_2020_12 |
2188959.062500828 ns/iter |
2903401.2711883285 ns/iter |
0.75 |
Schema_Frame_Many_Resources_References |
1190023599.999904 ns/iter |
1473355900.0001152 ns/iter |
0.81 |
EditorSchema_ForEditor_EmbeddedResources |
24337342.85713334 ns/iter |
29380383.333318606 ns/iter |
0.83 |
URITemplateRouter_Create |
28204.564265338802 ns/iter |
39719.68179139073 ns/iter |
0.71 |
URITemplateRouter_Match |
171.43393112279378 ns/iter |
217.47765770190543 ns/iter |
0.79 |
URITemplateRouter_Match_BasePath |
197.52869430671504 ns/iter |
251.28888845040183 ns/iter |
0.79 |
URITemplateRouterView_Restore |
17849.441512875477 ns/iter |
31419.16748697308 ns/iter |
0.57 |
URITemplateRouterView_Match |
118.05298214284223 ns/iter |
157.42357332927224 ns/iter |
0.75 |
URITemplateRouterView_Match_BasePath |
138.69539782609854 ns/iter |
181.26235812024836 ns/iter |
0.77 |
URITemplateRouterView_Arguments |
345.9979484820312 ns/iter |
468.0236089337037 ns/iter |
0.74 |
JSONL_Parse_Large |
20931193.75000185 ns/iter |
28454242.307694025 ns/iter |
0.74 |
JSONL_Parse_Large_GZIP |
20626452.941174272 ns/iter |
27769828.000000414 ns/iter |
0.74 |
HTML_Build_Table_100000 |
73758088.88888161 ns/iter |
87164955.55558544 ns/iter |
0.85 |
HTML_Render_Table_100000 |
6854658.035714627 ns/iter |
8111930.0000005355 ns/iter |
0.85 |
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: b0c7fee | Previous: e774d05 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.9132500362058313 ns/iter |
1.7017010798870666 ns/iter |
1.12 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.8671990373886487 ns/iter |
1.6925418600128745 ns/iter |
1.10 |
Regex_Period_Asterisk |
1.82997602278869 ns/iter |
1.6925000275564632 ns/iter |
1.08 |
Regex_Group_Period_Asterisk_Group |
1.9112081412076163 ns/iter |
1.7581532792401018 ns/iter |
1.09 |
Regex_Period_Plus |
2.5055986806459507 ns/iter |
2.0272907788521213 ns/iter |
1.24 |
Regex_Period |
2.3622463746147173 ns/iter |
2.020561818177096 ns/iter |
1.17 |
Regex_Caret_Period_Plus_Dollar |
2.2571954360248627 ns/iter |
2.014409189865328 ns/iter |
1.12 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.0808562535342867 ns/iter |
2.027760674096027 ns/iter |
1.03 |
Regex_Caret_Period_Asterisk_Dollar |
1.6966601614356145 ns/iter |
1.6837002480531016 ns/iter |
1.01 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.749072414178294 ns/iter |
1.7292182177055049 ns/iter |
1.01 |
Regex_Caret_X_Hyphen |
7.240705497294124 ns/iter |
6.093047272973537 ns/iter |
1.19 |
Regex_Period_Md_Dollar |
16.400104691838898 ns/iter |
16.711738624978985 ns/iter |
0.98 |
Regex_Caret_Slash_Period_Asterisk |
8.18711352757445 ns/iter |
8.06618136772381 ns/iter |
1.01 |
Regex_Caret_Period_Range_Dollar |
1.7454066636913397 ns/iter |
1.6944002248674195 ns/iter |
1.03 |
Regex_Nested_Backtrack |
24.787529606091894 ns/iter |
24.45653217599426 ns/iter |
1.01 |
JSON_Array_Of_Objects_Unique |
348.1857189448764 ns/iter |
339.82104216502074 ns/iter |
1.02 |
JSON_Parse_1 |
3965.2605498225807 ns/iter |
4111.331092972164 ns/iter |
0.96 |
JSON_Parse_Real |
6577.983033125118 ns/iter |
6310.951532578662 ns/iter |
1.04 |
JSON_Parse_Decimal |
8279.191752324208 ns/iter |
8045.7517004815345 ns/iter |
1.03 |
JSON_Parse_Schema_ISO_Language |
4022737.545977273 ns/iter |
4028738.1871653236 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
59.51988282312793 ns/iter |
59.51406576426429 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
138.41471035538297 ns/iter |
133.540790396386 ns/iter |
1.04 |
JSON_Divisible_By_Decimal |
227.3670823228642 ns/iter |
172.67372787348768 ns/iter |
1.32 |
JSON_String_Equal/10 |
7.201572160732999 ns/iter |
6.775008936854408 ns/iter |
1.06 |
JSON_String_Equal/100 |
6.503680625936053 ns/iter |
6.781214769852356 ns/iter |
0.96 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7544731025455895 ns/iter |
0.7828487237118 ns/iter |
0.96 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.3498231636333724 ns/iter |
3.3391780156116924 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.367741696479109 ns/iter |
2.355377669689001 ns/iter |
1.01 |
JSON_String_Fast_Hash/100 |
2.105243946742066 ns/iter |
2.02483487465273 ns/iter |
1.04 |
JSON_String_Key_Hash/10 |
1.361670072323642 ns/iter |
1.3743267969849666 ns/iter |
0.99 |
JSON_String_Key_Hash/100 |
2.169245102930644 ns/iter |
2.2240929022869613 ns/iter |
0.98 |
JSON_Object_Defines_Miss_Same_Length |
2.4122883865778117 ns/iter |
2.3759097975349857 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Small |
2.6279998447761894 ns/iter |
2.4269161654196836 ns/iter |
1.08 |
JSON_Object_Defines_Miss_Too_Large |
2.63396627164674 ns/iter |
2.363767803869415 ns/iter |
1.11 |
Pointer_Object_Traverse |
17.2682482435979 ns/iter |
14.042734968637806 ns/iter |
1.23 |
Pointer_Object_Try_Traverse |
20.518606081388334 ns/iter |
18.93254394746618 ns/iter |
1.08 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
161.20081794952742 ns/iter |
152.8893571578415 ns/iter |
1.05 |
Pointer_Walker_Schema_ISO_Language |
4728830.513513642 ns/iter |
4216685.181286824 ns/iter |
1.12 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1139992.7160840305 ns/iter |
994287.8977718258 ns/iter |
1.15 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1409402.7196652938 ns/iter |
1335182.8358206127 ns/iter |
1.06 |
Pointer_Position_Tracker_Get_Deeply_Nested |
357.89079857653496 ns/iter |
339.9354300842352 ns/iter |
1.05 |
Schema_Frame_WoT_References |
4960946.885495722 ns/iter |
4691210.581081516 ns/iter |
1.06 |
Schema_Frame_OMC_References |
26088259.61537884 ns/iter |
24274924.37036731 ns/iter |
1.07 |
Schema_Frame_OMC_Locations |
26003812.500001848 ns/iter |
26311819.433332555 ns/iter |
0.99 |
Schema_Frame_ISO_Language_Locations |
77732150.9999922 ns/iter |
71995115.7777814 ns/iter |
1.08 |
Schema_Frame_KrakenD_References |
48988682.69230241 ns/iter |
47586219.40000012 ns/iter |
1.03 |
Schema_Frame_KrakenD_Reachable |
489657166.5000238 ns/iter |
457634895.4999503 ns/iter |
1.07 |
Schema_Iterator_ISO_Language |
2579360.8803989952 ns/iter |
2302144.506368903 ns/iter |
1.12 |
Schema_Frame_ISO_Language_Locations_To_JSON |
99458593.75000055 ns/iter |
76768692.6250235 ns/iter |
1.30 |
Schema_Tracker_ISO_Language |
5597540.289257696 ns/iter |
4632784.406451338 ns/iter |
1.21 |
Schema_Tracker_ISO_Language_To_JSON |
13590404.89130522 ns/iter |
13739984.555555835 ns/iter |
0.99 |
Schema_Format_ISO_Language_To_JSON |
76572490.77780963 ns/iter |
75970683.40003261 ns/iter |
1.01 |
Schema_Bundle_Meta_2020_12 |
1319928.3867155742 ns/iter |
1272809.7058821435 ns/iter |
1.04 |
Schema_Frame_Many_Resources_References |
290081854.50004476 ns/iter |
310971729.49989724 ns/iter |
0.93 |
EditorSchema_ForEditor_EmbeddedResources |
11188054.232129779 ns/iter |
10487721.18461574 ns/iter |
1.07 |
URITemplateRouter_Create |
23245.833623754545 ns/iter |
22820.75618129929 ns/iter |
1.02 |
URITemplateRouter_Match |
167.0776872706743 ns/iter |
161.77875778000148 ns/iter |
1.03 |
URITemplateRouter_Match_BasePath |
214.61227484006184 ns/iter |
191.91024235240292 ns/iter |
1.12 |
URITemplateRouterView_Restore |
15237.347931343556 ns/iter |
9366.958284974957 ns/iter |
1.63 |
URITemplateRouterView_Match |
137.8643163628447 ns/iter |
128.70179088881972 ns/iter |
1.07 |
URITemplateRouterView_Match_BasePath |
150.82076197343966 ns/iter |
146.50372648275086 ns/iter |
1.03 |
URITemplateRouterView_Arguments |
414.408868944945 ns/iter |
403.58103680192903 ns/iter |
1.03 |
JSONL_Parse_Large |
12256550.745455157 ns/iter |
12011607.633333674 ns/iter |
1.02 |
JSONL_Parse_Large_GZIP |
12551819.179998348 ns/iter |
13708766.672727343 ns/iter |
0.92 |
HTML_Build_Table_100000 |
67018825.81817451 ns/iter |
67375318.18182354 ns/iter |
0.99 |
HTML_Render_Table_100000 |
4714930.151078615 ns/iter |
2913756.157635263 ns/iter |
1.62 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Benchmark (linux/gcc)
Details
| Benchmark suite | Current: b0c7fee | Previous: e774d05 | Ratio |
|---|---|---|---|
HTML_Build_Table_100000 |
62459708.63636268 ns/iter |
69247175.00000952 ns/iter |
0.90 |
HTML_Render_Table_100000 |
5379659.07031257 ns/iter |
10263181.088235155 ns/iter |
0.52 |
JSONL_Parse_Large |
12990020.759258624 ns/iter |
12427260.232146053 ns/iter |
1.05 |
JSONL_Parse_Large_GZIP |
14206787.653058793 ns/iter |
13407368.499997575 ns/iter |
1.06 |
URITemplateRouter_Create |
31576.859864860646 ns/iter |
28410.227494567134 ns/iter |
1.11 |
URITemplateRouter_Match |
167.93138119300068 ns/iter |
147.70410146010704 ns/iter |
1.14 |
URITemplateRouter_Match_BasePath |
192.1343483861975 ns/iter |
163.68699181304112 ns/iter |
1.17 |
URITemplateRouterView_Restore |
7796.494909831124 ns/iter |
3463.0083109581196 ns/iter |
2.25 |
URITemplateRouterView_Match |
212.60453953886267 ns/iter |
125.18889178361601 ns/iter |
1.70 |
URITemplateRouterView_Match_BasePath |
158.1290492287442 ns/iter |
143.1553935892339 ns/iter |
1.10 |
URITemplateRouterView_Arguments |
482.37599745877833 ns/iter |
539.0320995076547 ns/iter |
0.89 |
EditorSchema_ForEditor_EmbeddedResources |
14004437.139997208 ns/iter |
12761908.03635638 ns/iter |
1.10 |
Schema_Frame_WoT_References |
5435875.640625198 ns/iter |
4878358.524475179 ns/iter |
1.11 |
Schema_Frame_OMC_References |
22129475.290321644 ns/iter |
21149852.303034842 ns/iter |
1.05 |
Schema_Frame_OMC_Locations |
20542493.11764606 ns/iter |
19449183.19444216 ns/iter |
1.06 |
Schema_Frame_ISO_Language_Locations |
103604569.50002117 ns/iter |
95383489.42857869 ns/iter |
1.09 |
Schema_Frame_KrakenD_References |
40303905.88889077 ns/iter |
38781221.55555907 ns/iter |
1.04 |
Schema_Frame_KrakenD_Reachable |
535931103.99992836 ns/iter |
759913367.9998431 ns/iter |
0.71 |
Schema_Iterator_ISO_Language |
3256812.7943923767 ns/iter |
3155727.7058824818 ns/iter |
1.03 |
Schema_Frame_ISO_Language_Locations_To_JSON |
217393224.33336386 ns/iter |
203526061.6666316 ns/iter |
1.07 |
Schema_Tracker_ISO_Language |
4618107.611843483 ns/iter |
4628136.006666257 ns/iter |
1.00 |
Schema_Tracker_ISO_Language_To_JSON |
22328146.281246576 ns/iter |
24865072.10714503 ns/iter |
0.90 |
Schema_Format_ISO_Language_To_JSON |
108943831.99994688 ns/iter |
100769703.71424718 ns/iter |
1.08 |
Schema_Bundle_Meta_2020_12 |
1819603.609377533 ns/iter |
1668686.7809561417 ns/iter |
1.09 |
Schema_Frame_Many_Resources_References |
376804051.5000166 ns/iter |
364140499.4999675 ns/iter |
1.03 |
Pointer_Object_Traverse |
24.859004259407936 ns/iter |
26.89879696865443 ns/iter |
0.92 |
Pointer_Object_Try_Traverse |
19.84824856795419 ns/iter |
24.114437286703446 ns/iter |
0.82 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
162.86512501774584 ns/iter |
154.4863877037007 ns/iter |
1.05 |
Pointer_Walker_Schema_ISO_Language |
3339254.476190945 ns/iter |
3399867.338163423 ns/iter |
0.98 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1595296.0045664539 ns/iter |
1420203.1923077481 ns/iter |
1.12 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1797800.2724931359 ns/iter |
1977681.7226889348 ns/iter |
0.91 |
Pointer_Position_Tracker_Get_Deeply_Nested |
396.86078038888917 ns/iter |
413.68476435654986 ns/iter |
0.96 |
JSON_Array_Of_Objects_Unique |
371.0526515119145 ns/iter |
338.0190151268979 ns/iter |
1.10 |
JSON_Parse_1 |
7976.844196936677 ns/iter |
6812.77310124592 ns/iter |
1.17 |
JSON_Parse_Real |
12111.986883881835 ns/iter |
11029.877007372272 ns/iter |
1.10 |
JSON_Parse_Decimal |
17972.033722307762 ns/iter |
14719.714162404416 ns/iter |
1.22 |
JSON_Parse_Schema_ISO_Language |
4687754.550336679 ns/iter |
4287318.716050614 ns/iter |
1.09 |
JSON_Fast_Hash_Helm_Chart_Lock |
64.76658888276157 ns/iter |
45.17610611041845 ns/iter |
1.43 |
JSON_Equality_Helm_Chart_Lock |
162.65176744808096 ns/iter |
154.63878001504614 ns/iter |
1.05 |
JSON_Divisible_By_Decimal |
237.51467471980789 ns/iter |
250.89554784713044 ns/iter |
0.95 |
JSON_String_Equal/10 |
6.5620233417027345 ns/iter |
5.678275020760628 ns/iter |
1.16 |
JSON_String_Equal/100 |
7.271216651858608 ns/iter |
6.807444414429537 ns/iter |
1.07 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.6236995976433333 ns/iter |
0.8254770974099872 ns/iter |
0.76 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.202063144300062 ns/iter |
17.009344764990963 ns/iter |
1.48 |
JSON_String_Fast_Hash/10 |
0.9351189858647756 ns/iter |
1.1598940993470812 ns/iter |
0.81 |
JSON_String_Fast_Hash/100 |
0.9347218514710258 ns/iter |
1.1528511932997456 ns/iter |
0.81 |
JSON_String_Key_Hash/10 |
1.5596856685339242 ns/iter |
1.7297498753635003 ns/iter |
0.90 |
JSON_String_Key_Hash/100 |
12.453542673639074 ns/iter |
11.83370460022853 ns/iter |
1.05 |
JSON_Object_Defines_Miss_Same_Length |
3.426341955723712 ns/iter |
3.3985331683444686 ns/iter |
1.01 |
JSON_Object_Defines_Miss_Too_Small |
3.1163324891709356 ns/iter |
3.445608072879465 ns/iter |
0.90 |
JSON_Object_Defines_Miss_Too_Large |
3.73932417752746 ns/iter |
3.733774074171434 ns/iter |
1.00 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.9344143564371598 ns/iter |
1.152683721846392 ns/iter |
0.81 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.9341532066285462 ns/iter |
1.152980889555559 ns/iter |
0.81 |
Regex_Period_Asterisk |
0.6228804555517642 ns/iter |
0.864792230931925 ns/iter |
0.72 |
Regex_Group_Period_Asterisk_Group |
0.6232644804155498 ns/iter |
0.8654815822388986 ns/iter |
0.72 |
Regex_Period_Plus |
0.9346638402443596 ns/iter |
1.154833239224883 ns/iter |
0.81 |
Regex_Period |
0.9346362596875855 ns/iter |
1.1526697218291888 ns/iter |
0.81 |
Regex_Caret_Period_Plus_Dollar |
0.6233558742388093 ns/iter |
0.8648081819306856 ns/iter |
0.72 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.6225475719017547 ns/iter |
0.8647039899255082 ns/iter |
0.72 |
Regex_Caret_Period_Asterisk_Dollar |
0.9350756962331569 ns/iter |
1.1531144128006894 ns/iter |
0.81 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.9341197754363307 ns/iter |
1.153124434771862 ns/iter |
0.81 |
Regex_Caret_X_Hyphen |
4.439118858038509 ns/iter |
3.459157084158363 ns/iter |
1.28 |
Regex_Period_Md_Dollar |
28.730215142579144 ns/iter |
23.84629320300295 ns/iter |
1.20 |
Regex_Caret_Slash_Period_Asterisk |
4.3577788496423855 ns/iter |
3.172304993285078 ns/iter |
1.37 |
Regex_Caret_Period_Range_Dollar |
0.9344986407190672 ns/iter |
1.1532237851039058 ns/iter |
0.81 |
Regex_Nested_Backtrack |
40.57690760046269 ns/iter |
33.62007285397049 ns/iter |
1.21 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com