Add a wiping request body path to the HTTP client#2682
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR adds a secure/wiping request-body path to the HTTP client so sensitive payloads (e.g., client secrets or PKCE verifiers) can be kept in wiping storage until sent. Changes:
🤖 Was this summary useful? React with 👍 or 👎 |
| /// `Content-Type` header. The body is held in the wiping storage so a secret | ||
| /// it carries, such as a client secret or PKCE code verifier, is never copied | ||
| /// into an ordinary string | ||
| auto body(SecureString data, std::string content_type) |
There was a problem hiding this comment.
src/core/http/include/sourcemeta/core/http_system.h:172 Adding body(SecureString, ...) alongside body(std::string, ...) may introduce overload ambiguity for callers passing a std::string_view (both std::string and SecureString are implicitly constructible from it), causing source-breaking compile errors.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| std::variant<std::string, SecureString> data; | ||
| std::string content_type; | ||
|
|
||
| [[nodiscard]] auto bytes() const -> std::string_view { |
There was a problem hiding this comment.
src/core/http/include/sourcemeta/core/http_system.h:246 Body::bytes() relies on SecureString’s implicit operator std::string_view(), which builds a view from buffer_.data()/size(); if a secure body is empty and buffer_.data() is nullptr, constructing the std::string_view may be undefined behavior.
Severity: medium
🤖 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: b9e98aa | Previous: 42d50f3 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.465675384938568 ns/iter |
2.139730152659189 ns/iter |
1.15 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.46307262212873 ns/iter |
2.130382569351702 ns/iter |
1.16 |
Regex_Period_Asterisk |
2.4636816395311074 ns/iter |
2.1605577694926272 ns/iter |
1.14 |
Regex_Group_Period_Asterisk_Group |
2.4627644804660216 ns/iter |
2.125351658868358 ns/iter |
1.16 |
Regex_Period_Plus |
3.5157159969385745 ns/iter |
2.0554236080937325 ns/iter |
1.71 |
Regex_Period |
3.867006640461821 ns/iter |
2.1347784793497584 ns/iter |
1.81 |
Regex_Caret_Period_Plus_Dollar |
3.777153898664277 ns/iter |
2.064587986518235 ns/iter |
1.83 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.514115538557218 ns/iter |
2.069919200596487 ns/iter |
1.70 |
Regex_Caret_Period_Asterisk_Dollar |
2.4608163544578763 ns/iter |
2.0952273559941172 ns/iter |
1.17 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.816747755927826 ns/iter |
2.1376450584087805 ns/iter |
1.32 |
Regex_Caret_X_Hyphen |
7.033446866036601 ns/iter |
4.033363707169451 ns/iter |
1.74 |
Regex_Period_Md_Dollar |
26.255394989022722 ns/iter |
26.777306078359988 ns/iter |
0.98 |
Regex_Caret_Slash_Period_Asterisk |
5.625986645742342 ns/iter |
3.7459831788570943 ns/iter |
1.50 |
Regex_Caret_Period_Range_Dollar |
3.165696261101149 ns/iter |
2.594499882775335 ns/iter |
1.22 |
Regex_Nested_Backtrack |
38.210623596571 ns/iter |
35.15103678821589 ns/iter |
1.09 |
JSON_Array_Of_Objects_Unique |
431.5696738832318 ns/iter |
365.6945443336639 ns/iter |
1.18 |
JSON_Parse_1 |
4636.339503511955 ns/iter |
4651.002892291591 ns/iter |
1.00 |
JSON_Parse_Real |
5122.024163201762 ns/iter |
4796.474058752031 ns/iter |
1.07 |
JSON_Parse_Decimal |
7824.151910933672 ns/iter |
7145.7357938914365 ns/iter |
1.09 |
JSON_Parse_Schema_ISO_Language |
3573725.6275514048 ns/iter |
3411389.6536587714 ns/iter |
1.05 |
JSON_Parse_Integer |
4039.1392129202018 ns/iter |
3491.363710888346 ns/iter |
1.16 |
JSON_Parse_String_NonSSO_Plain |
5102.661249298074 ns/iter |
4608.804761936389 ns/iter |
1.11 |
JSON_Parse_String_SSO_Plain |
2842.3578489635656 ns/iter |
2460.734575513974 ns/iter |
1.16 |
JSON_Parse_String_Escape_Heavy |
16482.541552875442 ns/iter |
17410.107325722332 ns/iter |
0.95 |
JSON_Parse_Object_Short_Keys |
7848.397295088562 ns/iter |
7000.901932777188 ns/iter |
1.12 |
JSON_Parse_Object_Scalar_Properties |
4035.1475931389314 ns/iter |
3702.732666874994 ns/iter |
1.09 |
JSON_Parse_Object_Array_Properties |
5490.22022299491 ns/iter |
5072.516725855667 ns/iter |
1.08 |
JSON_Parse_Object_Object_Properties |
5461.192116767846 ns/iter |
5049.220860809139 ns/iter |
1.08 |
JSON_Parse_Nested_Containers |
45581.10602613276 ns/iter |
41855.35401152712 ns/iter |
1.09 |
JSON_From_String_Copy |
20.750530423658066 ns/iter |
15.266296653050759 ns/iter |
1.36 |
JSON_From_String_Temporary |
17.93736581551775 ns/iter |
14.806726461216627 ns/iter |
1.21 |
JSON_Number_To_Double |
22.508606472567045 ns/iter |
22.392155362936617 ns/iter |
1.01 |
JSON_Object_At_Last_Key/8 |
4.008597466882241 ns/iter |
4.7263463315583385 ns/iter |
0.85 |
JSON_Object_At_Last_Key/32 |
13.10367452483957 ns/iter |
17.998297366249492 ns/iter |
0.73 |
JSON_Object_At_Last_Key/128 |
56.75898248142637 ns/iter |
73.99744103070864 ns/iter |
0.77 |
JSON_Object_At_Last_Key/512 |
370.53345568580687 ns/iter |
304.90527802929694 ns/iter |
1.22 |
JSON_Fast_Hash_Helm_Chart_Lock |
73.14085963327767 ns/iter |
57.13275022960341 ns/iter |
1.28 |
JSON_Equality_Helm_Chart_Lock |
161.78591524851916 ns/iter |
128.28636288488278 ns/iter |
1.26 |
JSON_Divisible_By_Decimal |
256.5325197633197 ns/iter |
259.44924646906003 ns/iter |
0.99 |
JSON_String_Equal/10 |
5.737530689673203 ns/iter |
4.329258933179864 ns/iter |
1.33 |
JSON_String_Equal/100 |
6.332308166324497 ns/iter |
5.477200429457845 ns/iter |
1.16 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.0565365629744385 ns/iter |
0.6914046329672003 ns/iter |
1.53 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
12.336658230976715 ns/iter |
9.80380575125284 ns/iter |
1.26 |
JSON_String_Fast_Hash/10 |
2.8269639800571644 ns/iter |
2.306560821305091 ns/iter |
1.23 |
JSON_String_Fast_Hash/100 |
2.814295540318748 ns/iter |
2.3064176325058265 ns/iter |
1.22 |
JSON_String_Key_Hash/10 |
2.4622859669438864 ns/iter |
1.7300014070882275 ns/iter |
1.42 |
JSON_String_Key_Hash/100 |
7.73277690592126 ns/iter |
6.627094419816275 ns/iter |
1.17 |
JSON_Object_Defines_Miss_Same_Length |
3.2003890299124333 ns/iter |
3.457336461195017 ns/iter |
0.93 |
JSON_Object_Defines_Miss_Too_Small |
4.222833753999072 ns/iter |
4.26495079016155 ns/iter |
0.99 |
JSON_Object_Defines_Miss_Too_Large |
2.9339385095457446 ns/iter |
3.0262551594175897 ns/iter |
0.97 |
Pointer_Object_Traverse |
30.727670595316965 ns/iter |
30.009627305725708 ns/iter |
1.02 |
Pointer_Object_Try_Traverse |
32.95087551029104 ns/iter |
35.21162963261133 ns/iter |
0.94 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
188.63035441814446 ns/iter |
154.36108557179062 ns/iter |
1.22 |
Pointer_Walker_Schema_ISO_Language |
2750869.5634920183 ns/iter |
2676145.585820762 ns/iter |
1.03 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1368125.2543688281 ns/iter |
1141310.2552167717 ns/iter |
1.20 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1576190.8783784944 ns/iter |
2026266.7404132145 ns/iter |
0.78 |
Pointer_Position_Tracker_Get_Deeply_Nested |
674.8043647176863 ns/iter |
702.2100472927825 ns/iter |
0.96 |
JSONPath_Descendant_Filter_Nested |
1583.973801472261 ns/iter |
1460.6625425152881 ns/iter |
1.08 |
URITemplateRouter_Create |
29985.14873107379 ns/iter |
29304.1288875858 ns/iter |
1.02 |
URITemplateRouter_Match |
179.5981081757713 ns/iter |
157.1271015189385 ns/iter |
1.14 |
URITemplateRouter_Match_BasePath |
211.076270307977 ns/iter |
175.11754102549915 ns/iter |
1.21 |
URITemplateRouterView_Restore |
9937.177180349334 ns/iter |
3709.8512986220176 ns/iter |
2.68 |
URITemplateRouterView_Match |
143.62924606888 ns/iter |
126.95030564661384 ns/iter |
1.13 |
URITemplateRouterView_Match_BasePath |
164.81244918792814 ns/iter |
141.93979607883523 ns/iter |
1.16 |
URITemplateRouterView_Arguments |
450.9997618856071 ns/iter |
417.3099680787403 ns/iter |
1.08 |
JSONL_Parse_Large |
9451401.270268887 ns/iter |
9048542.155844849 ns/iter |
1.04 |
JSONL_Parse_Large_GZIP |
11113955.603173776 ns/iter |
10448649.432836605 ns/iter |
1.06 |
JSONLD_Catalog_Annotation_List_Populate |
1292551.1700553666 ns/iter |
1210942.948096853 ns/iter |
1.07 |
JSONLD_Catalog_Materialize |
4268574.466666932 ns/iter |
4227385.41317358 ns/iter |
1.01 |
HTML_Build_Table_100000 |
69744121.60000156 ns/iter |
70382944.69999756 ns/iter |
0.99 |
HTML_Render_Table_100000 |
5047724.330882422 ns/iter |
9792086.802816888 ns/iter |
0.52 |
GZIP_Compress_ISO_Language_Set_3_Locations |
35717719.45000251 ns/iter |
30820650.52173833 ns/iter |
1.16 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4278256.378048665 ns/iter |
4819318.323308281 ns/iter |
0.89 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2114825.990881571 ns/iter |
1856264.702127569 ns/iter |
1.14 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
276198.5687747123 ns/iter |
337130.54013539065 ns/iter |
0.82 |
JOSE_VerifySignature_RS256 |
63759.561605104194 ns/iter |
49368.879586275376 ns/iter |
1.29 |
JOSE_VerifySignature_ES512 |
2678872.950381974 ns/iter |
2087167.9432835365 ns/iter |
1.28 |
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: b9e98aa | Previous: 42d50f3 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.9339684849565724 ns/iter |
1.783042686977369 ns/iter |
1.08 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.9512408480232923 ns/iter |
1.8232912960974221 ns/iter |
1.07 |
Regex_Period_Asterisk |
2.1384627444539364 ns/iter |
1.9695134798928566 ns/iter |
1.09 |
Regex_Group_Period_Asterisk_Group |
1.822052342498706 ns/iter |
1.8180227841770564 ns/iter |
1.00 |
Regex_Period_Plus |
2.3369499711024835 ns/iter |
2.0933113536427586 ns/iter |
1.12 |
Regex_Period |
2.0059214917432495 ns/iter |
2.157509267217269 ns/iter |
0.93 |
Regex_Caret_Period_Plus_Dollar |
2.260995697543239 ns/iter |
2.1323188862474876 ns/iter |
1.06 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.3588473299515096 ns/iter |
2.1202780614113492 ns/iter |
1.11 |
Regex_Caret_Period_Asterisk_Dollar |
2.0225636487685423 ns/iter |
2.180646485119402 ns/iter |
0.93 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.938814241893514 ns/iter |
1.7933774911423292 ns/iter |
1.08 |
Regex_Caret_X_Hyphen |
6.818800981448714 ns/iter |
6.911798644041426 ns/iter |
0.99 |
Regex_Period_Md_Dollar |
17.952484995053677 ns/iter |
17.20676013513753 ns/iter |
1.04 |
Regex_Caret_Slash_Period_Asterisk |
5.170206249999865 ns/iter |
4.669530047691651 ns/iter |
1.11 |
Regex_Caret_Period_Range_Dollar |
2.0172956394362744 ns/iter |
1.962836292773221 ns/iter |
1.03 |
Regex_Nested_Backtrack |
30.12393388950732 ns/iter |
28.42217090459995 ns/iter |
1.06 |
JSON_Array_Of_Objects_Unique |
390.3210539725226 ns/iter |
352.1471249142411 ns/iter |
1.11 |
JSON_Parse_1 |
6509.857563684269 ns/iter |
6356.370140890846 ns/iter |
1.02 |
JSON_Parse_Real |
7790.7206287173485 ns/iter |
6123.573425101789 ns/iter |
1.27 |
JSON_Parse_Decimal |
8458.275632490335 ns/iter |
7211.9538307799985 ns/iter |
1.17 |
JSON_Parse_Schema_ISO_Language |
4285274.328857295 ns/iter |
4023358.651934535 ns/iter |
1.07 |
JSON_Parse_Integer |
5502.60494005615 ns/iter |
4602.930087585048 ns/iter |
1.20 |
JSON_Parse_String_NonSSO_Plain |
8591.209921704012 ns/iter |
8063.282693311098 ns/iter |
1.07 |
JSON_Parse_String_SSO_Plain |
3396.4089537893483 ns/iter |
3038.4353470750057 ns/iter |
1.12 |
JSON_Parse_String_Escape_Heavy |
23596.37868022527 ns/iter |
20947.901185501167 ns/iter |
1.13 |
JSON_Parse_Object_Short_Keys |
8729.586133857567 ns/iter |
8339.884534140188 ns/iter |
1.05 |
JSON_Parse_Object_Scalar_Properties |
5507.446913578047 ns/iter |
5698.740089425513 ns/iter |
0.97 |
JSON_Parse_Object_Array_Properties |
8560.95913922549 ns/iter |
8550.161123311802 ns/iter |
1.00 |
JSON_Parse_Object_Object_Properties |
8756.861674964599 ns/iter |
7604.85700090778 ns/iter |
1.15 |
JSON_Parse_Nested_Containers |
63499.59357436285 ns/iter |
59885.7595209478 ns/iter |
1.06 |
JSON_From_String_Copy |
23.61218410507751 ns/iter |
23.920316673715458 ns/iter |
0.99 |
JSON_From_String_Temporary |
18.861296919054116 ns/iter |
18.413460694444804 ns/iter |
1.02 |
JSON_Number_To_Double |
35.598451697723746 ns/iter |
32.68875616205199 ns/iter |
1.09 |
JSON_Object_At_Last_Key/8 |
5.16008588583644 ns/iter |
4.06845226642937 ns/iter |
1.27 |
JSON_Object_At_Last_Key/32 |
12.557383514787036 ns/iter |
12.620329990164578 ns/iter |
1.00 |
JSON_Object_At_Last_Key/128 |
55.896095707317606 ns/iter |
57.94065129163274 ns/iter |
0.96 |
JSON_Object_At_Last_Key/512 |
220.48050980281553 ns/iter |
194.7674213681946 ns/iter |
1.13 |
JSON_Fast_Hash_Helm_Chart_Lock |
63.88896502298592 ns/iter |
60.8237471616133 ns/iter |
1.05 |
JSON_Equality_Helm_Chart_Lock |
206.557658572887 ns/iter |
173.28556440110407 ns/iter |
1.19 |
JSON_Divisible_By_Decimal |
344.9484747917113 ns/iter |
223.62012709898946 ns/iter |
1.54 |
JSON_String_Equal/10 |
8.212889474914263 ns/iter |
8.464537563149264 ns/iter |
0.97 |
JSON_String_Equal/100 |
8.569009130673946 ns/iter |
7.207351476801453 ns/iter |
1.19 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.3834479352624888 ns/iter |
0.3278661983976317 ns/iter |
1.17 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.5629706529351415 ns/iter |
3.3208253585937775 ns/iter |
1.07 |
JSON_String_Fast_Hash/10 |
2.4895459096571346 ns/iter |
2.5029379182060065 ns/iter |
0.99 |
JSON_String_Fast_Hash/100 |
2.3404289445243744 ns/iter |
1.9816470350671143 ns/iter |
1.18 |
JSON_String_Key_Hash/10 |
1.724332708628347 ns/iter |
1.789962606565536 ns/iter |
0.96 |
JSON_String_Key_Hash/100 |
2.554591378883507 ns/iter |
2.283284404230977 ns/iter |
1.12 |
JSON_Object_Defines_Miss_Same_Length |
2.7400493960707917 ns/iter |
2.7796618431789035 ns/iter |
0.99 |
JSON_Object_Defines_Miss_Too_Small |
2.767152836847165 ns/iter |
2.7288525444977036 ns/iter |
1.01 |
JSON_Object_Defines_Miss_Too_Large |
3.256417254926069 ns/iter |
2.958404498018366 ns/iter |
1.10 |
Pointer_Object_Traverse |
30.05361266277052 ns/iter |
26.559727374633677 ns/iter |
1.13 |
Pointer_Object_Try_Traverse |
21.929047355255427 ns/iter |
21.776313622241478 ns/iter |
1.01 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
191.17448113955973 ns/iter |
184.7090736522563 ns/iter |
1.04 |
Pointer_Walker_Schema_ISO_Language |
2646406.8826083783 ns/iter |
2625900.0000003274 ns/iter |
1.01 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1272323.1865287514 ns/iter |
1242192.0990259158 ns/iter |
1.02 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1076753.4782612727 ns/iter |
1039464.8191825999 ns/iter |
1.04 |
Pointer_Position_Tracker_Get_Deeply_Nested |
395.7654694316009 ns/iter |
310.70473912804687 ns/iter |
1.27 |
JSONPath_Descendant_Filter_Nested |
1395.8958468080498 ns/iter |
1209.6832355030276 ns/iter |
1.15 |
URITemplateRouter_Create |
24193.887512012097 ns/iter |
22207.400252328072 ns/iter |
1.09 |
URITemplateRouter_Match |
190.70809278384863 ns/iter |
166.47825446593063 ns/iter |
1.15 |
URITemplateRouter_Match_BasePath |
207.18008560265034 ns/iter |
199.85052980685978 ns/iter |
1.04 |
URITemplateRouterView_Restore |
17556.5886955563 ns/iter |
11347.795061762545 ns/iter |
1.55 |
URITemplateRouterView_Match |
164.3122711779237 ns/iter |
158.48548661694835 ns/iter |
1.04 |
URITemplateRouterView_Match_BasePath |
178.637230891876 ns/iter |
160.36814422182823 ns/iter |
1.11 |
URITemplateRouterView_Arguments |
606.8586479967555 ns/iter |
545.388318737999 ns/iter |
1.11 |
JSONL_Parse_Large |
10007057.588234816 ns/iter |
11722533.89830661 ns/iter |
0.85 |
JSONL_Parse_Large_GZIP |
13422518.442625841 ns/iter |
11320278.44444507 ns/iter |
1.19 |
JSONLD_Catalog_Annotation_List_Populate |
1005696.8581365645 ns/iter |
907110.5885922058 ns/iter |
1.11 |
JSONLD_Catalog_Materialize |
4733293.053335122 ns/iter |
4642542.338710736 ns/iter |
1.02 |
HTML_Build_Table_100000 |
38490203.7222269 ns/iter |
36692810.4000067 ns/iter |
1.05 |
HTML_Render_Table_100000 |
1652511.11713682 ns/iter |
1775657.9750569877 ns/iter |
0.93 |
GZIP_Compress_ISO_Language_Set_3_Locations |
27204683.319996547 ns/iter |
26145298.913048543 ns/iter |
1.04 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
3382349.65437873 ns/iter |
3217261.1382491365 ns/iter |
1.05 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1774052.7458826203 ns/iter |
1600365.310782119 ns/iter |
1.11 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
280499.03572862694 ns/iter |
305063.61308995314 ns/iter |
0.92 |
JOSE_VerifySignature_RS256 |
23485.986728989345 ns/iter |
22546.233582921795 ns/iter |
1.04 |
JOSE_VerifySignature_ES512 |
1273813.7626256014 ns/iter |
1186241.0968282628 ns/iter |
1.07 |
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: b9e98aa | Previous: 42d50f3 | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
22081.980755672095 ns/iter |
22115.95611225507 ns/iter |
1.00 |
JOSE_VerifySignature_ES512 |
577106.0445177215 ns/iter |
576844.1343776552 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36546380.68420761 ns/iter |
36663347.42105224 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4257584.860606171 ns/iter |
4252334.692771537 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2041708.3148688276 ns/iter |
2039559.4985421181 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
376833.8406030725 ns/iter |
376096.99892643903 ns/iter |
1.00 |
HTML_Build_Table_100000 |
64627454.72727379 ns/iter |
65638070.363640755 ns/iter |
0.98 |
HTML_Render_Table_100000 |
1824666.345549718 ns/iter |
1962131.0564971128 ns/iter |
0.93 |
JSONLD_Catalog_Annotation_List_Populate |
1297211.3122674986 ns/iter |
1311968.613806084 ns/iter |
0.99 |
JSONLD_Catalog_Materialize |
6866585.817307352 ns/iter |
7506755.731958374 ns/iter |
0.91 |
JSONL_Parse_Large |
13660043.725490497 ns/iter |
13726773.764705839 ns/iter |
1.00 |
JSONL_Parse_Large_GZIP |
15104119.239130462 ns/iter |
15098451.347826183 ns/iter |
1.00 |
URITemplateRouter_Create |
31042.448350387927 ns/iter |
31019.85825037139 ns/iter |
1.00 |
URITemplateRouter_Match |
158.4859948767905 ns/iter |
158.46502160417737 ns/iter |
1.00 |
URITemplateRouter_Match_BasePath |
184.66902416058826 ns/iter |
185.79104588731272 ns/iter |
0.99 |
URITemplateRouterView_Restore |
8396.880915297314 ns/iter |
8684.95305061454 ns/iter |
0.97 |
URITemplateRouterView_Match |
128.23199465624515 ns/iter |
129.08159545903175 ns/iter |
0.99 |
URITemplateRouterView_Match_BasePath |
153.5171149412599 ns/iter |
154.98228331591778 ns/iter |
0.99 |
URITemplateRouterView_Arguments |
480.25646868893216 ns/iter |
475.0763084441972 ns/iter |
1.01 |
JSONPath_Descendant_Filter_Nested |
1718.0760969219427 ns/iter |
1686.8400101551185 ns/iter |
1.02 |
Pointer_Object_Traverse |
30.28084769645413 ns/iter |
30.481090304285363 ns/iter |
0.99 |
Pointer_Object_Try_Traverse |
25.332546040643884 ns/iter |
25.32684454131865 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
148.58667349410706 ns/iter |
157.71362643593156 ns/iter |
0.94 |
Pointer_Walker_Schema_ISO_Language |
2770001.8705882384 ns/iter |
2856602.526104822 ns/iter |
0.97 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1909734.0082419498 ns/iter |
1857148.6694216935 ns/iter |
1.03 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1740556.84863529 ns/iter |
1727246.3538084312 ns/iter |
1.01 |
Pointer_Position_Tracker_Get_Deeply_Nested |
406.28685610113143 ns/iter |
477.93700321345835 ns/iter |
0.85 |
JSON_Array_Of_Objects_Unique |
434.94444025029196 ns/iter |
436.48243047748366 ns/iter |
1.00 |
JSON_Parse_1 |
9943.227265646208 ns/iter |
10011.866751594996 ns/iter |
0.99 |
JSON_Parse_Real |
7943.291096475005 ns/iter |
7957.462195191035 ns/iter |
1.00 |
JSON_Parse_Decimal |
13014.683796970387 ns/iter |
12995.496911805258 ns/iter |
1.00 |
JSON_Parse_Schema_ISO_Language |
6659496.048077183 ns/iter |
6768373.685714495 ns/iter |
0.98 |
JSON_Parse_Integer |
5716.532187837527 ns/iter |
5702.157822797354 ns/iter |
1.00 |
JSON_Parse_String_NonSSO_Plain |
12107.330371206901 ns/iter |
12004.41016792071 ns/iter |
1.01 |
JSON_Parse_String_SSO_Plain |
5075.710164719856 ns/iter |
5096.475938850869 ns/iter |
1.00 |
JSON_Parse_String_Escape_Heavy |
26239.250913290674 ns/iter |
26185.096937632003 ns/iter |
1.00 |
JSON_Parse_Object_Short_Keys |
13764.527576169921 ns/iter |
14028.471418559178 ns/iter |
0.98 |
JSON_Parse_Object_Scalar_Properties |
6985.775200713577 ns/iter |
7026.778289790723 ns/iter |
0.99 |
JSON_Parse_Object_Array_Properties |
12286.94025609467 ns/iter |
12647.380312998934 ns/iter |
0.97 |
JSON_Parse_Object_Object_Properties |
12062.915168026195 ns/iter |
12469.380791120033 ns/iter |
0.97 |
JSON_Parse_Nested_Containers |
101818.55630006915 ns/iter |
99718.08151940773 ns/iter |
1.02 |
JSON_From_String_Copy |
18.236495955165925 ns/iter |
18.243700964942175 ns/iter |
1.00 |
JSON_From_String_Temporary |
15.342427908700675 ns/iter |
15.36403591612288 ns/iter |
1.00 |
JSON_Number_To_Double |
20.644086650718126 ns/iter |
20.568636197184986 ns/iter |
1.00 |
JSON_Object_At_Last_Key/8 |
5.675029950178688 ns/iter |
5.6183725640430415 ns/iter |
1.01 |
JSON_Object_At_Last_Key/32 |
21.83431837828594 ns/iter |
21.540860827398312 ns/iter |
1.01 |
JSON_Object_At_Last_Key/128 |
87.51867718954766 ns/iter |
87.25237176365022 ns/iter |
1.00 |
JSON_Object_At_Last_Key/512 |
403.0090681648523 ns/iter |
400.9438483754943 ns/iter |
1.01 |
JSON_Fast_Hash_Helm_Chart_Lock |
62.03089636024532 ns/iter |
61.73954672035184 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
157.00322688547425 ns/iter |
157.8540971864256 ns/iter |
0.99 |
JSON_Divisible_By_Decimal |
250.62563262907574 ns/iter |
250.05120544745378 ns/iter |
1.00 |
JSON_String_Equal/10 |
5.41715359071984 ns/iter |
5.4155710546688836 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.0398273967088 ns/iter |
6.0401966427788 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.749479067349803 ns/iter |
0.7497105117353695 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.199335267288205 ns/iter |
25.201231393649316 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.2640032039213827 ns/iter |
2.2624011951043532 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.2600329263549455 ns/iter |
2.2652134027140396 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.5602503001609427 ns/iter |
1.5615361058967296 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
12.440875528101355 ns/iter |
12.456363464007657 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.1187666859015177 ns/iter |
3.1174325275757186 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.25991980512828 ns/iter |
3.1163720864451165 ns/iter |
1.05 |
JSON_Object_Defines_Miss_Too_Large |
3.1129411045622373 ns/iter |
3.1146047626313544 ns/iter |
1.00 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.6225279917414113 ns/iter |
0.6351043736257029 ns/iter |
0.98 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.622785707950921 ns/iter |
0.622416478077001 ns/iter |
1.00 |
Regex_Period_Asterisk |
0.623015157170109 ns/iter |
0.6234451955325603 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
0.6262561552700708 ns/iter |
0.6237273188148345 ns/iter |
1.00 |
Regex_Period_Plus |
0.6234598681439872 ns/iter |
0.6232014986549648 ns/iter |
1.00 |
Regex_Period |
0.6230287205502745 ns/iter |
0.6234117247581002 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
0.6228590238825661 ns/iter |
0.624770411898652 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.6226293189517427 ns/iter |
0.6238571150167853 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
0.6226768750033701 ns/iter |
0.6239456212206241 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.6246028457833175 ns/iter |
0.6228493803955791 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
4.052233743414709 ns/iter |
4.0529724003621945 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
30.406701358315072 ns/iter |
29.08307047895464 ns/iter |
1.05 |
Regex_Caret_Slash_Period_Asterisk |
4.356682725394311 ns/iter |
4.368403734190799 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
1.2450267770979202 ns/iter |
1.2459320888087255 ns/iter |
1.00 |
Regex_Nested_Backtrack |
39.3347771821883 ns/iter |
44.06222939823592 ns/iter |
0.89 |
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: b9e98aa | Previous: 42d50f3 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
5.366711607144176 ns/iter |
5.4843159999995805 ns/iter |
0.98 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
5.039822000001095 ns/iter |
5.05492767857163 ns/iter |
1.00 |
Regex_Period_Asterisk |
5.1110319999997955 ns/iter |
5.232120000000577 ns/iter |
0.98 |
Regex_Group_Period_Asterisk_Group |
5.027566999999635 ns/iter |
5.20477499999978 ns/iter |
0.97 |
Regex_Period_Plus |
5.038795000000391 ns/iter |
5.144553000000087 ns/iter |
0.98 |
Regex_Period |
5.426300999999967 ns/iter |
5.412813000000369 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
5.037516964285211 ns/iter |
5.062465999999404 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
5.362286999998105 ns/iter |
5.434699107143257 ns/iter |
0.99 |
Regex_Caret_Period_Asterisk_Dollar |
5.393583928571795 ns/iter |
5.384469000000535 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
5.047156999999061 ns/iter |
5.080500892857133 ns/iter |
0.99 |
Regex_Caret_X_Hyphen |
8.744006696428386 ns/iter |
8.697779425457508 ns/iter |
1.01 |
Regex_Period_Md_Dollar |
45.4763875000026 ns/iter |
45.434208969337746 ns/iter |
1.00 |
Regex_Caret_Slash_Period_Asterisk |
7.879486607141725 ns/iter |
7.9196975446446265 ns/iter |
0.99 |
Regex_Caret_Period_Range_Dollar |
6.0682205357157475 ns/iter |
6.029202678571925 ns/iter |
1.01 |
Regex_Nested_Backtrack |
54.98342999999296 ns/iter |
55.60806000000866 ns/iter |
0.99 |
JSON_Array_Of_Objects_Unique |
596.9801785714221 ns/iter |
611.6032142857973 ns/iter |
0.98 |
JSON_Parse_1 |
8971.107718269064 ns/iter |
9395.931268163407 ns/iter |
0.95 |
JSON_Parse_Real |
16095.609374998177 ns/iter |
16673.810267856687 ns/iter |
0.97 |
JSON_Parse_Decimal |
11883.816071429821 ns/iter |
11753.860714285176 ns/iter |
1.01 |
JSON_Parse_Schema_ISO_Language |
7364021.428571732 ns/iter |
7640054.444444408 ns/iter |
0.96 |
JSON_Parse_Integer |
6273.151785714097 ns/iter |
6198.433928572302 ns/iter |
1.01 |
JSON_Parse_String_NonSSO_Plain |
7952.181919644069 ns/iter |
7798.34709821411 ns/iter |
1.02 |
JSON_Parse_String_SSO_Plain |
3831.3269083443993 ns/iter |
3734.50743837939 ns/iter |
1.03 |
JSON_Parse_String_Escape_Heavy |
21837.215624998407 ns/iter |
21785.381250005285 ns/iter |
1.00 |
JSON_Parse_Object_Short_Keys |
13356.034794487996 ns/iter |
13523.494314756805 ns/iter |
0.99 |
JSON_Parse_Object_Scalar_Properties |
6890.3593750008995 ns/iter |
6909.912946430857 ns/iter |
1.00 |
JSON_Parse_Object_Array_Properties |
11325.203125000628 ns/iter |
11466.803124999813 ns/iter |
0.99 |
JSON_Parse_Object_Object_Properties |
11635.62812500274 ns/iter |
11527.382812499098 ns/iter |
1.01 |
JSON_Parse_Nested_Containers |
79058.62723213935 ns/iter |
79691.74107143674 ns/iter |
0.99 |
JSON_From_String_Copy |
63.808616071412416 ns/iter |
64.4674196428647 ns/iter |
0.99 |
JSON_From_String_Temporary |
59.09311607142952 ns/iter |
58.39578571429424 ns/iter |
1.01 |
JSON_Number_To_Double |
123.14405357143089 ns/iter |
123.33505357141965 ns/iter |
1.00 |
JSON_Object_At_Last_Key/8 |
7.2701812500010226 ns/iter |
7.268348214287203 ns/iter |
1.00 |
JSON_Object_At_Last_Key/32 |
23.488241925351566 ns/iter |
23.317603534400316 ns/iter |
1.01 |
JSON_Object_At_Last_Key/128 |
90.39614328588395 ns/iter |
90.17401785713324 ns/iter |
1.00 |
JSON_Object_At_Last_Key/512 |
426.5353389676352 ns/iter |
428.3319240696979 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
102.75098437499963 ns/iter |
102.87551326448006 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
238.14774999997164 ns/iter |
232.63796874999798 ns/iter |
1.02 |
JSON_Divisible_By_Decimal |
299.04834608839246 ns/iter |
296.6244043945939 ns/iter |
1.01 |
JSON_String_Equal/10 |
10.561991470703925 ns/iter |
10.378190578667592 ns/iter |
1.02 |
JSON_String_Equal/100 |
11.65144285714145 ns/iter |
11.63411874999909 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.508541071428486 ns/iter |
2.550438613225139 ns/iter |
0.98 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
15.015605959750102 ns/iter |
15.230673815936147 ns/iter |
0.99 |
JSON_String_Fast_Hash/10 |
6.667143973214504 ns/iter |
6.688004464286174 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
6.610363839286545 ns/iter |
6.59607477678443 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
5.346219000000474 ns/iter |
5.413217000000259 ns/iter |
0.99 |
JSON_String_Key_Hash/100 |
11.873808928567898 ns/iter |
11.912937499999998 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.8228822544640804 ns/iter |
3.8255319574546403 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
4.090697544643719 ns/iter |
4.104666852679121 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.7662728504174554 ns/iter |
3.819672627960169 ns/iter |
0.99 |
Pointer_Object_Traverse |
67.66264508927732 ns/iter |
67.63568080356512 ns/iter |
1.00 |
Pointer_Object_Try_Traverse |
70.91537500000656 ns/iter |
73.06825000000572 ns/iter |
0.97 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
166.8631852809919 ns/iter |
170.74873911261835 ns/iter |
0.98 |
Pointer_Walker_Schema_ISO_Language |
11902796.42857003 ns/iter |
10709949.999998968 ns/iter |
1.11 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2623872.499999282 ns/iter |
2446671.8875499787 ns/iter |
1.07 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3726421.3903744286 ns/iter |
3623848.039215354 ns/iter |
1.03 |
Pointer_Position_Tracker_Get_Deeply_Nested |
518.7404864599091 ns/iter |
542.5918567570131 ns/iter |
0.96 |
JSONPath_Descendant_Filter_Nested |
2605.4699715735965 ns/iter |
2355.94535714329 ns/iter |
1.11 |
URITemplateRouter_Create |
41644.61249999363 ns/iter |
41944.524403690724 ns/iter |
0.99 |
URITemplateRouter_Match |
235.36098935700576 ns/iter |
236.20828836958404 ns/iter |
1.00 |
URITemplateRouter_Match_BasePath |
272.0000000000157 ns/iter |
271.42121524202196 ns/iter |
1.00 |
URITemplateRouterView_Restore |
36390.43409939251 ns/iter |
32513.89865467239 ns/iter |
1.12 |
URITemplateRouterView_Match |
181.16779296144978 ns/iter |
180.86292059351504 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
208.6539025583852 ns/iter |
204.6198457759161 ns/iter |
1.02 |
URITemplateRouterView_Arguments |
536.4942857143872 ns/iter |
531.244821428548 ns/iter |
1.01 |
JSONL_Parse_Large |
32807171.42857135 ns/iter |
32945485.714283984 ns/iter |
1.00 |
JSONL_Parse_Large_GZIP |
33900735.00000881 ns/iter |
33854780.00000148 ns/iter |
1.00 |
JSONLD_Catalog_Annotation_List_Populate |
2727417.6706831637 ns/iter |
2658483.1325297737 ns/iter |
1.03 |
JSONLD_Catalog_Materialize |
8242578.888889005 ns/iter |
7821155.555555177 ns/iter |
1.05 |
HTML_Build_Table_100000 |
89965571.42859273 ns/iter |
89618928.5714237 ns/iter |
1.00 |
HTML_Render_Table_100000 |
7768122.222220578 ns/iter |
7578804.444445572 ns/iter |
1.02 |
GZIP_Compress_ISO_Language_Set_3_Locations |
35309173.68420648 ns/iter |
38467289.99999414 ns/iter |
0.92 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
9911014.666668052 ns/iter |
10045124.000001427 ns/iter |
0.99 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2085158.124999964 ns/iter |
2079319.6875004582 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
631396.2499999906 ns/iter |
651204.017857156 ns/iter |
0.97 |
JOSE_VerifySignature_RS256 |
21602.17812500065 ns/iter |
21374.906250002823 ns/iter |
1.01 |
JOSE_VerifySignature_ES512 |
1555291.7410716864 ns/iter |
1541340.401785821 ns/iter |
1.01 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com