Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: Hardening pass across protocol helpers and parsers to more closely follow relevant RFCs/spec errata and close edge-case gaps. Changes:
Technical Notes: Several changes are spec-driven (RFC 9110/8414/6052/6901, OIDC Core) and aim to make parse-time behavior stricter/more predictable while keeping verification-time outcomes separate from parse validity. 🤖 Was this summary useful? React with 👍 or 👎 |
| // authorization_code and implicit when absent). Section 3.2: "Claims with | ||
| // zero elements MUST be omitted", so a present array must not be empty | ||
| const bool authorization_grant{ | ||
| !data.defines("grant_types_supported"sv, HASH_GRANT_TYPES) || |
There was a problem hiding this comment.
src/core/oauth/oauth_metadata.cc:152: authorization_grant currently treats a present-but-non-array grant_types_supported as "no authorization-endpoint grant types", which can make response_types_supported incorrectly optional even though other paths treat non-array as the RFC default (authorization_code/implicit). Consider either rejecting non-array grant_types_supported here or treating it as absent so the requiredness logic stays consistent.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| JSON::ParseContext::Index, | ||
| element_index, empty_property_)}; | ||
| key_string = this->json_to_key_string(key_value); | ||
| key_string = this->json_to_key_string(key_value, explicit_key_line, |
There was a problem hiding this comment.
src/core/yaml/parser.h:1202-1213: In the explicit-key-in-flow-sequence branch, scalar keys are still taken verbatim (std::string{token->value}) while other mapping keys now route through resolve_scalar_key, so key normalization/duplicate-collision semantics may differ between explicit-flow-key scalars vs normal mapping keys (e.g., 0x1 vs 1, or null-like keys).
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 and verified against the latest diff
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/http/accept_includes_all.cc">
<violation number="1" location="src/core/http/accept_includes_all.cc:39">
P2: Parameterized Accept matching now rejects equivalent charset spellings such as `UTF-8` versus `utf-8`. The parameter comparison should apply the parameter's matching rules (at least case-insensitive matching for `charset`) instead of treating every value as a literal string.</violation>
</file>
<file name="src/core/oidc/oidc_userinfo.cc">
<violation number="1" location="src/core/oidc/oidc_userinfo.cc:71">
P3: Signed UserInfo responses now fail when `iss` or `aud` is missing, but the public `oidc_verify_userinfo` documentation still says only present claims are validated. Updating the declaration comment to document both claims as required would prevent callers from relying on the old behavior.</violation>
</file>
<file name="src/core/jsonpointer/parser.h">
<violation number="1" location="src/core/jsonpointer/parser.h:48">
P3: Oversized numeric pointer tokens incur an avoidable full string copy on the new property path: `std::move(input)` cannot select a move constructor because `Pointer::Token` only accepts `const Property &`. An rvalue `Property` constructor (or equivalent construction with the precomputed hash) would make this hardening path actually move the token.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| const std::uint8_t specificity{ | ||
| http_media_specificity(value, media_type)}; | ||
| const std::uint8_t specificity{http_media_range_specificity( | ||
| value, parameters, media_type_bare, media_type_parameters)}; |
There was a problem hiding this comment.
P2: Parameterized Accept matching now rejects equivalent charset spellings such as UTF-8 versus utf-8. The parameter comparison should apply the parameter's matching rules (at least case-insensitive matching for charset) instead of treating every value as a literal string.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/core/http/accept_includes_all.cc, line 39:
<comment>Parameterized Accept matching now rejects equivalent charset spellings such as `UTF-8` versus `utf-8`. The parameter comparison should apply the parameter's matching rules (at least case-insensitive matching for `charset`) instead of treating every value as a literal string.</comment>
<file context>
@@ -19,19 +19,24 @@ auto http_accept_includes_all(
- const std::uint8_t specificity{
- http_media_specificity(value, media_type)};
+ const std::uint8_t specificity{http_media_range_specificity(
+ value, parameters, media_type_bare, media_type_parameters)};
if (specificity == 0) {
return;
</file context>
| // not-found against an array. This keeps a huge index parseable, matching the | ||
| // check-only path, rather than reporting a parse error | ||
| if (conversion.ec == std::errc::result_out_of_range) [[unlikely]] { | ||
| result.emplace_back(std::move(input)); |
There was a problem hiding this comment.
P3: Oversized numeric pointer tokens incur an avoidable full string copy on the new property path: std::move(input) cannot select a move constructor because Pointer::Token only accepts const Property &. An rvalue Property constructor (or equivalent construction with the precomputed hash) would make this hardening path actually move the token.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/core/jsonpointer/parser.h, line 48:
<comment>Oversized numeric pointer tokens incur an avoidable full string copy on the new property path: `std::move(input)` cannot select a move constructor because `Pointer::Token` only accepts `const Property &`. An rvalue `Property` constructor (or equivalent construction with the precomputed hash) would make this hardening path actually move the token.</comment>
<file context>
@@ -28,18 +29,31 @@ reset(std::basic_stringstream<CharT, Traits, Allocator<CharT>> &stream)
+ // not-found against an array. This keeps a huge index parseable, matching the
+ // check-only path, rather than reporting a parse error
+ if (conversion.ec == std::errc::result_out_of_range) [[unlikely]] {
+ result.emplace_back(std::move(input));
+ return;
+ }
</file context>
| const auto *issuer{token.payload().try_at("iss"sv, HASH_ISS)}; | ||
| if (issuer != nullptr && | ||
| (!issuer->is_string() || issuer->to_string() != expected_issuer)) { | ||
| if (issuer == nullptr || !issuer->is_string() || |
There was a problem hiding this comment.
P3: Signed UserInfo responses now fail when iss or aud is missing, but the public oidc_verify_userinfo documentation still says only present claims are validated. Updating the declaration comment to document both claims as required would prevent callers from relying on the old behavior.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/core/oidc/oidc_userinfo.cc, line 71:
<comment>Signed UserInfo responses now fail when `iss` or `aud` is missing, but the public `oidc_verify_userinfo` documentation still says only present claims are validated. Updating the declaration comment to document both claims as required would prevent callers from relying on the old behavior.</comment>
<file context>
@@ -61,19 +61,20 @@ auto oidc_verify_userinfo(
const auto *issuer{token.payload().try_at("iss"sv, HASH_ISS)};
- if (issuer != nullptr &&
- (!issuer->is_string() || issuer->to_string() != expected_issuer)) {
+ if (issuer == nullptr || !issuer->is_string() ||
+ issuer->to_string() != expected_issuer) {
return std::nullopt;
</file context>
There was a problem hiding this comment.
Benchmark (macos/llvm)
Details
| Benchmark suite | Current: 0a2aaaf | Previous: 2b7e4d5 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.891427259212868 ns/iter |
2.3955301256442203 ns/iter |
0.79 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.7572860648932347 ns/iter |
2.6505300900530187 ns/iter |
0.66 |
Regex_Period_Asterisk |
1.730318906382519 ns/iter |
2.63177835185984 ns/iter |
0.66 |
Regex_Group_Period_Asterisk_Group |
1.6516305792155592 ns/iter |
2.424278098990771 ns/iter |
0.68 |
Regex_Period_Plus |
2.05363963233548 ns/iter |
2.8459419862865403 ns/iter |
0.72 |
Regex_Period |
1.9921637839810444 ns/iter |
2.970514040375034 ns/iter |
0.67 |
Regex_Caret_Period_Plus_Dollar |
1.9838372381209677 ns/iter |
2.870895557269873 ns/iter |
0.69 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.037108048744949 ns/iter |
2.7712530246869895 ns/iter |
0.74 |
Regex_Caret_Period_Asterisk_Dollar |
1.6913005523690092 ns/iter |
2.722612657918704 ns/iter |
0.62 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.6476494285717675 ns/iter |
2.779112248760188 ns/iter |
0.59 |
Regex_Caret_X_Hyphen |
6.211260413539496 ns/iter |
8.438599555847837 ns/iter |
0.74 |
Regex_Period_Md_Dollar |
17.44893972112629 ns/iter |
27.940427988358017 ns/iter |
0.62 |
Regex_Caret_Slash_Period_Asterisk |
5.997158741003629 ns/iter |
6.961667896397928 ns/iter |
0.86 |
Regex_Caret_Period_Range_Dollar |
2.2418337084314173 ns/iter |
3.478337174314059 ns/iter |
0.64 |
Regex_Nested_Backtrack |
27.97601850653789 ns/iter |
41.14628699590672 ns/iter |
0.68 |
JSON_Array_Of_Objects_Unique |
353.4261852875857 ns/iter |
500.72775000001 ns/iter |
0.71 |
JSON_Parse_1 |
6883.58742479649 ns/iter |
11793.205356561537 ns/iter |
0.58 |
JSON_Parse_Real |
8347.605875575286 ns/iter |
9506.80791773299 ns/iter |
0.88 |
JSON_Parse_Decimal |
7745.537357336499 ns/iter |
11450.66687073789 ns/iter |
0.68 |
JSON_Parse_Schema_ISO_Language |
4054409.2378375945 ns/iter |
5926867.899225099 ns/iter |
0.68 |
JSON_Parse_Integer |
4561.855933785518 ns/iter |
7716.931600276097 ns/iter |
0.59 |
JSON_Parse_String_NonSSO_Plain |
7089.786857049163 ns/iter |
12600.415215203244 ns/iter |
0.56 |
JSON_Parse_String_SSO_Plain |
2722.1664037947844 ns/iter |
5385.963186852843 ns/iter |
0.51 |
JSON_Parse_String_Escape_Heavy |
20814.000236009433 ns/iter |
33431.28382090828 ns/iter |
0.62 |
JSON_Parse_Object_Short_Keys |
8247.98974376331 ns/iter |
13570.553625009317 ns/iter |
0.61 |
JSON_Parse_Object_Scalar_Properties |
4255.815042497692 ns/iter |
14752.99179727549 ns/iter |
0.29 |
JSON_Parse_Object_Array_Properties |
6869.260937779715 ns/iter |
13149.41224575872 ns/iter |
0.52 |
JSON_Parse_Object_Object_Properties |
7046.819820009004 ns/iter |
11060.18992506799 ns/iter |
0.64 |
JSON_Parse_Nested_Containers |
57741.65907954059 ns/iter |
96153.79263901395 ns/iter |
0.60 |
JSON_From_String_Copy |
22.482964578480477 ns/iter |
35.5101500872805 ns/iter |
0.63 |
JSON_From_String_Temporary |
18.38191675654244 ns/iter |
31.86407428751174 ns/iter |
0.58 |
JSON_Number_To_Double |
35.95181700842222 ns/iter |
49.89945198315485 ns/iter |
0.72 |
JSON_Object_At_Last_Key/8 |
3.9647082255314405 ns/iter |
6.485450261158243 ns/iter |
0.61 |
JSON_Object_At_Last_Key/32 |
12.1864511274115 ns/iter |
20.31629093070267 ns/iter |
0.60 |
JSON_Object_At_Last_Key/128 |
57.87958295724983 ns/iter |
87.86082217220769 ns/iter |
0.66 |
JSON_Object_At_Last_Key/512 |
258.7997907480684 ns/iter |
273.6183479845288 ns/iter |
0.95 |
JSON_Fast_Hash_Helm_Chart_Lock |
66.52121863904424 ns/iter |
81.07937948077836 ns/iter |
0.82 |
JSON_Equality_Helm_Chart_Lock |
133.9034773099179 ns/iter |
219.1387307668021 ns/iter |
0.61 |
JSON_Divisible_By_Decimal |
192.12755300804508 ns/iter |
264.96051791003697 ns/iter |
0.73 |
JSON_String_Equal/10 |
7.040147168437087 ns/iter |
9.761125571595827 ns/iter |
0.72 |
JSON_String_Equal/100 |
6.920335968348555 ns/iter |
10.530224897825802 ns/iter |
0.66 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.3719441513190397 ns/iter |
0.5622198223716058 ns/iter |
0.66 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.5098048984591483 ns/iter |
4.527251792131214 ns/iter |
0.78 |
JSON_String_Fast_Hash/10 |
2.5603644924427313 ns/iter |
3.3443230635313252 ns/iter |
0.77 |
JSON_String_Fast_Hash/100 |
2.069512811404983 ns/iter |
2.773804750658158 ns/iter |
0.75 |
JSON_String_Key_Hash/10 |
1.8098661600337957 ns/iter |
2.211844077009521 ns/iter |
0.82 |
JSON_String_Key_Hash/100 |
2.211278307917515 ns/iter |
3.11308038319187 ns/iter |
0.71 |
JSON_Object_Defines_Miss_Same_Length |
2.7916682015537146 ns/iter |
3.568122317100981 ns/iter |
0.78 |
JSON_Object_Defines_Miss_Too_Small |
2.646822413971937 ns/iter |
3.5223659309978874 ns/iter |
0.75 |
JSON_Object_Defines_Miss_Too_Large |
2.6353680837812243 ns/iter |
4.1216048555683455 ns/iter |
0.64 |
Pointer_Object_Traverse |
23.168641199610658 ns/iter |
33.33804789000104 ns/iter |
0.69 |
Pointer_Object_Try_Traverse |
21.551119136142958 ns/iter |
33.43556767580863 ns/iter |
0.64 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
171.7396230747148 ns/iter |
250.83793122210653 ns/iter |
0.68 |
Pointer_Walker_Schema_ISO_Language |
2717485.36200704 ns/iter |
3810864.988826472 ns/iter |
0.71 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1188288.4551972465 ns/iter |
1732306.653061224 ns/iter |
0.69 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1001414.9159663551 ns/iter |
1504461.2310837465 ns/iter |
0.67 |
Pointer_Position_Tracker_Get_Deeply_Nested |
320.55226667459954 ns/iter |
470.90306716184733 ns/iter |
0.68 |
JSONPath_Descendant_Filter_Nested |
1211.8855534976813 ns/iter |
2016.908488597901 ns/iter |
0.60 |
URITemplateRouter_Create |
22351.311013245853 ns/iter |
32574.40101949878 ns/iter |
0.69 |
URITemplateRouter_Match |
162.6925854456872 ns/iter |
263.60682927860597 ns/iter |
0.62 |
URITemplateRouter_Match_BasePath |
191.80157635882904 ns/iter |
305.6410805808327 ns/iter |
0.63 |
URITemplateRouterView_Restore |
10076.345728299257 ns/iter |
17322.659240531382 ns/iter |
0.58 |
URITemplateRouterView_Match |
129.53064573716415 ns/iter |
197.47452397927066 ns/iter |
0.66 |
URITemplateRouterView_Match_BasePath |
147.9660458489435 ns/iter |
225.9235105904993 ns/iter |
0.65 |
URITemplateRouterView_Arguments |
532.5336835738177 ns/iter |
861.8809398125547 ns/iter |
0.62 |
JSONL_Parse_Large |
10584685.261539143 ns/iter |
15427091.87179543 ns/iter |
0.69 |
JSONL_Parse_Large_GZIP |
12808716.346153934 ns/iter |
17858788.368420463 ns/iter |
0.72 |
JSONLD_Catalog_Annotation_List_Populate |
855305.7688377196 ns/iter |
1232916.1519434976 ns/iter |
0.69 |
JSONLD_Catalog_Materialize |
4323998.456790698 ns/iter |
6171845.535354437 ns/iter |
0.70 |
HTML_Build_Table_100000 |
35613537.500000805 ns/iter |
46962505.53333054 ns/iter |
0.76 |
HTML_Render_Table_100000 |
1491730.244943999 ns/iter |
2108013.186708863 ns/iter |
0.71 |
GZIP_Compress_ISO_Language_Set_3_Locations |
25620099.714286327 ns/iter |
35835672.363635816 ns/iter |
0.71 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
3106686.946902284 ns/iter |
4426812.762499565 ns/iter |
0.70 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1477050.9159481744 ns/iter |
2075415.6882353127 ns/iter |
0.71 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
266924.72273780033 ns/iter |
362071.16610166716 ns/iter |
0.74 |
JOSE_VerifySignature_RS256 |
21199.753491918447 ns/iter |
27072.770561037567 ns/iter |
0.78 |
JOSE_VerifySignature_ES512 |
1094659.1674492185 ns/iter |
1220043.8513984212 ns/iter |
0.90 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: 0a2aaaf | Previous: 2b7e4d5 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.194045096822065 ns/iter |
2.1902526594907705 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.4907509090797744 ns/iter |
2.2214056109216673 ns/iter |
1.12 |
Regex_Period_Asterisk |
2.48986096263637 ns/iter |
2.20260256189994 ns/iter |
1.13 |
Regex_Group_Period_Asterisk_Group |
2.201803169876325 ns/iter |
2.1904179448023897 ns/iter |
1.01 |
Regex_Period_Plus |
2.80452219563665 ns/iter |
2.490472661287149 ns/iter |
1.13 |
Regex_Period |
3.1203036151327 ns/iter |
2.8058544137894605 ns/iter |
1.11 |
Regex_Caret_Period_Plus_Dollar |
3.113121172763374 ns/iter |
2.8003535845837977 ns/iter |
1.11 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.8034686894612957 ns/iter |
2.4929769504689556 ns/iter |
1.12 |
Regex_Caret_Period_Asterisk_Dollar |
3.4231018773348287 ns/iter |
3.1109208757860363 ns/iter |
1.10 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.73328808256528 ns/iter |
3.4236498554113424 ns/iter |
1.09 |
Regex_Caret_X_Hyphen |
6.854924220054366 ns/iter |
6.862296329448041 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
27.913206149594604 ns/iter |
27.49581059069321 ns/iter |
1.02 |
Regex_Caret_Slash_Period_Asterisk |
5.911594971352641 ns/iter |
6.861188933984913 ns/iter |
0.86 |
Regex_Caret_Period_Range_Dollar |
4.672024674262415 ns/iter |
4.361511701117985 ns/iter |
1.07 |
Regex_Nested_Backtrack |
41.964914722609976 ns/iter |
38.58850243381654 ns/iter |
1.09 |
JSON_Array_Of_Objects_Unique |
394.3896285488954 ns/iter |
414.0386146610907 ns/iter |
0.95 |
JSON_Parse_1 |
4949.355455744349 ns/iter |
4824.921221066738 ns/iter |
1.03 |
JSON_Parse_Real |
5275.302407868997 ns/iter |
5102.689237901026 ns/iter |
1.03 |
JSON_Parse_Decimal |
7708.665968735768 ns/iter |
7325.110249523222 ns/iter |
1.05 |
JSON_Parse_Schema_ISO_Language |
3643807.3854162903 ns/iter |
3579746.895522376 ns/iter |
1.02 |
JSON_Parse_Integer |
3659.087001986753 ns/iter |
3671.704957703822 ns/iter |
1.00 |
JSON_Parse_String_NonSSO_Plain |
5095.199891954534 ns/iter |
5030.190517031951 ns/iter |
1.01 |
JSON_Parse_String_SSO_Plain |
2710.9394921496114 ns/iter |
2757.4166562047676 ns/iter |
0.98 |
JSON_Parse_String_Escape_Heavy |
14509.336032637555 ns/iter |
14387.213339139627 ns/iter |
1.01 |
JSON_Parse_Object_Short_Keys |
8131.281767186394 ns/iter |
10994.727994363626 ns/iter |
0.74 |
JSON_Parse_Object_Scalar_Properties |
4195.699085993796 ns/iter |
3998.7869792053293 ns/iter |
1.05 |
JSON_Parse_Object_Array_Properties |
5632.292806713061 ns/iter |
5660.088001231668 ns/iter |
1.00 |
JSON_Parse_Object_Object_Properties |
5512.99415894224 ns/iter |
5481.460143086096 ns/iter |
1.01 |
JSON_Parse_Nested_Containers |
45316.35188323105 ns/iter |
44628.57586673089 ns/iter |
1.02 |
JSON_From_String_Copy |
20.267992968943492 ns/iter |
19.317505649107684 ns/iter |
1.05 |
JSON_From_String_Temporary |
18.100638686970978 ns/iter |
17.190401989412816 ns/iter |
1.05 |
JSON_Number_To_Double |
23.086848116484678 ns/iter |
22.864645679905756 ns/iter |
1.01 |
JSON_Object_At_Last_Key/8 |
3.8298050510678467 ns/iter |
3.8468040473727876 ns/iter |
1.00 |
JSON_Object_At_Last_Key/32 |
12.246631891260133 ns/iter |
12.169998084808558 ns/iter |
1.01 |
JSON_Object_At_Last_Key/128 |
49.41804450467058 ns/iter |
48.364121836352666 ns/iter |
1.02 |
JSON_Object_At_Last_Key/512 |
393.19689325519556 ns/iter |
399.3743742167688 ns/iter |
0.98 |
JSON_Fast_Hash_Helm_Chart_Lock |
58.20895766093319 ns/iter |
60.84708928280763 ns/iter |
0.96 |
JSON_Equality_Helm_Chart_Lock |
172.35676272198833 ns/iter |
159.7055460342849 ns/iter |
1.08 |
JSON_Divisible_By_Decimal |
252.07017126726646 ns/iter |
254.77748070436078 ns/iter |
0.99 |
JSON_String_Equal/10 |
6.538550153379669 ns/iter |
5.9202352694117435 ns/iter |
1.10 |
JSON_String_Equal/100 |
6.231726854665717 ns/iter |
6.545258916097069 ns/iter |
0.95 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9390326301149646 ns/iter |
0.9395155267350235 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.934252248199234 ns/iter |
10.660873011506764 ns/iter |
1.40 |
JSON_String_Fast_Hash/10 |
2.799729857512457 ns/iter |
2.8087402858715698 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.8019111380548494 ns/iter |
2.8020575108697208 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
2.752680980379425 ns/iter |
2.1797558792100844 ns/iter |
1.26 |
JSON_String_Key_Hash/100 |
9.06443620729104 ns/iter |
6.536080339440337 ns/iter |
1.39 |
JSON_Object_Defines_Miss_Same_Length |
3.1473699706583322 ns/iter |
3.147951676692463 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.4302333067477675 ns/iter |
3.42854766243904 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
2.695651016582196 ns/iter |
2.889084602626542 ns/iter |
0.93 |
Pointer_Object_Traverse |
29.60403879163649 ns/iter |
28.57731311610001 ns/iter |
1.04 |
Pointer_Object_Try_Traverse |
31.222945269215575 ns/iter |
31.04094579597164 ns/iter |
1.01 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
224.91819316106123 ns/iter |
151.5662716047001 ns/iter |
1.48 |
Pointer_Walker_Schema_ISO_Language |
2687694.9616856235 ns/iter |
2620722.9588017277 ns/iter |
1.03 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1288678.3538174932 ns/iter |
1233159.014234882 ns/iter |
1.05 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1590173.1070613647 ns/iter |
1590885.6036444968 ns/iter |
1.00 |
Pointer_Position_Tracker_Get_Deeply_Nested |
529.0997951950051 ns/iter |
716.6399778661846 ns/iter |
0.74 |
JSONPath_Descendant_Filter_Nested |
1611.9391359867268 ns/iter |
1609.5828805286583 ns/iter |
1.00 |
URITemplateRouter_Create |
32999.34177335839 ns/iter |
34099.714796213855 ns/iter |
0.97 |
URITemplateRouter_Match |
182.72748337998019 ns/iter |
174.97053871402358 ns/iter |
1.04 |
URITemplateRouter_Match_BasePath |
202.19791732280956 ns/iter |
201.38546872204756 ns/iter |
1.00 |
URITemplateRouterView_Restore |
8618.762937906644 ns/iter |
8434.844540075444 ns/iter |
1.02 |
URITemplateRouterView_Match |
141.9082136554871 ns/iter |
143.15064797370596 ns/iter |
0.99 |
URITemplateRouterView_Match_BasePath |
162.11559900021484 ns/iter |
163.62195385872 ns/iter |
0.99 |
URITemplateRouterView_Arguments |
421.0120563036751 ns/iter |
428.7351365450265 ns/iter |
0.98 |
JSONL_Parse_Large |
10057548.042857435 ns/iter |
10093352.405797172 ns/iter |
1.00 |
JSONL_Parse_Large_GZIP |
11755329.449999863 ns/iter |
11604797.966667017 ns/iter |
1.01 |
JSONLD_Catalog_Annotation_List_Populate |
1277702.2627737774 ns/iter |
1231010.349206444 ns/iter |
1.04 |
JSONLD_Catalog_Materialize |
4484453.167741952 ns/iter |
4156409.577381245 ns/iter |
1.08 |
HTML_Build_Table_100000 |
64587413.99999533 ns/iter |
64124409.81818111 ns/iter |
1.01 |
HTML_Render_Table_100000 |
5545722.7177418 ns/iter |
5393166.071428368 ns/iter |
1.03 |
GZIP_Compress_ISO_Language_Set_3_Locations |
33605824.952376544 ns/iter |
33369996.57142856 ns/iter |
1.01 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4351960.881987811 ns/iter |
4066029.508771729 ns/iter |
1.07 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1891221.9837836125 ns/iter |
1885419.6522909359 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
351889.39798999217 ns/iter |
351030.473156048 ns/iter |
1.00 |
JOSE_VerifySignature_RS256 |
56821.93061754486 ns/iter |
57003.680790734856 ns/iter |
1.00 |
JOSE_VerifySignature_ES512 |
2446396.961538603 ns/iter |
2426300.301037882 ns/iter |
1.01 |
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: 0a2aaaf | Previous: 2b7e4d5 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
5.398571428571586 ns/iter |
5.419398999997611 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
5.119907999999214 ns/iter |
5.095056000000113 ns/iter |
1.00 |
Regex_Period_Asterisk |
5.050224000001435 ns/iter |
5.083915000000161 ns/iter |
0.99 |
Regex_Group_Period_Asterisk_Group |
5.165251999999327 ns/iter |
5.088071999998647 ns/iter |
1.02 |
Regex_Period_Plus |
4.856270769767235 ns/iter |
5.1803160000008575 ns/iter |
0.94 |
Regex_Period |
5.028460714285643 ns/iter |
5.412328000002162 ns/iter |
0.93 |
Regex_Caret_Period_Plus_Dollar |
4.839870849295125 ns/iter |
5.020374999998824 ns/iter |
0.96 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
5.081896429705851 ns/iter |
5.369955357143193 ns/iter |
0.95 |
Regex_Caret_Period_Asterisk_Dollar |
5.40285600000061 ns/iter |
5.366400999996586 ns/iter |
1.01 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
5.099894999998469 ns/iter |
5.101559978818005 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
8.7427745535708 ns/iter |
8.489420051383117 ns/iter |
1.03 |
Regex_Period_Md_Dollar |
45.12507358173753 ns/iter |
45.71482927931327 ns/iter |
0.99 |
Regex_Caret_Slash_Period_Asterisk |
8.0586414818818 ns/iter |
7.919660714286182 ns/iter |
1.02 |
Regex_Caret_Period_Range_Dollar |
6.036047000000053 ns/iter |
6.223543749996451 ns/iter |
0.97 |
Regex_Nested_Backtrack |
55.96475000000315 ns/iter |
56.23902678572839 ns/iter |
1.00 |
JSON_Array_Of_Objects_Unique |
634.7459821429068 ns/iter |
606.552767857238 ns/iter |
1.05 |
JSON_Parse_1 |
8960.26758809134 ns/iter |
8957.655133927337 ns/iter |
1.00 |
JSON_Parse_Real |
16151.516193186324 ns/iter |
16426.071156724793 ns/iter |
0.98 |
JSON_Parse_Decimal |
12074.273437502114 ns/iter |
11860.557142857228 ns/iter |
1.02 |
JSON_Parse_Schema_ISO_Language |
8192817.777777842 ns/iter |
7385837.777777245 ns/iter |
1.11 |
JSON_Parse_Integer |
6109.530357142441 ns/iter |
6297.355357142059 ns/iter |
0.97 |
JSON_Parse_String_NonSSO_Plain |
7909.199776785819 ns/iter |
7694.59821428699 ns/iter |
1.03 |
JSON_Parse_String_SSO_Plain |
3727.629414948027 ns/iter |
3698.08107485492 ns/iter |
1.01 |
JSON_Parse_String_Escape_Heavy |
21621.740625000995 ns/iter |
21717.099999989387 ns/iter |
1.00 |
JSON_Parse_Object_Short_Keys |
13257.260235449487 ns/iter |
13396.309614687585 ns/iter |
0.99 |
JSON_Parse_Object_Scalar_Properties |
6949.35089285715 ns/iter |
6959.127678572129 ns/iter |
1.00 |
JSON_Parse_Object_Array_Properties |
11427.529687498605 ns/iter |
11326.540624999381 ns/iter |
1.01 |
JSON_Parse_Object_Object_Properties |
11754.15156249926 ns/iter |
11592.579687501826 ns/iter |
1.01 |
JSON_Parse_Nested_Containers |
79769.01785714371 ns/iter |
79879.99999998456 ns/iter |
1.00 |
JSON_From_String_Copy |
68.11138392858344 ns/iter |
64.7899910714094 ns/iter |
1.05 |
JSON_From_String_Temporary |
62.42253571429046 ns/iter |
58.71883928571314 ns/iter |
1.06 |
JSON_Number_To_Double |
122.49292857144872 ns/iter |
124.3525000000188 ns/iter |
0.99 |
JSON_Object_At_Last_Key/8 |
7.302073214286712 ns/iter |
7.399988839286006 ns/iter |
0.99 |
JSON_Object_At_Last_Key/32 |
23.577096428571817 ns/iter |
23.440267857137897 ns/iter |
1.01 |
JSON_Object_At_Last_Key/128 |
91.06688616071779 ns/iter |
90.17837543846456 ns/iter |
1.01 |
JSON_Object_At_Last_Key/512 |
426.36960233453476 ns/iter |
423.95454838565763 ns/iter |
1.01 |
JSON_Fast_Hash_Helm_Chart_Lock |
106.62263363291453 ns/iter |
101.8117588477061 ns/iter |
1.05 |
JSON_Equality_Helm_Chart_Lock |
260.48235714280764 ns/iter |
253.31940253134545 ns/iter |
1.03 |
JSON_Divisible_By_Decimal |
297.7409935556469 ns/iter |
301.7554216790843 ns/iter |
0.99 |
JSON_String_Equal/10 |
10.900196874999324 ns/iter |
10.384187500001474 ns/iter |
1.05 |
JSON_String_Equal/100 |
12.091719642857665 ns/iter |
11.882587499997044 ns/iter |
1.02 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.563227857143602 ns/iter |
2.542885714285603 ns/iter |
1.01 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
15.211129464286646 ns/iter |
14.160983642137621 ns/iter |
1.07 |
JSON_String_Fast_Hash/10 |
6.734308928571409 ns/iter |
6.717585714284269 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
6.681507142855838 ns/iter |
6.614649553574127 ns/iter |
1.01 |
JSON_String_Key_Hash/10 |
5.50877299999911 ns/iter |
5.43037857142638 ns/iter |
1.01 |
JSON_String_Key_Hash/100 |
11.93105535714218 ns/iter |
11.927646875001585 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.952199457229119 ns/iter |
3.8131300223222446 ns/iter |
1.04 |
JSON_Object_Defines_Miss_Too_Small |
4.100410676964644 ns/iter |
4.205558623581138 ns/iter |
0.97 |
JSON_Object_Defines_Miss_Too_Large |
3.8198253348222164 ns/iter |
3.8287923145920923 ns/iter |
1.00 |
Pointer_Object_Traverse |
71.77825892857267 ns/iter |
71.0473392857125 ns/iter |
1.01 |
Pointer_Object_Try_Traverse |
74.549294642858 ns/iter |
72.18222321426992 ns/iter |
1.03 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
164.53386146434582 ns/iter |
179.57578389071926 ns/iter |
0.92 |
Pointer_Walker_Schema_ISO_Language |
13138630.357145432 ns/iter |
10689053.333335323 ns/iter |
1.23 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2489862.1212118445 ns/iter |
2419176.9230767335 ns/iter |
1.03 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3787743.315507958 ns/iter |
3593425.6410259064 ns/iter |
1.05 |
Pointer_Position_Tracker_Get_Deeply_Nested |
559.1789062499179 ns/iter |
544.1862279078482 ns/iter |
1.03 |
JSONPath_Descendant_Filter_Nested |
2409.1878571425696 ns/iter |
2431.4403666951625 ns/iter |
0.99 |
URITemplateRouter_Create |
41013.91677790668 ns/iter |
41455.55354667452 ns/iter |
0.99 |
URITemplateRouter_Match |
240.32130130342213 ns/iter |
239.94460714285586 ns/iter |
1.00 |
URITemplateRouter_Match_BasePath |
274.76494083773304 ns/iter |
268.4156682327766 ns/iter |
1.02 |
URITemplateRouterView_Restore |
33157.44152252977 ns/iter |
34056.28369192354 ns/iter |
0.97 |
URITemplateRouterView_Match |
177.70150693760692 ns/iter |
180.73257898516064 ns/iter |
0.98 |
URITemplateRouterView_Match_BasePath |
203.66341724715875 ns/iter |
208.59218750004516 ns/iter |
0.98 |
URITemplateRouterView_Arguments |
605.9308999999757 ns/iter |
549.5185999998284 ns/iter |
1.10 |
JSONL_Parse_Large |
32744735.000005674 ns/iter |
33065909.52379771 ns/iter |
0.99 |
JSONL_Parse_Large_GZIP |
33315866.66666096 ns/iter |
33602209.52379764 ns/iter |
0.99 |
JSONLD_Catalog_Annotation_List_Populate |
2706922.348484871 ns/iter |
2634976.5151515 ns/iter |
1.03 |
JSONLD_Catalog_Materialize |
7565814.444443377 ns/iter |
8024869.999998271 ns/iter |
0.94 |
HTML_Build_Table_100000 |
91232228.57143836 ns/iter |
90748571.42858101 ns/iter |
1.01 |
HTML_Render_Table_100000 |
7686512.222221609 ns/iter |
7232161.1111116605 ns/iter |
1.06 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36936984.99999982 ns/iter |
36592557.89474819 ns/iter |
1.01 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
9780518.666666467 ns/iter |
9673653.33333267 ns/iter |
1.01 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2118784.34782562 ns/iter |
2118517.499999939 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
625653.4821428009 ns/iter |
604993.3035711774 ns/iter |
1.03 |
JOSE_VerifySignature_RS256 |
21381.51249999964 ns/iter |
21343.5203992801 ns/iter |
1.00 |
JOSE_VerifySignature_ES512 |
1543404.6875003763 ns/iter |
1546652.4096383187 ns/iter |
1.00 |
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: 0a2aaaf | Previous: 2b7e4d5 | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
22568.64442535299 ns/iter |
22452.866877659995 ns/iter |
1.01 |
JOSE_VerifySignature_ES512 |
579403.7983471092 ns/iter |
576538.1010682014 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36556563.00000038 ns/iter |
37025254.21052589 ns/iter |
0.99 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4274994.01219465 ns/iter |
4301685.388889433 ns/iter |
0.99 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2030663.5290697736 ns/iter |
2040775.1021020312 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
381388.7196516415 ns/iter |
380121.1460369343 ns/iter |
1.00 |
HTML_Build_Table_100000 |
63595869.90909479 ns/iter |
62396442.727276735 ns/iter |
1.02 |
HTML_Render_Table_100000 |
1998262.4742858335 ns/iter |
2055647.8110465119 ns/iter |
0.97 |
JSONLD_Catalog_Annotation_List_Populate |
1279929.3729432386 ns/iter |
1309521.723880434 ns/iter |
0.98 |
JSONLD_Catalog_Materialize |
6903631.225490172 ns/iter |
6933728.0882352535 ns/iter |
1.00 |
JSONL_Parse_Large |
13855233.019608378 ns/iter |
13869396.647059076 ns/iter |
1.00 |
JSONL_Parse_Large_GZIP |
15259775.260868417 ns/iter |
15199234.15217205 ns/iter |
1.00 |
URITemplateRouter_Create |
30229.51790408083 ns/iter |
31151.271462854867 ns/iter |
0.97 |
URITemplateRouter_Match |
155.74990302971523 ns/iter |
155.71758517310886 ns/iter |
1.00 |
URITemplateRouter_Match_BasePath |
182.63709419881963 ns/iter |
183.8371850263724 ns/iter |
0.99 |
URITemplateRouterView_Restore |
8639.395732866062 ns/iter |
8577.29889512669 ns/iter |
1.01 |
URITemplateRouterView_Match |
125.91455702811461 ns/iter |
124.79194106429398 ns/iter |
1.01 |
URITemplateRouterView_Match_BasePath |
141.52115871783747 ns/iter |
147.0886000184651 ns/iter |
0.96 |
URITemplateRouterView_Arguments |
467.5585630615953 ns/iter |
470.71453567885743 ns/iter |
0.99 |
JSONPath_Descendant_Filter_Nested |
1652.9572289815612 ns/iter |
1727.0168261752724 ns/iter |
0.96 |
Pointer_Object_Traverse |
32.117364353249684 ns/iter |
30.189219256482023 ns/iter |
1.06 |
Pointer_Object_Try_Traverse |
25.80225769609425 ns/iter |
25.812970858343622 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
148.94745987762002 ns/iter |
158.09225700275363 ns/iter |
0.94 |
Pointer_Walker_Schema_ISO_Language |
2779872.7665369674 ns/iter |
2863952.012048283 ns/iter |
0.97 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1904490.2437674957 ns/iter |
1878223.5467034464 ns/iter |
1.01 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1700739.265206699 ns/iter |
1693500.041062854 ns/iter |
1.00 |
Pointer_Position_Tracker_Get_Deeply_Nested |
415.25993962939674 ns/iter |
513.8029732410666 ns/iter |
0.81 |
JSON_Array_Of_Objects_Unique |
402.2683391462112 ns/iter |
420.5461207368551 ns/iter |
0.96 |
JSON_Parse_1 |
9911.908683480648 ns/iter |
9955.165717281356 ns/iter |
1.00 |
JSON_Parse_Real |
7922.830518855269 ns/iter |
7832.695203828884 ns/iter |
1.01 |
JSON_Parse_Decimal |
12982.193930393296 ns/iter |
13353.716882819273 ns/iter |
0.97 |
JSON_Parse_Schema_ISO_Language |
6665517.557692624 ns/iter |
6708961.761904946 ns/iter |
0.99 |
JSON_Parse_Integer |
5729.5798742856805 ns/iter |
5805.67751052634 ns/iter |
0.99 |
JSON_Parse_String_NonSSO_Plain |
12403.730659739675 ns/iter |
12161.01119019868 ns/iter |
1.02 |
JSON_Parse_String_SSO_Plain |
5125.058355010985 ns/iter |
5000.472796130409 ns/iter |
1.02 |
JSON_Parse_String_Escape_Heavy |
26480.80147280001 ns/iter |
26309.551896684367 ns/iter |
1.01 |
JSON_Parse_Object_Short_Keys |
14087.263107090917 ns/iter |
13785.29483569928 ns/iter |
1.02 |
JSON_Parse_Object_Scalar_Properties |
7137.891948346759 ns/iter |
7241.142325740207 ns/iter |
0.99 |
JSON_Parse_Object_Array_Properties |
12229.032675064731 ns/iter |
12189.303667648743 ns/iter |
1.00 |
JSON_Parse_Object_Object_Properties |
12542.650780003683 ns/iter |
12331.93948994079 ns/iter |
1.02 |
JSON_Parse_Nested_Containers |
100696.74920634477 ns/iter |
100474.58694078044 ns/iter |
1.00 |
JSON_From_String_Copy |
18.076999657020178 ns/iter |
17.763452726824266 ns/iter |
1.02 |
JSON_From_String_Temporary |
15.072486696117146 ns/iter |
15.04370704376172 ns/iter |
1.00 |
JSON_Number_To_Double |
21.197072754679976 ns/iter |
21.007827446582734 ns/iter |
1.01 |
JSON_Object_At_Last_Key/8 |
5.878339556128781 ns/iter |
5.69518268791989 ns/iter |
1.03 |
JSON_Object_At_Last_Key/32 |
21.89484991127208 ns/iter |
21.70470260004706 ns/iter |
1.01 |
JSON_Object_At_Last_Key/128 |
87.65987582370398 ns/iter |
87.9436465460771 ns/iter |
1.00 |
JSON_Object_At_Last_Key/512 |
388.6699350102826 ns/iter |
390.17389434612943 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
71.03764897750443 ns/iter |
61.2000974594977 ns/iter |
1.16 |
JSON_Equality_Helm_Chart_Lock |
147.1086148612661 ns/iter |
156.57410419020164 ns/iter |
0.94 |
JSON_Divisible_By_Decimal |
250.58765762153018 ns/iter |
251.2929273317969 ns/iter |
1.00 |
JSON_String_Equal/10 |
5.103395711698823 ns/iter |
5.064931603179141 ns/iter |
1.01 |
JSON_String_Equal/100 |
5.723354763872304 ns/iter |
5.690388974149147 ns/iter |
1.01 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.6387171189062352 ns/iter |
0.6236304293086179 ns/iter |
1.02 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.191591739839822 ns/iter |
25.201349398232228 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.2784274300118454 ns/iter |
2.277487287948328 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.2626464248089753 ns/iter |
2.2627856341794836 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.248764015285978 ns/iter |
1.249972111379905 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
12.442856118231536 ns/iter |
12.445109328383474 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.113632605549366 ns/iter |
3.11228924208771 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.117141525527457 ns/iter |
3.115071691994589 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.11500141388272 ns/iter |
3.1124820731173135 ns/iter |
1.00 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.6240067644400286 ns/iter |
0.6228883888244637 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.9366552057777612 ns/iter |
0.6229895955052875 ns/iter |
1.50 |
Regex_Period_Asterisk |
0.6231056990996994 ns/iter |
0.6251710625815907 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
0.9357248979809544 ns/iter |
0.6228936456652795 ns/iter |
1.50 |
Regex_Period_Plus |
0.6232135092091212 ns/iter |
0.6232051896164693 ns/iter |
1.00 |
Regex_Period |
0.9346226530244072 ns/iter |
0.6274664210907963 ns/iter |
1.49 |
Regex_Caret_Period_Plus_Dollar |
0.6252656768149193 ns/iter |
0.6242870993699814 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.9350694344968135 ns/iter |
0.6231701362929587 ns/iter |
1.50 |
Regex_Caret_Period_Asterisk_Dollar |
0.6232404254352625 ns/iter |
0.6229132772837193 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.9343363938442573 ns/iter |
0.6337702307072404 ns/iter |
1.47 |
Regex_Caret_X_Hyphen |
3.744633749456532 ns/iter |
3.7402445822618935 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
28.823049330481116 ns/iter |
38.992385329000776 ns/iter |
0.74 |
Regex_Caret_Slash_Period_Asterisk |
4.048056986309907 ns/iter |
4.047847704022269 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
1.5575713715819208 ns/iter |
1.2454633348772792 ns/iter |
1.25 |
Regex_Nested_Backtrack |
37.50983831843401 ns/iter |
40.00949842969992 ns/iter |
0.94 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com