Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: Adds a new Core Changes:
Technical Notes: The email validator builds on existing Core DNS/IP validators to keep domain/address-literal semantics consistent across modules. 🤖 Was this summary useful? React with 👍 or 👎 |
|
|
||
| // RFC 5321 §4.1.2: qtextSMTP excludes NUL | ||
| TEST(Email, invalid_quoted_qtext_nul) { | ||
| EXPECT_FALSE(sourcemeta::core::is_email(std::string_view{"\"\x00\"@b", 6})); |
There was a problem hiding this comment.
test/email/email_test.cc:542: The std::string_view{"\"\x00\"@b", 6} length appears to include the string literal’s terminator NUL, so this test is exercising an extra trailing \0 beyond “NUL inside qtextSMTP”. This can make the test pass for the wrong reason and reduce coverage of the intended case.
Severity: low
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
There was a problem hiding this comment.
3 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/email/email.cc">
<violation number="1" location="src/core/email/email.cc:167">
P2: Add a domain-part length check before parsing address-literals; overlong bracketed domains currently bypass the 255-octet limit.</violation>
</file>
<file name="test/email/email_test.cc">
<violation number="1" location="test/email/email_test.cc:330">
P2: The constructed domain is 257 bytes long, contradicting the test name and comment which specify a 256-byte domain.</violation>
<violation number="2" location="test/email/email_test.cc:542">
P2: Off-by-one in `std::string_view` length: the literal `"\"\x00\"@b"` contains 5 intended bytes (`"`, NUL, `"`, `@`, `b`), but length `6` includes the implicit C string terminator. This makes the view `"\0\"@b\0`, so the test may reject the input due to the trailing NUL in the domain rather than the embedded NUL in qtextSMTP. Change the length to `5`.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
| return false; | ||
| } | ||
|
|
||
| const auto domain{value.substr(position + 1)}; |
There was a problem hiding this comment.
P2: Add a domain-part length check before parsing address-literals; overlong bracketed domains currently bypass the 255-octet limit.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/core/email/email.cc, line 167:
<comment>Add a domain-part length check before parsing address-literals; overlong bracketed domains currently bypass the 255-octet limit.</comment>
<file context>
@@ -0,0 +1,196 @@
+ return false;
+ }
+
+ const auto domain{value.substr(position + 1)};
+
+ // RFC 5321 §4.1.3: address-literal = "[" ( IPv4 / IPv6 / General ) "]"
</file context>
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: 24c5ae6 | Previous: 5cf57e5 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.538022671505548 ns/iter |
2.4955693992234584 ns/iter |
1.02 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.1790226184144124 ns/iter |
2.1990544538088637 ns/iter |
0.99 |
Regex_Period_Asterisk |
2.4911711257193425 ns/iter |
2.492495484188677 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
2.1799659711663617 ns/iter |
2.1919916423514447 ns/iter |
0.99 |
Regex_Period_Plus |
3.1171376352323015 ns/iter |
3.117590952353833 ns/iter |
1.00 |
Regex_Period |
2.802458413901554 ns/iter |
2.5000062212577943 ns/iter |
1.12 |
Regex_Caret_Period_Plus_Dollar |
3.1145888176296976 ns/iter |
2.8031094556563616 ns/iter |
1.11 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.8024131802543075 ns/iter |
2.4928435395190416 ns/iter |
1.12 |
Regex_Caret_Period_Asterisk_Dollar |
3.7350839745801556 ns/iter |
2.492446297177029 ns/iter |
1.50 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.430940483408764 ns/iter |
2.1962447183549996 ns/iter |
1.56 |
Regex_Caret_X_Hyphen |
7.168855681119404 ns/iter |
6.233710455823183 ns/iter |
1.15 |
Regex_Period_Md_Dollar |
28.378958364594077 ns/iter |
27.464428880525528 ns/iter |
1.03 |
Regex_Caret_Slash_Period_Asterisk |
6.556686428993433 ns/iter |
6.557459215187661 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
3.735909256652178 ns/iter |
3.735273806924661 ns/iter |
1.00 |
Regex_Nested_Backtrack |
37.1844362333127 ns/iter |
37.09397802673807 ns/iter |
1.00 |
JSON_Array_Of_Objects_Unique |
486.06536011298783 ns/iter |
485.11119899141255 ns/iter |
1.00 |
JSON_Parse_1 |
5777.234051265754 ns/iter |
5822.296691194815 ns/iter |
0.99 |
JSON_Parse_Real |
10877.021044946878 ns/iter |
11216.169695702394 ns/iter |
0.97 |
JSON_Parse_Decimal |
11066.288323800312 ns/iter |
11043.926774218311 ns/iter |
1.00 |
JSON_Parse_Schema_ISO_Language |
3583659.7487180675 ns/iter |
3755707.5351355094 ns/iter |
0.95 |
JSON_Fast_Hash_Helm_Chart_Lock |
66.16211548588105 ns/iter |
66.08947614471401 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
161.3075356357401 ns/iter |
156.75498259563958 ns/iter |
1.03 |
JSON_Divisible_By_Decimal |
248.3333455240465 ns/iter |
252.02422707570713 ns/iter |
0.99 |
JSON_String_Equal/10 |
5.926105039358895 ns/iter |
5.922704116992902 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.549741169295916 ns/iter |
6.549080846096947 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9354066776676767 ns/iter |
0.9385858845403311 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.628761756955795 ns/iter |
10.274184840292978 ns/iter |
1.42 |
JSON_String_Fast_Hash/10 |
2.8024748414818164 ns/iter |
2.8047815486627887 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.8027651282278008 ns/iter |
2.8025115522096504 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
2.5772861556089808 ns/iter |
2.19362235357952 ns/iter |
1.17 |
JSON_String_Key_Hash/100 |
9.041431633421602 ns/iter |
6.539664787371787 ns/iter |
1.38 |
JSON_Object_Defines_Miss_Same_Length |
3.753941413660415 ns/iter |
3.748883306602646 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.7398333522803906 ns/iter |
3.74322025145057 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.740212767097617 ns/iter |
3.746982684373874 ns/iter |
1.00 |
Pointer_Object_Traverse |
25.650670508024426 ns/iter |
23.92563675728804 ns/iter |
1.07 |
Pointer_Object_Try_Traverse |
27.914857760226074 ns/iter |
28.310880566622405 ns/iter |
0.99 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
191.30704828357693 ns/iter |
178.0342904538131 ns/iter |
1.07 |
Pointer_Walker_Schema_ISO_Language |
3004972.952586298 ns/iter |
3032697.261802795 ns/iter |
0.99 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1451708.7318087502 ns/iter |
1447088.7334709915 ns/iter |
1.00 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1928037.7146816158 ns/iter |
2132208.4314867076 ns/iter |
0.90 |
Pointer_Position_Tracker_Get_Deeply_Nested |
615.5952156860761 ns/iter |
579.7444751065259 ns/iter |
1.06 |
Schema_Frame_WoT_References |
5246413.052631416 ns/iter |
5206970.946969395 ns/iter |
1.01 |
Schema_Frame_OMC_References |
21197277.606061656 ns/iter |
21364015.7575748 ns/iter |
0.99 |
Schema_Frame_OMC_Locations |
19510216.249999404 ns/iter |
19743117.861111157 ns/iter |
0.99 |
Schema_Frame_ISO_Language_Locations |
97841826.00001638 ns/iter |
103778465.8333294 ns/iter |
0.94 |
Schema_Frame_KrakenD_References |
38411778.83333557 ns/iter |
39511108.722226456 ns/iter |
0.97 |
Schema_Frame_KrakenD_Reachable |
559543417.9999757 ns/iter |
564727346.0000407 ns/iter |
0.99 |
Schema_Iterator_ISO_Language |
3006138.7777777785 ns/iter |
3065470.199134053 ns/iter |
0.98 |
Schema_Frame_ISO_Language_Locations_To_JSON |
108899339.39999993 ns/iter |
108516790.80001304 ns/iter |
1.00 |
Schema_Tracker_ISO_Language |
4724244.141891939 ns/iter |
5034276.328571455 ns/iter |
0.94 |
Schema_Tracker_ISO_Language_To_JSON |
19275449.861109134 ns/iter |
19273174.194444843 ns/iter |
1.00 |
Schema_Format_ISO_Language_To_JSON |
103591150.5714304 ns/iter |
108940143.14286388 ns/iter |
0.95 |
Schema_Bundle_Meta_2020_12 |
1683693.918659735 ns/iter |
1697156.9004886742 ns/iter |
0.99 |
Schema_Frame_Many_Resources_References |
368134704.49999386 ns/iter |
375402453.9999818 ns/iter |
0.98 |
EditorSchema_ForEditor_EmbeddedResources |
13839204.686280703 ns/iter |
13990397.439999923 ns/iter |
0.99 |
URITemplateRouter_Create |
32168.129249211244 ns/iter |
31658.773055731275 ns/iter |
1.02 |
URITemplateRouter_Match |
174.58579061638855 ns/iter |
172.2304492804822 ns/iter |
1.01 |
URITemplateRouter_Match_BasePath |
202.65984801290188 ns/iter |
199.26933937215958 ns/iter |
1.02 |
URITemplateRouterView_Restore |
7663.28734481588 ns/iter |
7910.396195938709 ns/iter |
0.97 |
URITemplateRouterView_Match |
143.72836710609795 ns/iter |
145.30893790143872 ns/iter |
0.99 |
URITemplateRouterView_Match_BasePath |
163.22253856651486 ns/iter |
164.97211677866875 ns/iter |
0.99 |
URITemplateRouterView_Arguments |
457.59035504292916 ns/iter |
476.5447999057836 ns/iter |
0.96 |
JSONL_Parse_Large |
10347808.911764307 ns/iter |
10795688.369230798 ns/iter |
0.96 |
JSONL_Parse_Large_GZIP |
11636262.466667328 ns/iter |
11993009.70689631 ns/iter |
0.97 |
HTML_Build_Table_100000 |
62653721.99999836 ns/iter |
73651238.69999479 ns/iter |
0.85 |
HTML_Render_Table_100000 |
5301017.900763306 ns/iter |
5394900.100775201 ns/iter |
0.98 |
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: 24c5ae6 | Previous: 5cf57e5 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.065143472101664 ns/iter |
2.1085039195535242 ns/iter |
0.98 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.9795825002775485 ns/iter |
2.2161931045353724 ns/iter |
0.89 |
Regex_Period_Asterisk |
1.7450460291507297 ns/iter |
2.1620661868362308 ns/iter |
0.81 |
Regex_Group_Period_Asterisk_Group |
2.0937435525970782 ns/iter |
2.096785615994997 ns/iter |
1.00 |
Regex_Period_Plus |
2.9960077954444406 ns/iter |
2.798216653213111 ns/iter |
1.07 |
Regex_Period |
2.5076420011352587 ns/iter |
2.8688657285086325 ns/iter |
0.87 |
Regex_Caret_Period_Plus_Dollar |
2.610710052243179 ns/iter |
2.91489174703508 ns/iter |
0.90 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.3811205227757157 ns/iter |
2.9484889877657445 ns/iter |
0.81 |
Regex_Caret_Period_Asterisk_Dollar |
2.416651396671646 ns/iter |
2.451100779685849 ns/iter |
0.99 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.813090013713215 ns/iter |
2.2915874945450696 ns/iter |
0.79 |
Regex_Caret_X_Hyphen |
6.359525338002579 ns/iter |
8.092381295584016 ns/iter |
0.79 |
Regex_Period_Md_Dollar |
18.442471334202395 ns/iter |
24.71063563191479 ns/iter |
0.75 |
Regex_Caret_Slash_Period_Asterisk |
8.793716917556262 ns/iter |
8.934400460553048 ns/iter |
0.98 |
Regex_Caret_Period_Range_Dollar |
1.751198190906924 ns/iter |
2.3017252687337963 ns/iter |
0.76 |
Regex_Nested_Backtrack |
27.0654713429178 ns/iter |
35.52599822440973 ns/iter |
0.76 |
JSON_Array_Of_Objects_Unique |
402.96785635118755 ns/iter |
514.5946249999724 ns/iter |
0.78 |
JSON_Parse_1 |
5326.644686979066 ns/iter |
5259.340000000066 ns/iter |
1.01 |
JSON_Parse_Real |
7667.234666698478 ns/iter |
9431.796266416452 ns/iter |
0.81 |
JSON_Parse_Decimal |
10781.591240459064 ns/iter |
11907.657238402435 ns/iter |
0.91 |
JSON_Parse_Schema_ISO_Language |
6106073.165352699 ns/iter |
5936516.181819112 ns/iter |
1.03 |
JSON_Fast_Hash_Helm_Chart_Lock |
78.75568899278294 ns/iter |
81.36909089245897 ns/iter |
0.97 |
JSON_Equality_Helm_Chart_Lock |
183.10453128545018 ns/iter |
196.33926332700293 ns/iter |
0.93 |
JSON_Divisible_By_Decimal |
244.50498341588278 ns/iter |
261.0413832244961 ns/iter |
0.94 |
JSON_String_Equal/10 |
8.670837735985554 ns/iter |
11.014722228415259 ns/iter |
0.79 |
JSON_String_Equal/100 |
8.170900160711922 ns/iter |
8.767641730433038 ns/iter |
0.93 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9717431399602332 ns/iter |
1.0247654231756045 ns/iter |
0.95 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.931266011120147 ns/iter |
5.143841392602923 ns/iter |
0.76 |
JSON_String_Fast_Hash/10 |
2.683097375355286 ns/iter |
2.9990298700055646 ns/iter |
0.89 |
JSON_String_Fast_Hash/100 |
2.490311172591988 ns/iter |
2.639693386560681 ns/iter |
0.94 |
JSON_String_Key_Hash/10 |
1.7964918006383794 ns/iter |
2.2351865591379556 ns/iter |
0.80 |
JSON_String_Key_Hash/100 |
2.6438593538400044 ns/iter |
2.9986322414016233 ns/iter |
0.88 |
JSON_Object_Defines_Miss_Same_Length |
2.8759390687371753 ns/iter |
3.3813727086277354 ns/iter |
0.85 |
JSON_Object_Defines_Miss_Too_Small |
2.4839804449223957 ns/iter |
3.4089807837470496 ns/iter |
0.73 |
JSON_Object_Defines_Miss_Too_Large |
2.5402352646910584 ns/iter |
3.287337061126163 ns/iter |
0.77 |
Pointer_Object_Traverse |
14.80644638814433 ns/iter |
20.039574159902756 ns/iter |
0.74 |
Pointer_Object_Try_Traverse |
20.61307677924722 ns/iter |
26.348532802483998 ns/iter |
0.78 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
199.197736375359 ns/iter |
213.75699103813935 ns/iter |
0.93 |
Pointer_Walker_Schema_ISO_Language |
4423868.630572971 ns/iter |
6049972.218751994 ns/iter |
0.73 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1066470.229607066 ns/iter |
1669614.0776700517 ns/iter |
0.64 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1560510.669081771 ns/iter |
2025841.9551721779 ns/iter |
0.77 |
Pointer_Position_Tracker_Get_Deeply_Nested |
435.90237554432457 ns/iter |
527.4012080001285 ns/iter |
0.83 |
Schema_Frame_WoT_References |
5885679.169998638 ns/iter |
7858385.906542382 ns/iter |
0.75 |
Schema_Frame_OMC_References |
30193482.62499951 ns/iter |
37977977.94116859 ns/iter |
0.80 |
Schema_Frame_OMC_Locations |
30750701.923072763 ns/iter |
39555539.473691456 ns/iter |
0.78 |
Schema_Frame_ISO_Language_Locations |
86869229.16664723 ns/iter |
118181958.33332841 ns/iter |
0.74 |
Schema_Frame_KrakenD_References |
55909768.90909422 ns/iter |
70625416.75000489 ns/iter |
0.79 |
Schema_Frame_KrakenD_Reachable |
496105771.4999697 ns/iter |
841989749.9998114 ns/iter |
0.59 |
Schema_Iterator_ISO_Language |
3040889.945148454 ns/iter |
3931438.5474861097 ns/iter |
0.77 |
Schema_Frame_ISO_Language_Locations_To_JSON |
99936422.57144788 ns/iter |
130144739.74999419 ns/iter |
0.77 |
Schema_Tracker_ISO_Language |
7869233.07291687 ns/iter |
9321961.206895182 ns/iter |
0.84 |
Schema_Tracker_ISO_Language_To_JSON |
16951236.413042944 ns/iter |
18595435.483876504 ns/iter |
0.91 |
Schema_Format_ISO_Language_To_JSON |
93855135.50000724 ns/iter |
108140208.1666738 ns/iter |
0.87 |
Schema_Bundle_Meta_2020_12 |
1662191.5613630873 ns/iter |
2017953.9404730962 ns/iter |
0.82 |
Schema_Frame_Many_Resources_References |
374348187.5000043 ns/iter |
441040874.99999875 ns/iter |
0.85 |
EditorSchema_ForEditor_EmbeddedResources |
13313431.959195256 ns/iter |
15253743.630434813 ns/iter |
0.87 |
URITemplateRouter_Create |
26092.782555285485 ns/iter |
34733.30422398941 ns/iter |
0.75 |
URITemplateRouter_Match |
181.8487752483191 ns/iter |
245.7586644532189 ns/iter |
0.74 |
URITemplateRouter_Match_BasePath |
207.07914251150083 ns/iter |
350.82180808496287 ns/iter |
0.59 |
URITemplateRouterView_Restore |
10719.203840027989 ns/iter |
17461.943189895035 ns/iter |
0.61 |
URITemplateRouterView_Match |
159.49354056800877 ns/iter |
194.82421170374008 ns/iter |
0.82 |
URITemplateRouterView_Match_BasePath |
159.8760524888437 ns/iter |
242.2901702331262 ns/iter |
0.66 |
URITemplateRouterView_Arguments |
437.2740723213947 ns/iter |
461.51346881094213 ns/iter |
0.95 |
JSONL_Parse_Large |
14027060.962963266 ns/iter |
15548874.086957568 ns/iter |
0.90 |
JSONL_Parse_Large_GZIP |
18321565.000001103 ns/iter |
18258836.5384606 ns/iter |
1.00 |
HTML_Build_Table_100000 |
82222907.44444965 ns/iter |
71807758.3999957 ns/iter |
1.15 |
HTML_Render_Table_100000 |
6471211.942307666 ns/iter |
5395044.791667184 ns/iter |
1.20 |
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: 24c5ae6 | Previous: 5cf57e5 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
7.981469866071527 ns/iter |
7.275233035715344 ns/iter |
1.10 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
8.024578124999744 ns/iter |
7.267755580355433 ns/iter |
1.10 |
Regex_Period_Asterisk |
8.024068080358303 ns/iter |
7.277516964285675 ns/iter |
1.10 |
Regex_Group_Period_Asterisk_Group |
8.06215174972461 ns/iter |
7.264937500000965 ns/iter |
1.11 |
Regex_Period_Plus |
10.281068257673285 ns/iter |
8.408431919644244 ns/iter |
1.22 |
Regex_Period |
10.329124999998385 ns/iter |
8.416794605284137 ns/iter |
1.23 |
Regex_Caret_Period_Plus_Dollar |
10.392407096462678 ns/iter |
8.418667410712288 ns/iter |
1.23 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
10.434077631992004 ns/iter |
8.419771205357815 ns/iter |
1.24 |
Regex_Caret_Period_Asterisk_Dollar |
8.061414062500003 ns/iter |
7.269285714284837 ns/iter |
1.11 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
8.0830044642864 ns/iter |
7.271610491069882 ns/iter |
1.11 |
Regex_Caret_X_Hyphen |
12.548496874998705 ns/iter |
9.929915580670233 ns/iter |
1.26 |
Regex_Period_Md_Dollar |
41.80186303612595 ns/iter |
33.71611533422344 ns/iter |
1.24 |
Regex_Caret_Slash_Period_Asterisk |
12.054914285714956 ns/iter |
9.591879687498304 ns/iter |
1.26 |
Regex_Caret_Period_Range_Dollar |
10.351891025216176 ns/iter |
8.113830767346789 ns/iter |
1.28 |
Regex_Nested_Backtrack |
51.59303000000364 ns/iter |
43.48624403136872 ns/iter |
1.19 |
JSON_Array_Of_Objects_Unique |
481.8489427821989 ns/iter |
378.0464324918124 ns/iter |
1.27 |
JSON_Parse_1 |
8476.008928572603 ns/iter |
7493.982142856888 ns/iter |
1.13 |
JSON_Parse_Real |
17150.271318780808 ns/iter |
14548.746434166105 ns/iter |
1.18 |
JSON_Parse_Decimal |
18080.202322783094 ns/iter |
15058.435453415334 ns/iter |
1.20 |
JSON_Parse_Schema_ISO_Language |
7267117.77777685 ns/iter |
6731406.249999492 ns/iter |
1.08 |
JSON_Fast_Hash_Helm_Chart_Lock |
64.59969000000001 ns/iter |
42.34741971914798 ns/iter |
1.53 |
JSON_Equality_Helm_Chart_Lock |
279.20694735687954 ns/iter |
233.1562909423262 ns/iter |
1.20 |
JSON_Divisible_By_Decimal |
274.73576003283335 ns/iter |
273.80682706216817 ns/iter |
1.00 |
JSON_String_Equal/10 |
13.342632142857674 ns/iter |
9.482199064811677 ns/iter |
1.41 |
JSON_String_Equal/100 |
14.62218743472166 ns/iter |
11.377848437501115 ns/iter |
1.29 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.391945357142536 ns/iter |
1.735079108304603 ns/iter |
1.38 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
13.49283007369238 ns/iter |
9.62937031249922 ns/iter |
1.40 |
JSON_String_Fast_Hash/10 |
3.4193799492516908 ns/iter |
2.0466593503945414 ns/iter |
1.67 |
JSON_String_Fast_Hash/100 |
3.4366331303702937 ns/iter |
2.0477698637856316 ns/iter |
1.68 |
JSON_String_Key_Hash/10 |
4.2119156231193955 ns/iter |
2.6691810020813564 ns/iter |
1.58 |
JSON_String_Key_Hash/100 |
17.64500372897371 ns/iter |
13.753840117172212 ns/iter |
1.28 |
JSON_Object_Defines_Miss_Same_Length |
5.379150892857913 ns/iter |
5.231547999999293 ns/iter |
1.03 |
JSON_Object_Defines_Miss_Too_Small |
4.080892685859013 ns/iter |
3.7903895089286266 ns/iter |
1.08 |
JSON_Object_Defines_Miss_Too_Large |
4.08405078125007 ns/iter |
3.502222716959759 ns/iter |
1.17 |
Pointer_Object_Traverse |
47.18626444611111 ns/iter |
36.376927921840384 ns/iter |
1.30 |
Pointer_Object_Try_Traverse |
60.73657142857363 ns/iter |
47.56786713319776 ns/iter |
1.28 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
197.8768795590497 ns/iter |
176.6602455356901 ns/iter |
1.12 |
Pointer_Walker_Schema_ISO_Language |
15506144.000000859 ns/iter |
12328412.499998974 ns/iter |
1.26 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2299425.75757639 ns/iter |
1911210.357142831 ns/iter |
1.20 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3865240.782122569 ns/iter |
3810910.055865317 ns/iter |
1.01 |
Pointer_Position_Tracker_Get_Deeply_Nested |
667.7200144106134 ns/iter |
528.3495190619811 ns/iter |
1.26 |
Schema_Frame_WoT_References |
10928256.000000449 ns/iter |
9572906.666665707 ns/iter |
1.14 |
Schema_Frame_OMC_References |
48893918.181833714 ns/iter |
42388237.5000062 ns/iter |
1.15 |
Schema_Frame_OMC_Locations |
43110981.25000967 ns/iter |
38908183.33333199 ns/iter |
1.11 |
Schema_Frame_ISO_Language_Locations |
248960299.99998367 ns/iter |
189629899.9999999 ns/iter |
1.31 |
Schema_Frame_KrakenD_References |
98692371.42856945 ns/iter |
82338522.22221887 ns/iter |
1.20 |
Schema_Frame_KrakenD_Reachable |
606158600.0000716 ns/iter |
614161499.9999092 ns/iter |
0.99 |
Schema_Iterator_ISO_Language |
7353190.999999697 ns/iter |
6720112.50000131 ns/iter |
1.09 |
Schema_Frame_ISO_Language_Locations_To_JSON |
381012800.0000077 ns/iter |
290107300.0000451 ns/iter |
1.31 |
Schema_Tracker_ISO_Language |
11910487.499997253 ns/iter |
10865842.18750275 ns/iter |
1.10 |
Schema_Tracker_ISO_Language_To_JSON |
56117718.18181214 ns/iter |
51421580.00001018 ns/iter |
1.09 |
Schema_Format_ISO_Language_To_JSON |
246038099.99992642 ns/iter |
185826700.00000688 ns/iter |
1.32 |
Schema_Bundle_Meta_2020_12 |
3057561.0169461914 ns/iter |
2759165.8634494715 ns/iter |
1.11 |
Schema_Frame_Many_Resources_References |
1702152000.0000691 ns/iter |
1365895299.9999201 ns/iter |
1.25 |
EditorSchema_ForEditor_EmbeddedResources |
31931204.761934035 ns/iter |
26343655.9999991 ns/iter |
1.21 |
URITemplateRouter_Create |
42371.60248297596 ns/iter |
38409.62661380152 ns/iter |
1.10 |
URITemplateRouter_Match |
241.48714285713268 ns/iter |
239.69662503383697 ns/iter |
1.01 |
URITemplateRouter_Match_BasePath |
276.5325235059828 ns/iter |
272.3902532316761 ns/iter |
1.02 |
URITemplateRouterView_Restore |
32567.10729854941 ns/iter |
24021.153781764675 ns/iter |
1.36 |
URITemplateRouterView_Match |
180.28244957249584 ns/iter |
155.75685267858066 ns/iter |
1.16 |
URITemplateRouterView_Match_BasePath |
203.77310474224896 ns/iter |
173.11592453899783 ns/iter |
1.18 |
URITemplateRouterView_Arguments |
483.75973334451453 ns/iter |
416.6260963478288 ns/iter |
1.16 |
JSONL_Parse_Large |
31037135.99999537 ns/iter |
26605534.615380466 ns/iter |
1.17 |
JSONL_Parse_Large_GZIP |
30531054.545463122 ns/iter |
26427515.384616874 ns/iter |
1.16 |
HTML_Build_Table_100000 |
99691971.42855333 ns/iter |
95109442.85716505 ns/iter |
1.05 |
HTML_Render_Table_100000 |
9544898.666666389 ns/iter |
12271640.625002079 ns/iter |
0.78 |
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: 24c5ae6 | Previous: 5cf57e5 | Ratio |
|---|---|---|---|
HTML_Build_Table_100000 |
69398583.20001803 ns/iter |
62331696.818174265 ns/iter |
1.11 |
HTML_Render_Table_100000 |
5757476.845527838 ns/iter |
5168009.1119412435 ns/iter |
1.11 |
JSONL_Parse_Large |
12752056.472725764 ns/iter |
12716040.309090784 ns/iter |
1.00 |
JSONL_Parse_Large_GZIP |
13930445.26000267 ns/iter |
13926686.199997675 ns/iter |
1.00 |
URITemplateRouter_Create |
30680.33838188405 ns/iter |
31612.138133266737 ns/iter |
0.97 |
URITemplateRouter_Match |
165.4225633035534 ns/iter |
170.81591500039525 ns/iter |
0.97 |
URITemplateRouter_Match_BasePath |
199.2967999462075 ns/iter |
197.86756950975527 ns/iter |
1.01 |
URITemplateRouterView_Restore |
8788.678156821143 ns/iter |
7623.346945405155 ns/iter |
1.15 |
URITemplateRouterView_Match |
131.44300342350923 ns/iter |
136.3952953746044 ns/iter |
0.96 |
URITemplateRouterView_Match_BasePath |
155.7337539423849 ns/iter |
158.08587221265023 ns/iter |
0.99 |
URITemplateRouterView_Arguments |
456.22418540721856 ns/iter |
485.22593943279907 ns/iter |
0.94 |
EditorSchema_ForEditor_EmbeddedResources |
14647990.80850811 ns/iter |
14087153.199989188 ns/iter |
1.04 |
Schema_Frame_WoT_References |
5614878.373015537 ns/iter |
5402146.930768699 ns/iter |
1.04 |
Schema_Frame_OMC_References |
25655611.33333934 ns/iter |
22509450.35483886 ns/iter |
1.14 |
Schema_Frame_OMC_Locations |
23785869.83333359 ns/iter |
20805167.78787431 ns/iter |
1.14 |
Schema_Frame_ISO_Language_Locations |
110151772.66669221 ns/iter |
103986640.66667606 ns/iter |
1.06 |
Schema_Frame_KrakenD_References |
47946520.86666247 ns/iter |
43362227.68749565 ns/iter |
1.11 |
Schema_Frame_KrakenD_Reachable |
640677874.9999375 ns/iter |
543085923.0002625 ns/iter |
1.18 |
Schema_Iterator_ISO_Language |
3231360.7649769764 ns/iter |
3329539.2227488067 ns/iter |
0.97 |
Schema_Frame_ISO_Language_Locations_To_JSON |
246558980.66665336 ns/iter |
218052270.33337358 ns/iter |
1.13 |
Schema_Tracker_ISO_Language |
4816434.116439069 ns/iter |
4848063.3749995325 ns/iter |
0.99 |
Schema_Tracker_ISO_Language_To_JSON |
22355506.483871713 ns/iter |
22649496.161288735 ns/iter |
0.99 |
Schema_Format_ISO_Language_To_JSON |
117079962.50000481 ns/iter |
112668760.4999764 ns/iter |
1.04 |
Schema_Bundle_Meta_2020_12 |
1791169.8102469202 ns/iter |
1805259.3743457366 ns/iter |
0.99 |
Schema_Frame_Many_Resources_References |
410600367.0000291 ns/iter |
406051370.99998957 ns/iter |
1.01 |
Pointer_Object_Traverse |
26.799231650832297 ns/iter |
24.811197027768056 ns/iter |
1.08 |
Pointer_Object_Try_Traverse |
22.12529454432564 ns/iter |
19.87100818530264 ns/iter |
1.11 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
179.48028604090788 ns/iter |
165.91927363982805 ns/iter |
1.08 |
Pointer_Walker_Schema_ISO_Language |
3671393.1827952983 ns/iter |
3377453.7525773994 ns/iter |
1.09 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1570026.310112686 ns/iter |
1632227.6197178552 ns/iter |
0.96 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1772154.0957173973 ns/iter |
1851896.1462765469 ns/iter |
0.96 |
Pointer_Position_Tracker_Get_Deeply_Nested |
435.0743695666091 ns/iter |
393.5954639952862 ns/iter |
1.11 |
JSON_Array_Of_Objects_Unique |
414.13573711484463 ns/iter |
371.7313679880679 ns/iter |
1.11 |
JSON_Parse_1 |
7767.900749979065 ns/iter |
7876.714946782639 ns/iter |
0.99 |
JSON_Parse_Real |
11968.686938707018 ns/iter |
12152.115904410917 ns/iter |
0.98 |
JSON_Parse_Decimal |
16146.928326779878 ns/iter |
17709.839879609426 ns/iter |
0.91 |
JSON_Parse_Schema_ISO_Language |
4755191.530611395 ns/iter |
4708746.193332445 ns/iter |
1.01 |
JSON_Fast_Hash_Helm_Chart_Lock |
59.32049206008234 ns/iter |
61.23113496744459 ns/iter |
0.97 |
JSON_Equality_Helm_Chart_Lock |
201.41659939881976 ns/iter |
169.53847127138272 ns/iter |
1.19 |
JSON_Divisible_By_Decimal |
230.82184427574143 ns/iter |
237.98209767535303 ns/iter |
0.97 |
JSON_String_Equal/10 |
6.4122154902771005 ns/iter |
6.514962210988548 ns/iter |
0.98 |
JSON_String_Equal/100 |
7.0627170276713995 ns/iter |
7.05067932526659 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7146015829597261 ns/iter |
0.6240895245590874 ns/iter |
1.15 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
22.323234780086203 ns/iter |
25.21129723752717 ns/iter |
0.89 |
JSON_String_Fast_Hash/10 |
1.0551831177869724 ns/iter |
0.93822620838784 ns/iter |
1.12 |
JSON_String_Fast_Hash/100 |
1.0556260037518563 ns/iter |
0.9367960628163042 ns/iter |
1.13 |
JSON_String_Key_Hash/10 |
1.7589467962451217 ns/iter |
1.5604870263734358 ns/iter |
1.13 |
JSON_String_Key_Hash/100 |
14.820723356640402 ns/iter |
12.45370606480706 ns/iter |
1.19 |
JSON_Object_Defines_Miss_Same_Length |
3.8733008219953593 ns/iter |
3.427780587419908 ns/iter |
1.13 |
JSON_Object_Defines_Miss_Too_Small |
3.5719301408961015 ns/iter |
3.1190517455778517 ns/iter |
1.15 |
JSON_Object_Defines_Miss_Too_Large |
4.22045902421339 ns/iter |
3.7393999878252084 ns/iter |
1.13 |
Regex_Lower_S_Or_Upper_S_Asterisk |
1.055051683624582 ns/iter |
0.934847349127164 ns/iter |
1.13 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.0574810159915338 ns/iter |
0.934396785134195 ns/iter |
1.13 |
Regex_Period_Asterisk |
0.7038356359679153 ns/iter |
0.6233256761636264 ns/iter |
1.13 |
Regex_Group_Period_Asterisk_Group |
0.7142183502054521 ns/iter |
0.6244320792886412 ns/iter |
1.14 |
Regex_Period_Plus |
1.05597673760644 ns/iter |
0.9346221280906808 ns/iter |
1.13 |
Regex_Period |
1.055245994772171 ns/iter |
0.9341325848332472 ns/iter |
1.13 |
Regex_Caret_Period_Plus_Dollar |
0.7040798846653294 ns/iter |
0.622908408331923 ns/iter |
1.13 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.7092985044985436 ns/iter |
0.6233642880727505 ns/iter |
1.14 |
Regex_Caret_Period_Asterisk_Dollar |
1.0567353903910137 ns/iter |
0.9357135633505675 ns/iter |
1.13 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.0560463074429907 ns/iter |
0.9343296781263413 ns/iter |
1.13 |
Regex_Caret_X_Hyphen |
4.220000204270431 ns/iter |
4.363259935763016 ns/iter |
0.97 |
Regex_Period_Md_Dollar |
33.424533291781444 ns/iter |
28.782347482432897 ns/iter |
1.16 |
Regex_Caret_Slash_Period_Asterisk |
3.8687410151093147 ns/iter |
4.363268376038283 ns/iter |
0.89 |
Regex_Caret_Period_Range_Dollar |
1.0564397025678065 ns/iter |
0.93430033411723 ns/iter |
1.13 |
Regex_Nested_Backtrack |
39.17845261429927 ns/iter |
37.985989847289105 ns/iter |
1.03 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com