Handle A-labels case-insensitively in the IDNA module - #2762
Conversation
🤖 Augment PR SummarySummary: Changes:
🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
1 issue 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/idna/idna.cc">
<violation number="1" location="src/core/idna/idna.cc:434">
P3: The new case-insensitive A-label behavior contradicts the public `idna_is_valid_a_label` documentation, so users may rely on the old rejection semantics or misuse this validator. Update the API comments to describe case-insensitive prefix/body handling and the revised validation purpose.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| // "xn--", interpreted case-insensitively | ||
| constexpr std::string_view PREFIX{"xn--"}; | ||
| if (!label.starts_with(PREFIX)) { | ||
| if (!starts_with_ignore_case(label, PREFIX)) { |
There was a problem hiding this comment.
P3: The new case-insensitive A-label behavior contradicts the public idna_is_valid_a_label documentation, so users may rely on the old rejection semantics or misuse this validator. Update the API comments to describe case-insensitive prefix/body handling and the revised validation purpose.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/core/idna/idna.cc, line 434:
<comment>The new case-insensitive A-label behavior contradicts the public `idna_is_valid_a_label` documentation, so users may rely on the old rejection semantics or misuse this validator. Update the API comments to describe case-insensitive prefix/body handling and the revised validation purpose.</comment>
<file context>
@@ -418,8 +428,10 @@ auto idna_passes_bidi_rule(const std::u32string_view label) noexcept -> bool {
+ // "xn--", interpreted case-insensitively
constexpr std::string_view PREFIX{"xn--"};
- if (!label.starts_with(PREFIX)) {
+ if (!starts_with_ignore_case(label, PREFIX)) {
return false;
}
</file context>
There was a problem hiding this comment.
Benchmark (macos/llvm)
Details
| Benchmark suite | Current: a78314b | Previous: 18745f9 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.251974970550117 ns/iter |
1.8909568539478596 ns/iter |
1.19 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.7335133505614833 ns/iter |
1.8929957026439583 ns/iter |
1.44 |
Regex_Period_Asterisk |
2.6098892939621647 ns/iter |
2.121103581456034 ns/iter |
1.23 |
Regex_Group_Period_Asterisk_Group |
2.963203068409811 ns/iter |
2.0937481016902617 ns/iter |
1.42 |
Regex_Period_Plus |
2.9585454431471088 ns/iter |
2.8032535815977586 ns/iter |
1.06 |
Regex_Period |
2.882707397918621 ns/iter |
2.7901984948595153 ns/iter |
1.03 |
Regex_Caret_Period_Plus_Dollar |
3.0413104304871754 ns/iter |
2.290997756643229 ns/iter |
1.33 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.922907030219449 ns/iter |
2.290974005830132 ns/iter |
1.28 |
Regex_Caret_Period_Asterisk_Dollar |
2.5399154453744246 ns/iter |
1.7161356305210278 ns/iter |
1.48 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.201353907683089 ns/iter |
1.8347451066614855 ns/iter |
1.20 |
Regex_Caret_X_Hyphen |
8.45787884736989 ns/iter |
6.285265273185 ns/iter |
1.35 |
Regex_Period_Md_Dollar |
28.953502401510114 ns/iter |
18.66341592390282 ns/iter |
1.55 |
Regex_Caret_Slash_Period_Asterisk |
6.385593685450638 ns/iter |
5.024791250000362 ns/iter |
1.27 |
Regex_Caret_Period_Range_Dollar |
2.8681484985853394 ns/iter |
2.21993168358975 ns/iter |
1.29 |
Regex_Nested_Backtrack |
43.783654224726575 ns/iter |
28.10900544355558 ns/iter |
1.56 |
JSON_Array_Of_Objects_Unique |
684.6499402673174 ns/iter |
402.38251962753145 ns/iter |
1.70 |
JSON_Parse_1 |
6083.285858629715 ns/iter |
3351.090074024794 ns/iter |
1.82 |
JSON_Parse_Real |
8165.518585570514 ns/iter |
6087.013159822721 ns/iter |
1.34 |
JSON_Parse_Decimal |
7441.474370513347 ns/iter |
7023.752643090714 ns/iter |
1.06 |
JSON_Parse_Schema_ISO_Language |
3126050.675675558 ns/iter |
2694315.125984214 ns/iter |
1.16 |
JSON_Parse_Integer |
5303.257368302325 ns/iter |
4240.9022177421375 ns/iter |
1.25 |
JSON_Parse_String_NonSSO_Plain |
4798.787118479786 ns/iter |
3641.787285766044 ns/iter |
1.32 |
JSON_Parse_String_SSO_Plain |
2623.9701470402483 ns/iter |
2013.5396957068558 ns/iter |
1.30 |
JSON_Parse_String_Escape_Heavy |
22282.67200272421 ns/iter |
23493.059866825814 ns/iter |
0.95 |
JSON_Parse_Object_Short_Keys |
7547.1464420637185 ns/iter |
7753.3925289552835 ns/iter |
0.97 |
JSON_Parse_Object_Scalar_Properties |
4002.203616645222 ns/iter |
4156.209879101807 ns/iter |
0.96 |
JSON_Parse_Object_Array_Properties |
5735.860146020407 ns/iter |
6076.669536533713 ns/iter |
0.94 |
JSON_Parse_Object_Object_Properties |
4827.980873460643 ns/iter |
5745.539009905497 ns/iter |
0.84 |
JSON_Parse_Nested_Containers |
37915.67838418462 ns/iter |
46058.0492205163 ns/iter |
0.82 |
JSON_From_String_Copy |
15.344359713108885 ns/iter |
19.54946234188904 ns/iter |
0.78 |
JSON_From_String_Temporary |
9.278143561404748 ns/iter |
10.362344981477767 ns/iter |
0.90 |
JSON_Number_To_Double |
44.07393406618778 ns/iter |
49.8795655283278 ns/iter |
0.88 |
JSON_Object_At_Last_Key/8 |
5.728074170000354 ns/iter |
5.2849144591461785 ns/iter |
1.08 |
JSON_Object_At_Last_Key/32 |
17.80859345369862 ns/iter |
16.70894984125618 ns/iter |
1.07 |
JSON_Object_At_Last_Key/128 |
75.30207534694658 ns/iter |
87.24948706320912 ns/iter |
0.86 |
JSON_Object_At_Last_Key/512 |
288.11608881199186 ns/iter |
250.61930118711658 ns/iter |
1.15 |
JSON_Fast_Hash_Helm_Chart_Lock |
77.8240425983453 ns/iter |
77.33492947648149 ns/iter |
1.01 |
JSON_Equality_Helm_Chart_Lock |
231.38799035164934 ns/iter |
244.712994219622 ns/iter |
0.95 |
JSON_Divisible_By_Decimal |
251.17378498798868 ns/iter |
263.11246021951183 ns/iter |
0.95 |
JSON_String_Equal/10 |
8.545867003171958 ns/iter |
9.31174606406114 ns/iter |
0.92 |
JSON_String_Equal/100 |
9.158634448912606 ns/iter |
9.41909632541854 ns/iter |
0.97 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.4390313517846911 ns/iter |
0.4190939223244202 ns/iter |
1.05 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
5.199073750000025 ns/iter |
4.15079126685452 ns/iter |
1.25 |
JSON_String_Fast_Hash/10 |
3.168741735641529 ns/iter |
3.2764733029936735 ns/iter |
0.97 |
JSON_String_Fast_Hash/100 |
2.7053635344769433 ns/iter |
3.0051839328772663 ns/iter |
0.90 |
JSON_String_Key_Hash/10 |
2.1906001643590094 ns/iter |
2.0670886191103666 ns/iter |
1.06 |
JSON_String_Key_Hash/100 |
3.2307617429480926 ns/iter |
2.9116242902186062 ns/iter |
1.11 |
JSON_Object_Defines_Miss_Same_Length |
3.6350040378991872 ns/iter |
3.2519444588483846 ns/iter |
1.12 |
JSON_Object_Defines_Miss_Too_Small |
3.5258175631593844 ns/iter |
3.1096765930034804 ns/iter |
1.13 |
JSON_Object_Defines_Miss_Too_Large |
3.5337424983532633 ns/iter |
3.0085593036676817 ns/iter |
1.17 |
Pointer_Object_Traverse |
26.91425063141411 ns/iter |
26.258999676167907 ns/iter |
1.02 |
Pointer_Object_Try_Traverse |
45.176687428389506 ns/iter |
33.73104966542171 ns/iter |
1.34 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
171.43074904542718 ns/iter |
151.3741378301843 ns/iter |
1.13 |
Pointer_Walker_Schema_ISO_Language |
1675040.558510884 ns/iter |
1212050.110132118 ns/iter |
1.38 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1099891.9670658007 ns/iter |
831677.1653544932 ns/iter |
1.32 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1554224.5835776292 ns/iter |
1337718.1991644392 ns/iter |
1.16 |
Pointer_Position_Tracker_Get_Deeply_Nested |
438.47350823780084 ns/iter |
360.38863583283484 ns/iter |
1.22 |
JSONPath_Descendant_Filter_Nested |
1499.300974008739 ns/iter |
1215.1743702514943 ns/iter |
1.23 |
URITemplateRouter_Create |
23384.531136307665 ns/iter |
19803.396970872665 ns/iter |
1.18 |
URITemplateRouter_Match |
221.41101084853466 ns/iter |
182.73881015369685 ns/iter |
1.21 |
URITemplateRouter_Match_BasePath |
273.6606317970312 ns/iter |
209.49230613986342 ns/iter |
1.31 |
URITemplateRouterView_Restore |
15984.711531966874 ns/iter |
12343.30784377362 ns/iter |
1.30 |
URITemplateRouterView_Match |
211.86158083639583 ns/iter |
161.15421826526642 ns/iter |
1.31 |
URITemplateRouterView_Match_BasePath |
238.96767483208077 ns/iter |
167.32312742439268 ns/iter |
1.43 |
URITemplateRouterView_Arguments |
730.646110012369 ns/iter |
564.9687466360625 ns/iter |
1.29 |
JSONL_Parse_Large |
8574632.773334088 ns/iter |
6890725.215518206 ns/iter |
1.24 |
JSONL_Parse_Large_GZIP |
10277512.94594583 ns/iter |
8780694.117646871 ns/iter |
1.17 |
JSONLD_Catalog_Annotation_List_Populate |
717236.5236523771 ns/iter |
549025.6597761179 ns/iter |
1.31 |
JSONLD_Catalog_Materialize |
3820828.99547519 ns/iter |
2710807.7415735177 ns/iter |
1.41 |
HTML_Build_Table_100000 |
60394295.16667383 ns/iter |
39917214.28571639 ns/iter |
1.51 |
HTML_Render_Table_100000 |
2727925.596428804 ns/iter |
1980361.70074846 ns/iter |
1.38 |
GZIP_Compress_ISO_Language_Set_3_Locations |
35688966.65000238 ns/iter |
32947950.772722837 ns/iter |
1.08 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4725748.97541011 ns/iter |
3740718.870588299 ns/iter |
1.26 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2089704.6491711221 ns/iter |
1623799.3962261113 ns/iter |
1.29 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
364332.12608036434 ns/iter |
280072.70512820524 ns/iter |
1.30 |
JOSE_VerifySignature_RS256 |
30475.979772437484 ns/iter |
22525.437443916016 ns/iter |
1.35 |
JOSE_VerifySignature_ES512 |
1344478.5448155736 ns/iter |
1007493.7524751775 ns/iter |
1.33 |
This comment was automatically generated by workflow using github-action-benchmark.
Fixes: #2741 Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
There was a problem hiding this comment.
Benchmark (windows/msvc)
Details
| Benchmark suite | Current: a78314b | Previous: 18745f9 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
5.084170000000086 ns/iter |
4.054339843750603 ns/iter |
1.25 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
5.043817857143092 ns/iter |
3.8428191964293545 ns/iter |
1.31 |
Regex_Period_Asterisk |
5.032753000000412 ns/iter |
3.8462008859889876 ns/iter |
1.31 |
Regex_Group_Period_Asterisk_Group |
5.0506039999999075 ns/iter |
3.9779426714683037 ns/iter |
1.27 |
Regex_Period_Plus |
4.905703000000017 ns/iter |
3.571132472098524 ns/iter |
1.37 |
Regex_Period |
4.990037999999686 ns/iter |
3.6101369809656116 ns/iter |
1.38 |
Regex_Caret_Period_Plus_Dollar |
4.772625068029816 ns/iter |
3.5743391238794193 ns/iter |
1.34 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
4.924601184134967 ns/iter |
3.6082921810569095 ns/iter |
1.36 |
Regex_Caret_Period_Asterisk_Dollar |
5.141601785713894 ns/iter |
3.9396149553575355 ns/iter |
1.31 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
5.014519867191 ns/iter |
3.87963963592969 ns/iter |
1.29 |
Regex_Caret_X_Hyphen |
8.37483612332673 ns/iter |
6.08830624999866 ns/iter |
1.38 |
Regex_Period_Md_Dollar |
44.68039669928187 ns/iter |
49.03813999999329 ns/iter |
0.91 |
Regex_Caret_Slash_Period_Asterisk |
8.07586160714318 ns/iter |
5.809700892858213 ns/iter |
1.39 |
Regex_Caret_Period_Range_Dollar |
5.723744642856791 ns/iter |
4.227388757548008 ns/iter |
1.35 |
Regex_Nested_Backtrack |
58.74958035714124 ns/iter |
67.92379464284538 ns/iter |
0.86 |
JSON_Array_Of_Objects_Unique |
625.7490178571499 ns/iter |
491.0991924083511 ns/iter |
1.27 |
JSON_Parse_1 |
9593.659849732583 ns/iter |
8196.596890191639 ns/iter |
1.17 |
JSON_Parse_Real |
16094.92633928638 ns/iter |
13172.732142858682 ns/iter |
1.22 |
JSON_Parse_Decimal |
11916.805357142632 ns/iter |
8731.647321429393 ns/iter |
1.36 |
JSON_Parse_Schema_ISO_Language |
8224104.444443963 ns/iter |
6987446.666668499 ns/iter |
1.18 |
JSON_Parse_Integer |
6374.27321428571 ns/iter |
4987.66160714175 ns/iter |
1.28 |
JSON_Parse_String_NonSSO_Plain |
8511.193080357036 ns/iter |
6484.885714286293 ns/iter |
1.31 |
JSON_Parse_String_SSO_Plain |
3965.9492187500105 ns/iter |
3224.9901785712204 ns/iter |
1.23 |
JSON_Parse_String_Escape_Heavy |
22445.965624999786 ns/iter |
17673.486876027197 ns/iter |
1.27 |
JSON_Parse_Object_Short_Keys |
13161.903571428418 ns/iter |
12292.344642856637 ns/iter |
1.07 |
JSON_Parse_Object_Scalar_Properties |
6859.131249999707 ns/iter |
6204.586607144132 ns/iter |
1.11 |
JSON_Parse_Object_Array_Properties |
12140.451785714593 ns/iter |
10186.48593750271 ns/iter |
1.19 |
JSON_Parse_Object_Object_Properties |
12160.442857143446 ns/iter |
9710.582812498813 ns/iter |
1.25 |
JSON_Parse_Nested_Containers |
83083.25967590643 ns/iter |
69957.46651785595 ns/iter |
1.19 |
JSON_From_String_Copy |
64.47749999999785 ns/iter |
53.191330357143286 ns/iter |
1.21 |
JSON_From_String_Temporary |
60.28725000000179 ns/iter |
64.28416964287261 ns/iter |
0.94 |
JSON_Number_To_Double |
121.70096428571397 ns/iter |
103.78476562500794 ns/iter |
1.17 |
JSON_Object_At_Last_Key/8 |
7.659021205357647 ns/iter |
6.044524999999063 ns/iter |
1.27 |
JSON_Object_At_Last_Key/32 |
23.38803750000018 ns/iter |
19.339899279819356 ns/iter |
1.21 |
JSON_Object_At_Last_Key/128 |
90.10958972724514 ns/iter |
88.8792187499884 ns/iter |
1.01 |
JSON_Object_At_Last_Key/512 |
430.95056287175197 ns/iter |
333.6291056019566 ns/iter |
1.29 |
JSON_Fast_Hash_Helm_Chart_Lock |
105.92028571428459 ns/iter |
93.38939315223935 ns/iter |
1.13 |
JSON_Equality_Helm_Chart_Lock |
208.79531249999414 ns/iter |
160.1442857142794 ns/iter |
1.30 |
JSON_Divisible_By_Decimal |
309.3954989513939 ns/iter |
302.75084821432023 ns/iter |
1.02 |
JSON_String_Equal/10 |
10.510995488789733 ns/iter |
7.698217633928449 ns/iter |
1.37 |
JSON_String_Equal/100 |
11.719343749999389 ns/iter |
8.789795050045079 ns/iter |
1.33 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.5106778571428987 ns/iter |
1.667361340402473 ns/iter |
1.51 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.301562436154024 ns/iter |
10.629482812500868 ns/iter |
1.35 |
JSON_String_Fast_Hash/10 |
6.647786607143047 ns/iter |
5.104381999999532 ns/iter |
1.30 |
JSON_String_Fast_Hash/100 |
6.600992857143138 ns/iter |
5.185983000001215 ns/iter |
1.27 |
JSON_String_Key_Hash/10 |
5.348182999999835 ns/iter |
3.8780597098205964 ns/iter |
1.38 |
JSON_String_Key_Hash/100 |
11.886635714285529 ns/iter |
8.605625000000268 ns/iter |
1.38 |
JSON_Object_Defines_Miss_Same_Length |
4.722373929625802 ns/iter |
3.63459963717767 ns/iter |
1.30 |
JSON_Object_Defines_Miss_Too_Small |
4.7231303676854335 ns/iter |
3.61452142211684 ns/iter |
1.31 |
JSON_Object_Defines_Miss_Too_Large |
4.711226796230123 ns/iter |
3.574455150664776 ns/iter |
1.32 |
Pointer_Object_Traverse |
68.89137499999975 ns/iter |
51.88467000000401 ns/iter |
1.33 |
Pointer_Object_Try_Traverse |
71.0686718750012 ns/iter |
52.481729999999516 ns/iter |
1.35 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
190.89684740151245 ns/iter |
129.89787499999954 ns/iter |
1.47 |
Pointer_Walker_Schema_ISO_Language |
11499282.666666204 ns/iter |
9330293.333335552 ns/iter |
1.23 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2466919.6787148356 ns/iter |
1889071.0144930473 ns/iter |
1.31 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3705882.051282025 ns/iter |
2838038.1526107793 ns/iter |
1.31 |
Pointer_Position_Tracker_Get_Deeply_Nested |
543.8799411521833 ns/iter |
424.0351004463706 ns/iter |
1.28 |
JSONPath_Descendant_Filter_Nested |
2371.489987176349 ns/iter |
2020.3097502764876 ns/iter |
1.17 |
URITemplateRouter_Create |
41104.06244559272 ns/iter |
30476.74625726032 ns/iter |
1.35 |
URITemplateRouter_Match |
232.77235125309335 ns/iter |
169.81354262144967 ns/iter |
1.37 |
URITemplateRouter_Match_BasePath |
269.65192498445776 ns/iter |
190.72038309998246 ns/iter |
1.41 |
URITemplateRouterView_Restore |
34196.84375000033 ns/iter |
20129.469905985363 ns/iter |
1.70 |
URITemplateRouterView_Match |
183.9519539242776 ns/iter |
132.95460714285161 ns/iter |
1.38 |
URITemplateRouterView_Match_BasePath |
208.17940625001083 ns/iter |
151.22587396601708 ns/iter |
1.38 |
URITemplateRouterView_Arguments |
546.7808035714228 ns/iter |
475.1858789435933 ns/iter |
1.15 |
JSONL_Parse_Large |
33196789.4736845 ns/iter |
25629330.769229107 ns/iter |
1.30 |
JSONL_Parse_Large_GZIP |
33899180.95238153 ns/iter |
26089061.53846664 ns/iter |
1.30 |
JSONLD_Catalog_Annotation_List_Populate |
3188974.1784038534 ns/iter |
2625058.3333338993 ns/iter |
1.21 |
JSONLD_Catalog_Materialize |
9804608.888889434 ns/iter |
6605002.678572955 ns/iter |
1.48 |
HTML_Build_Table_100000 |
93758028.57143104 ns/iter |
73892477.77776593 ns/iter |
1.27 |
HTML_Render_Table_100000 |
8187084.444444458 ns/iter |
6571368.888888981 ns/iter |
1.25 |
GZIP_Compress_ISO_Language_Set_3_Locations |
43676677.77778037 ns/iter |
28426855.999996405 ns/iter |
1.54 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
10249700.00000015 ns/iter |
7151307.142858545 ns/iter |
1.43 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2203191.249999925 ns/iter |
1717366.9642858158 ns/iter |
1.28 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
653254.6999999909 ns/iter |
420407.89632307127 ns/iter |
1.55 |
JOSE_VerifySignature_RS256 |
21397.092449654094 ns/iter |
18389.454370128195 ns/iter |
1.16 |
JOSE_VerifySignature_ES512 |
1394033.0357143134 ns/iter |
1202460.4687500328 ns/iter |
1.16 |
This comment was automatically generated by workflow using github-action-benchmark.
ce1ebff to
a78314b
Compare
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: a78314b | Previous: 9ba55aa | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.9210745714364743 ns/iter |
2.201476736237156 ns/iter |
0.87 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.912915484209792 ns/iter |
2.1792334500584483 ns/iter |
0.88 |
Regex_Period_Asterisk |
1.9100395116305748 ns/iter |
2.1861609692676933 ns/iter |
0.87 |
Regex_Group_Period_Asterisk_Group |
1.908790039730976 ns/iter |
2.181396901866417 ns/iter |
0.88 |
Regex_Period_Plus |
3.03112839118412 ns/iter |
2.8035894906118632 ns/iter |
1.08 |
Regex_Period |
3.012578353522166 ns/iter |
2.804435082616266 ns/iter |
1.07 |
Regex_Caret_Period_Plus_Dollar |
2.9988400090570426 ns/iter |
2.803631780275002 ns/iter |
1.07 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.01069718840994 ns/iter |
2.8045521560206623 ns/iter |
1.07 |
Regex_Caret_Period_Asterisk_Dollar |
1.911392239384062 ns/iter |
3.4318020676951932 ns/iter |
0.56 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.9100211470355348 ns/iter |
3.424354462619152 ns/iter |
0.56 |
Regex_Caret_X_Hyphen |
4.24246199652567 ns/iter |
7.166530293130413 ns/iter |
0.59 |
Regex_Period_Md_Dollar |
20.668039392237194 ns/iter |
27.584628872080344 ns/iter |
0.75 |
Regex_Caret_Slash_Period_Asterisk |
5.181002421934494 ns/iter |
5.603889136547636 ns/iter |
0.92 |
Regex_Caret_Period_Range_Dollar |
1.9101000421514593 ns/iter |
3.423818472743306 ns/iter |
0.56 |
Regex_Nested_Backtrack |
30.525414794155576 ns/iter |
40.71244697842946 ns/iter |
0.75 |
JSON_Array_Of_Objects_Unique |
366.20228253495054 ns/iter |
430.576750556034 ns/iter |
0.85 |
JSON_Parse_1 |
3436.8799664854855 ns/iter |
4799.668366940876 ns/iter |
0.72 |
JSON_Parse_Real |
3988.3640167600292 ns/iter |
5168.103809756494 ns/iter |
0.77 |
JSON_Parse_Decimal |
5751.829352322096 ns/iter |
7655.737390771504 ns/iter |
0.75 |
JSON_Parse_Schema_ISO_Language |
2707072.813229657 ns/iter |
3340441.6761901043 ns/iter |
0.81 |
JSON_Parse_Integer |
2979.166425427378 ns/iter |
3728.562746537056 ns/iter |
0.80 |
JSON_Parse_String_NonSSO_Plain |
2486.272686238331 ns/iter |
3057.681927254052 ns/iter |
0.81 |
JSON_Parse_String_SSO_Plain |
2232.2049372904567 ns/iter |
2716.2309657859028 ns/iter |
0.82 |
JSON_Parse_String_Escape_Heavy |
9384.104496788623 ns/iter |
12372.527805703963 ns/iter |
0.76 |
JSON_Parse_Object_Short_Keys |
6220.398429333768 ns/iter |
8227.509313333243 ns/iter |
0.76 |
JSON_Parse_Object_Scalar_Properties |
3162.432260772912 ns/iter |
4182.248507948182 ns/iter |
0.76 |
JSON_Parse_Object_Array_Properties |
4234.1971567866285 ns/iter |
5694.557830465579 ns/iter |
0.74 |
JSON_Parse_Object_Object_Properties |
4178.031310840109 ns/iter |
5407.529182281788 ns/iter |
0.77 |
JSON_Parse_Nested_Containers |
27292.057266846903 ns/iter |
35423.56770991399 ns/iter |
0.77 |
JSON_From_String_Copy |
9.140372864826887 ns/iter |
11.645403128522778 ns/iter |
0.78 |
JSON_From_String_Temporary |
7.817926064103084 ns/iter |
10.545545146920322 ns/iter |
0.74 |
JSON_Number_To_Double |
17.71319173779599 ns/iter |
23.886087809481538 ns/iter |
0.74 |
JSON_Object_At_Last_Key/8 |
3.102132576540991 ns/iter |
6.009263295464423 ns/iter |
0.52 |
JSON_Object_At_Last_Key/32 |
10.153722827066161 ns/iter |
21.5453254652663 ns/iter |
0.47 |
JSON_Object_At_Last_Key/128 |
36.31416126894585 ns/iter |
87.96095469658988 ns/iter |
0.41 |
JSON_Object_At_Last_Key/512 |
273.0066057144024 ns/iter |
396.93487751340973 ns/iter |
0.69 |
JSON_Fast_Hash_Helm_Chart_Lock |
51.35060029745171 ns/iter |
68.43405704984971 ns/iter |
0.75 |
JSON_Equality_Helm_Chart_Lock |
126.62272431821965 ns/iter |
168.365253619315 ns/iter |
0.75 |
JSON_Divisible_By_Decimal |
195.39162587499496 ns/iter |
246.9143056593371 ns/iter |
0.79 |
JSON_String_Equal/10 |
4.361810419307418 ns/iter |
5.923244793683606 ns/iter |
0.74 |
JSON_String_Equal/100 |
5.18314634486402 ns/iter |
6.567234989940216 ns/iter |
0.79 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.8177779883214643 ns/iter |
0.935866373516529 ns/iter |
0.87 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
9.568355286504643 ns/iter |
14.631779106728201 ns/iter |
0.65 |
JSON_String_Fast_Hash/10 |
1.640095169527737 ns/iter |
2.4886464690152295 ns/iter |
0.66 |
JSON_String_Fast_Hash/100 |
1.6367321931635377 ns/iter |
2.4939667339679956 ns/iter |
0.66 |
JSON_String_Key_Hash/10 |
1.9088405810198332 ns/iter |
2.664006493607368 ns/iter |
0.72 |
JSON_String_Key_Hash/100 |
5.99603050553156 ns/iter |
9.026624886032138 ns/iter |
0.66 |
JSON_Object_Defines_Miss_Same_Length |
3.290098460687996 ns/iter |
2.7979921093704916 ns/iter |
1.18 |
JSON_Object_Defines_Miss_Too_Small |
2.486729585373716 ns/iter |
2.7485920676267854 ns/iter |
0.90 |
JSON_Object_Defines_Miss_Too_Large |
2.2885939699887787 ns/iter |
3.108625646780381 ns/iter |
0.74 |
Pointer_Object_Traverse |
23.72044949443661 ns/iter |
29.498679480754337 ns/iter |
0.80 |
Pointer_Object_Try_Traverse |
25.35739257109845 ns/iter |
30.250554748787277 ns/iter |
0.84 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
110.83092432084875 ns/iter |
174.27387654438024 ns/iter |
0.64 |
Pointer_Walker_Schema_ISO_Language |
1271688.2084094994 ns/iter |
1620405.3435293483 ns/iter |
0.78 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
986671.3041018875 ns/iter |
1219186.4130053753 ns/iter |
0.81 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1678583.0072115334 ns/iter |
1655849.0562060934 ns/iter |
1.01 |
Pointer_Position_Tracker_Get_Deeply_Nested |
544.5318495785169 ns/iter |
634.7307164788411 ns/iter |
0.86 |
JSONPath_Descendant_Filter_Nested |
1211.5623585825654 ns/iter |
1538.733957163287 ns/iter |
0.79 |
URITemplateRouter_Create |
17090.774971767605 ns/iter |
23127.394199889757 ns/iter |
0.74 |
URITemplateRouter_Match |
131.48106762825685 ns/iter |
174.86813650526045 ns/iter |
0.75 |
URITemplateRouter_Match_BasePath |
158.77143555782766 ns/iter |
205.2990117726736 ns/iter |
0.77 |
URITemplateRouterView_Restore |
7894.9352321461165 ns/iter |
8499.753263613933 ns/iter |
0.93 |
URITemplateRouterView_Match |
107.65065606109086 ns/iter |
147.06510255813797 ns/iter |
0.73 |
URITemplateRouterView_Match_BasePath |
125.35679725068677 ns/iter |
163.94712319486 ns/iter |
0.76 |
URITemplateRouterView_Arguments |
354.76814203772517 ns/iter |
441.56896754666445 ns/iter |
0.80 |
JSONL_Parse_Large |
7151557.530612397 ns/iter |
9381133.472972296 ns/iter |
0.76 |
JSONL_Parse_Large_GZIP |
8502584.84337361 ns/iter |
10876846.169230703 ns/iter |
0.78 |
JSONLD_Catalog_Annotation_List_Populate |
474767.6255956191 ns/iter |
599894.2444061859 ns/iter |
0.79 |
JSONLD_Catalog_Materialize |
3098414.5614035353 ns/iter |
3640045.578680111 ns/iter |
0.85 |
HTML_Build_Table_100000 |
50638053.15384029 ns/iter |
57997384.18181732 ns/iter |
0.87 |
HTML_Render_Table_100000 |
2093510.1586826001 ns/iter |
1917230.4699452836 ns/iter |
1.09 |
GZIP_Compress_ISO_Language_Set_3_Locations |
27534908.880002152 ns/iter |
32445417.545452736 ns/iter |
0.85 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
3010594.064655226 ns/iter |
4280299.220858783 ns/iter |
0.70 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1640346.7611240319 ns/iter |
1858759.8455285493 ns/iter |
0.88 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
196236.4213625103 ns/iter |
360898.020544466 ns/iter |
0.54 |
JOSE_VerifySignature_RS256 |
49824.23815283821 ns/iter |
60270.45016411132 ns/iter |
0.83 |
JOSE_VerifySignature_ES512 |
2198406.874214064 ns/iter |
2430034.219511937 ns/iter |
0.90 |
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: a78314b | Previous: 9ba55aa | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
22070.858869307598 ns/iter |
22022.37305982556 ns/iter |
1.00 |
JOSE_VerifySignature_ES512 |
575661.0632183413 ns/iter |
575751.325370611 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Locations |
37019221.684210226 ns/iter |
36459859.526315235 ns/iter |
1.02 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4302615.208588956 ns/iter |
4238620.224243112 ns/iter |
1.02 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2060480.8176468692 ns/iter |
2028520.8000000303 ns/iter |
1.02 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
381787.2450873546 ns/iter |
377865.2670270448 ns/iter |
1.01 |
HTML_Build_Table_100000 |
55920173.81818757 ns/iter |
54778969.833345555 ns/iter |
1.02 |
HTML_Render_Table_100000 |
2124771.7560238224 ns/iter |
1957758.033707511 ns/iter |
1.09 |
JSONLD_Catalog_Annotation_List_Populate |
678191.9250243547 ns/iter |
688109.4331705887 ns/iter |
0.99 |
JSONLD_Catalog_Materialize |
3487017.5247524544 ns/iter |
3522820.9698501513 ns/iter |
0.99 |
JSONL_Parse_Large |
10092513.614285639 ns/iter |
10155624.855071332 ns/iter |
0.99 |
JSONL_Parse_Large_GZIP |
11422558.754098704 ns/iter |
11509200.300001035 ns/iter |
0.99 |
URITemplateRouter_Create |
20898.13617680307 ns/iter |
21124.804787598277 ns/iter |
0.99 |
URITemplateRouter_Match |
150.03702119748297 ns/iter |
161.82937682508577 ns/iter |
0.93 |
URITemplateRouter_Match_BasePath |
181.39576984136644 ns/iter |
180.07971805013824 ns/iter |
1.01 |
URITemplateRouterView_Restore |
8454.260964178302 ns/iter |
8460.854097946461 ns/iter |
1.00 |
URITemplateRouterView_Match |
122.36616072452286 ns/iter |
128.1615812627241 ns/iter |
0.95 |
URITemplateRouterView_Match_BasePath |
143.33507602168834 ns/iter |
144.33585010171996 ns/iter |
0.99 |
URITemplateRouterView_Arguments |
469.03580606885527 ns/iter |
469.45346058350515 ns/iter |
1.00 |
JSONPath_Descendant_Filter_Nested |
1593.351184078324 ns/iter |
1610.985842949958 ns/iter |
0.99 |
Pointer_Object_Traverse |
23.293976786111536 ns/iter |
22.91052100860483 ns/iter |
1.02 |
Pointer_Object_Try_Traverse |
25.986489136311537 ns/iter |
25.87383088146686 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
127.01841765915961 ns/iter |
131.5861373770398 ns/iter |
0.97 |
Pointer_Walker_Schema_ISO_Language |
1412451.044806377 ns/iter |
1444957.2133889315 ns/iter |
0.98 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1230897.0550773246 ns/iter |
1206910.8801368463 ns/iter |
1.02 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1713427.0833332276 ns/iter |
1690143.138014082 ns/iter |
1.01 |
Pointer_Position_Tracker_Get_Deeply_Nested |
623.0321796435244 ns/iter |
624.7369267977572 ns/iter |
1.00 |
JSON_Array_Of_Objects_Unique |
477.65501682674204 ns/iter |
458.975275210454 ns/iter |
1.04 |
JSON_Parse_1 |
5194.903633271872 ns/iter |
5200.843280387193 ns/iter |
1.00 |
JSON_Parse_Real |
5639.832201170335 ns/iter |
5699.128457188009 ns/iter |
0.99 |
JSON_Parse_Decimal |
10265.87501820847 ns/iter |
10059.13089845905 ns/iter |
1.02 |
JSON_Parse_Schema_ISO_Language |
3596880.6820514705 ns/iter |
3570879.500000733 ns/iter |
1.01 |
JSON_Parse_Integer |
3748.367034441999 ns/iter |
3763.458750492535 ns/iter |
1.00 |
JSON_Parse_String_NonSSO_Plain |
3580.517470591974 ns/iter |
3614.6502807254496 ns/iter |
0.99 |
JSON_Parse_String_SSO_Plain |
3194.3061507226435 ns/iter |
3150.264852276446 ns/iter |
1.01 |
JSON_Parse_String_Escape_Heavy |
17019.29162767958 ns/iter |
16880.59973927651 ns/iter |
1.01 |
JSON_Parse_Object_Short_Keys |
8398.55654633392 ns/iter |
8400.409391868421 ns/iter |
1.00 |
JSON_Parse_Object_Scalar_Properties |
4268.735080174057 ns/iter |
4285.8977971359245 ns/iter |
1.00 |
JSON_Parse_Object_Array_Properties |
6383.18059389995 ns/iter |
7551.632253121722 ns/iter |
0.85 |
JSON_Parse_Object_Object_Properties |
6409.808703369958 ns/iter |
7639.310206031042 ns/iter |
0.84 |
JSON_Parse_Nested_Containers |
38727.226433914126 ns/iter |
43215.354806854295 ns/iter |
0.90 |
JSON_From_String_Copy |
8.541238310617032 ns/iter |
8.417462703045699 ns/iter |
1.01 |
JSON_From_String_Temporary |
7.183227971824351 ns/iter |
7.386037708522089 ns/iter |
0.97 |
JSON_Number_To_Double |
22.617672078930614 ns/iter |
22.129179656710146 ns/iter |
1.02 |
JSON_Object_At_Last_Key/8 |
5.636616422815651 ns/iter |
5.613337090396754 ns/iter |
1.00 |
JSON_Object_At_Last_Key/32 |
21.81756289609171 ns/iter |
21.534245661617806 ns/iter |
1.01 |
JSON_Object_At_Last_Key/128 |
88.50587463648222 ns/iter |
87.71568645004844 ns/iter |
1.01 |
JSON_Object_At_Last_Key/512 |
392.7708682137568 ns/iter |
392.6077884246601 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
75.51285891477025 ns/iter |
76.14774051730386 ns/iter |
0.99 |
JSON_Equality_Helm_Chart_Lock |
159.18476488132313 ns/iter |
156.9093518989879 ns/iter |
1.01 |
JSON_Divisible_By_Decimal |
266.51535155328423 ns/iter |
262.83944547608723 ns/iter |
1.01 |
JSON_String_Equal/10 |
5.4121413612002245 ns/iter |
5.421101175603286 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.037610028988321 ns/iter |
6.040199408909063 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7489920672520152 ns/iter |
0.7496701476275874 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.197667296025113 ns/iter |
25.192343764074327 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.569745608123886 ns/iter |
2.5781591684052585 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.5699643060431896 ns/iter |
2.5708349820494325 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.2548178084997428 ns/iter |
1.2501296031760134 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
12.452712417954492 ns/iter |
12.443278769893546 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.1198994443519403 ns/iter |
3.115943975644215 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.4299298851945315 ns/iter |
3.4263121569929935 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.128399296780972 ns/iter |
3.140606304168865 ns/iter |
1.00 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.6234050130694253 ns/iter |
0.622831060104547 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.6252640399738213 ns/iter |
0.6228896553316564 ns/iter |
1.00 |
Regex_Period_Asterisk |
0.6238404843947436 ns/iter |
0.62324454946399 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
0.6235287379697251 ns/iter |
0.6232504043618136 ns/iter |
1.00 |
Regex_Period_Plus |
0.6234919246139156 ns/iter |
0.6230151207351368 ns/iter |
1.00 |
Regex_Period |
0.6229853654306717 ns/iter |
0.6230672996229282 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
0.6235912688865279 ns/iter |
0.6229001993924556 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.624939113784758 ns/iter |
0.6252013012702768 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
0.6226369193024825 ns/iter |
0.6227683641280423 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.6228661652432445 ns/iter |
0.6231352762126396 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
4.051415787587654 ns/iter |
4.0503210059186765 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
28.65421578894266 ns/iter |
28.41569670196302 ns/iter |
1.01 |
Regex_Caret_Slash_Period_Asterisk |
4.362528359553797 ns/iter |
4.3842782229678505 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
1.2475340734801605 ns/iter |
1.2447491548851621 ns/iter |
1.00 |
Regex_Nested_Backtrack |
37.14298102876413 ns/iter |
45.924364517369824 ns/iter |
0.81 |
This comment was automatically generated by workflow using github-action-benchmark.
Fixes: #2741
Signed-off-by: Juan Cruz Viotti jv@jviotti.com