Add plenty of unit tests to address more code coverage gaps - #2711
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR broadens unit-test coverage across core modules and tightens several internal precondition assumptions. Changes:
Technical Notes: The parser/decoder changes assume trusted internal control flow, while the new tests target malformed external input and edge cases to improve coverage. 🤖 Was this summary useful? React with 👍 or 👎 |
| std::ofstream output{path}; | ||
| output << "content"; | ||
| output.close(); | ||
| std::filesystem::permissions(path, std::filesystem::perms::none, |
There was a problem hiding this comment.
On POSIX CI workers running as root (a common container configuration), removing the permission bits does not prevent the process from opening this file, so flush() succeeds and this test reaches FAIL(). The test therefore makes the suite depend on the runner's privileges rather than the implementation's behavior.
Severity: low
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
There was a problem hiding this comment.
Benchmark (linux/gcc)
Details
| Benchmark suite | Current: a2cfce4 | Previous: 28c0899 | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
18903.363471088054 ns/iter |
22294.856402571007 ns/iter |
0.85 |
JOSE_VerifySignature_ES512 |
497299.92334988515 ns/iter |
576280.7822513973 ns/iter |
0.86 |
GZIP_Compress_ISO_Language_Set_3_Locations |
30265608.347823888 ns/iter |
36498694.47368521 ns/iter |
0.83 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
2798228.6947788848 ns/iter |
4273465.381250219 ns/iter |
0.65 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1752122.0849999965 ns/iter |
2023541.4797686008 ns/iter |
0.87 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
195902.56324169697 ns/iter |
375207.9308681324 ns/iter |
0.52 |
HTML_Build_Table_100000 |
55691993.99999784 ns/iter |
62196947.54545137 ns/iter |
0.90 |
HTML_Render_Table_100000 |
1899305.970189603 ns/iter |
1856418.7154049082 ns/iter |
1.02 |
JSONLD_Catalog_Annotation_List_Populate |
1197158.6604413507 ns/iter |
1512789.762930934 ns/iter |
0.79 |
JSONLD_Catalog_Materialize |
5550219.552000272 ns/iter |
7226257.53061196 ns/iter |
0.77 |
JSONL_Parse_Large |
10308348.529411446 ns/iter |
14136616.779999258 ns/iter |
0.73 |
JSONL_Parse_Large_GZIP |
11376064.161289202 ns/iter |
15455638.711111734 ns/iter |
0.74 |
URITemplateRouter_Create |
22591.724641871817 ns/iter |
30858.419491151824 ns/iter |
0.73 |
URITemplateRouter_Match |
106.62783448674432 ns/iter |
159.3073872317478 ns/iter |
0.67 |
URITemplateRouter_Match_BasePath |
125.1708435798215 ns/iter |
184.02070354959858 ns/iter |
0.68 |
URITemplateRouterView_Restore |
7858.559983901383 ns/iter |
8566.92411084339 ns/iter |
0.92 |
URITemplateRouterView_Match |
93.54863902796743 ns/iter |
124.45183130170794 ns/iter |
0.75 |
URITemplateRouterView_Match_BasePath |
104.59107203300128 ns/iter |
140.74209531982874 ns/iter |
0.74 |
URITemplateRouterView_Arguments |
362.1331138263072 ns/iter |
466.4225909166426 ns/iter |
0.78 |
JSONPath_Descendant_Filter_Nested |
1505.0369364510473 ns/iter |
1741.0131081200177 ns/iter |
0.86 |
Pointer_Object_Traverse |
25.07301402907414 ns/iter |
32.13678215884734 ns/iter |
0.78 |
Pointer_Object_Try_Traverse |
20.04467209285596 ns/iter |
25.399715063087555 ns/iter |
0.79 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
119.66380528776386 ns/iter |
148.25732282069757 ns/iter |
0.81 |
Pointer_Walker_Schema_ISO_Language |
1985932.0972222527 ns/iter |
2729865.703125167 ns/iter |
0.73 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1493331.4861406514 ns/iter |
1877929.8211382602 ns/iter |
0.80 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1285878.1305146497 ns/iter |
1730363.1519607778 ns/iter |
0.74 |
Pointer_Position_Tracker_Get_Deeply_Nested |
341.6572930597292 ns/iter |
522.5027900838558 ns/iter |
0.65 |
JSON_Array_Of_Objects_Unique |
310.26236733838095 ns/iter |
484.8469247174082 ns/iter |
0.64 |
JSON_Parse_1 |
7887.288645159441 ns/iter |
9999.109584290305 ns/iter |
0.79 |
JSON_Parse_Real |
6097.975924844119 ns/iter |
7979.156266140018 ns/iter |
0.76 |
JSON_Parse_Decimal |
8807.360759175046 ns/iter |
12830.114359510711 ns/iter |
0.69 |
JSON_Parse_Schema_ISO_Language |
5250493.257575913 ns/iter |
6730304.086538843 ns/iter |
0.78 |
JSON_Parse_Integer |
4680.26270667466 ns/iter |
5853.588714640425 ns/iter |
0.80 |
JSON_Parse_String_NonSSO_Plain |
9626.029422277294 ns/iter |
12387.952979003778 ns/iter |
0.78 |
JSON_Parse_String_SSO_Plain |
3985.8652111948354 ns/iter |
5093.687480033375 ns/iter |
0.78 |
JSON_Parse_String_Escape_Heavy |
19236.734658810212 ns/iter |
26075.27806827385 ns/iter |
0.74 |
JSON_Parse_Object_Short_Keys |
11153.171912523501 ns/iter |
14296.890547057199 ns/iter |
0.78 |
JSON_Parse_Object_Scalar_Properties |
5713.227590078905 ns/iter |
7304.268390697546 ns/iter |
0.78 |
JSON_Parse_Object_Array_Properties |
10292.821368996678 ns/iter |
12394.790236999714 ns/iter |
0.83 |
JSON_Parse_Object_Object_Properties |
9604.871126260157 ns/iter |
12167.656750012873 ns/iter |
0.79 |
JSON_Parse_Nested_Containers |
79397.58772629025 ns/iter |
103628.77126625589 ns/iter |
0.77 |
JSON_From_String_Copy |
15.102013502829404 ns/iter |
18.25434157545748 ns/iter |
0.83 |
JSON_From_String_Temporary |
12.080598525159628 ns/iter |
15.047952398604885 ns/iter |
0.80 |
JSON_Number_To_Double |
15.278593473549767 ns/iter |
20.56585837240612 ns/iter |
0.74 |
JSON_Object_At_Last_Key/8 |
5.184623153010346 ns/iter |
3.741080038438996 ns/iter |
1.39 |
JSON_Object_At_Last_Key/32 |
18.56349687683041 ns/iter |
13.095480643439682 ns/iter |
1.42 |
JSON_Object_At_Last_Key/128 |
70.96523466064824 ns/iter |
48.65403835625657 ns/iter |
1.46 |
JSON_Object_At_Last_Key/512 |
294.34323411144084 ns/iter |
360.7863335610648 ns/iter |
0.82 |
JSON_Fast_Hash_Helm_Chart_Lock |
54.8704748535851 ns/iter |
75.91803946820936 ns/iter |
0.72 |
JSON_Equality_Helm_Chart_Lock |
124.75946208336082 ns/iter |
151.67951623073242 ns/iter |
0.82 |
JSON_Divisible_By_Decimal |
197.6685527912529 ns/iter |
250.82281370943792 ns/iter |
0.79 |
JSON_String_Equal/10 |
4.192905811960488 ns/iter |
5.378250685730583 ns/iter |
0.78 |
JSON_String_Equal/100 |
5.013066568316309 ns/iter |
5.999224011933243 ns/iter |
0.84 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.5517454602995496 ns/iter |
0.6240533017977774 ns/iter |
0.88 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
17.085992825392946 ns/iter |
25.221177802868567 ns/iter |
0.68 |
JSON_String_Fast_Hash/10 |
1.964128709156186 ns/iter |
2.5716710781991092 ns/iter |
0.76 |
JSON_String_Fast_Hash/100 |
1.9102045958080125 ns/iter |
2.5721427215389814 ns/iter |
0.74 |
JSON_String_Key_Hash/10 |
0.8429484627505502 ns/iter |
1.5591785162049203 ns/iter |
0.54 |
JSON_String_Key_Hash/100 |
11.44605796072444 ns/iter |
12.451663306415153 ns/iter |
0.92 |
JSON_Object_Defines_Miss_Same_Length |
2.457294803790753 ns/iter |
3.425874816214771 ns/iter |
0.72 |
JSON_Object_Defines_Miss_Too_Small |
3.010491804280799 ns/iter |
3.1171525145551753 ns/iter |
0.97 |
JSON_Object_Defines_Miss_Too_Large |
2.456022883187896 ns/iter |
3.425991741807858 ns/iter |
0.72 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.5455213920915197 ns/iter |
0.6228444378780414 ns/iter |
0.88 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.5456547013360689 ns/iter |
0.9341773644149752 ns/iter |
0.58 |
Regex_Period_Asterisk |
0.5456091576661467 ns/iter |
0.622175651345729 ns/iter |
0.88 |
Regex_Group_Period_Asterisk_Group |
0.5457837110164846 ns/iter |
0.934380050376519 ns/iter |
0.58 |
Regex_Period_Plus |
0.5454056806176738 ns/iter |
0.6228567765427129 ns/iter |
0.88 |
Regex_Period |
0.5453022008888818 ns/iter |
0.9350792606565512 ns/iter |
0.58 |
Regex_Caret_Period_Plus_Dollar |
0.5466624874331081 ns/iter |
0.6227048597394896 ns/iter |
0.88 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.5455316792821179 ns/iter |
0.9389230244137715 ns/iter |
0.58 |
Regex_Caret_Period_Asterisk_Dollar |
0.5454165015361255 ns/iter |
0.6230149925029292 ns/iter |
0.88 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.5457913171973937 ns/iter |
0.9338356926986208 ns/iter |
0.58 |
Regex_Caret_X_Hyphen |
2.726231389839661 ns/iter |
3.7393291881835813 ns/iter |
0.73 |
Regex_Period_Md_Dollar |
25.452597396536497 ns/iter |
27.822100006985345 ns/iter |
0.91 |
Regex_Caret_Slash_Period_Asterisk |
2.7263911881486695 ns/iter |
4.050524779519879 ns/iter |
0.67 |
Regex_Caret_Period_Range_Dollar |
1.0940141481413286 ns/iter |
1.5568485653535349 ns/iter |
0.70 |
Regex_Nested_Backtrack |
31.275529117670356 ns/iter |
37.75282381789771 ns/iter |
0.83 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
2 issues found across 33 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/gzip/huffman.h">
<violation number="1" location="src/core/gzip/huffman.h:44">
P2: Converting the out-of-range length check to `assert` removes the safety net in release builds: `assert` is compiled out under `NDEBUG`, so if any caller ever passes a length greater than MAX_HUFFMAN_BITS (15), `count_[lengths[symbol]]` becomes an out-of-bounds write into the 16-element `count_` array instead of throwing a clean `GZIPError` as before. The current gzip callers do guarantee lengths ≤ 15, and `HuffmanDecoder::build` is a public method of this library header, so this is a latent robustness regression. Consider keeping the runtime validation (throw) so malformed or unexpected lengths are handled gracefully even in optimized builds, or document that the method now requires lengths ≤ MAX_HUFFMAN_BITS from all future callers.</violation>
</file>
<file name="src/core/jsonpath/parser.h">
<violation number="1" location="src/core/jsonpath/parser.h:649">
P3: This refactor replaces the defensive `this->fail()` paths in `parse_comparison_operator()` and `parse_shorthand_name()` with `assert(...)`. That is fine for validating internal invariants, but `assert` is compiled out under `NDEBUG`, so in release/production builds the parser no longer rejects malformed input on these paths. The current call sites in `parse_comparison_or_test()` do honor `comparison_operator_ahead()` first, so behavior today is unchanged, but the parser is a library that accepts external query strings and previously used these `fail()` calls to throw a precise `JSONPathParseError`. If a future caller (or a grammar change) reaches these helpers without the guard, a release build would read out of bounds via `peek()` or silently return a comparison operator instead of raising a parse error. Consider keeping explicit `fail()` guards for the user-input paths, or at least documenting the `assert` so the invariant is enforced in release too.</violation>
</file>
Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.
Re-trigger cubic
| // The fixed trees use lengths five to nine, the code length tree | ||
| // reads three bit values, and the dynamic trees copy code length | ||
| // symbols below sixteen, so no caller can supply a longer length | ||
| assert(lengths[symbol] <= MAX_HUFFMAN_BITS); |
There was a problem hiding this comment.
P2: Converting the out-of-range length check to assert removes the safety net in release builds: assert is compiled out under NDEBUG, so if any caller ever passes a length greater than MAX_HUFFMAN_BITS (15), count_[lengths[symbol]] becomes an out-of-bounds write into the 16-element count_ array instead of throwing a clean GZIPError as before. The current gzip callers do guarantee lengths ≤ 15, and HuffmanDecoder::build is a public method of this library header, so this is a latent robustness regression. Consider keeping the runtime validation (throw) so malformed or unexpected lengths are handled gracefully even in optimized builds, or document that the method now requires lengths ≤ MAX_HUFFMAN_BITS from all future callers.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/core/gzip/huffman.h, line 44:
<comment>Converting the out-of-range length check to `assert` removes the safety net in release builds: `assert` is compiled out under `NDEBUG`, so if any caller ever passes a length greater than MAX_HUFFMAN_BITS (15), `count_[lengths[symbol]]` becomes an out-of-bounds write into the 16-element `count_` array instead of throwing a clean `GZIPError` as before. The current gzip callers do guarantee lengths ≤ 15, and `HuffmanDecoder::build` is a public method of this library header, so this is a latent robustness regression. Consider keeping the runtime validation (throw) so malformed or unexpected lengths are handled gracefully even in optimized builds, or document that the method now requires lengths ≤ MAX_HUFFMAN_BITS from all future callers.</comment>
<file context>
@@ -37,9 +38,10 @@ class HuffmanDecoder {
+ // The fixed trees use lengths five to nine, the code length tree
+ // reads three bit values, and the dynamic trees copy code length
+ // symbols below sixteen, so no caller can supply a longer length
+ assert(lengths[symbol] <= MAX_HUFFMAN_BITS);
this->count_[lengths[symbol]]++;
}
</file context>
| assert(lengths[symbol] <= MAX_HUFFMAN_BITS); | |
| if (lengths[symbol] > MAX_HUFFMAN_BITS) { | |
| throw GZIPError{"Huffman code length out of range"}; | |
| } | |
| this->fail(); | ||
| } | ||
|
|
||
| assert(!this->at_end() && this->peek() == '='); |
There was a problem hiding this comment.
P3: This refactor replaces the defensive this->fail() paths in parse_comparison_operator() and parse_shorthand_name() with assert(...). That is fine for validating internal invariants, but assert is compiled out under NDEBUG, so in release/production builds the parser no longer rejects malformed input on these paths. The current call sites in parse_comparison_or_test() do honor comparison_operator_ahead() first, so behavior today is unchanged, but the parser is a library that accepts external query strings and previously used these fail() calls to throw a precise JSONPathParseError. If a future caller (or a grammar change) reaches these helpers without the guard, a release build would read out of bounds via peek() or silently return a comparison operator instead of raising a parse error. Consider keeping explicit fail() guards for the user-input paths, or at least documenting the assert so the invariant is enforced in release too.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/core/jsonpath/parser.h, line 649:
<comment>This refactor replaces the defensive `this->fail()` paths in `parse_comparison_operator()` and `parse_shorthand_name()` with `assert(...)`. That is fine for validating internal invariants, but `assert` is compiled out under `NDEBUG`, so in release/production builds the parser no longer rejects malformed input on these paths. The current call sites in `parse_comparison_or_test()` do honor `comparison_operator_ahead()` first, so behavior today is unchanged, but the parser is a library that accepts external query strings and previously used these `fail()` calls to throw a precise `JSONPathParseError`. If a future caller (or a grammar change) reaches these helpers without the guard, a release build would read out of bounds via `peek()` or silently return a comparison operator instead of raising a parse error. Consider keeping explicit `fail()` guards for the user-input paths, or at least documenting the `assert` so the invariant is enforced in release too.</comment>
<file context>
@@ -641,36 +639,33 @@ class JSONPathParser {
- this->fail();
- }
-
+ assert(!this->at_end() && this->peek() == '=');
this->position_ += 1;
return character == '=' ? JSONPath::FilterComparisonOperator::Equal
</file context>
| assert(!this->at_end() && this->peek() == '='); | |
| if (this->at_end() || this->peek() != '=') { | |
| this->fail(); | |
| } | |
There was a problem hiding this comment.
Benchmark (macos/llvm)
Details
| Benchmark suite | Current: a2cfce4 | Previous: 28c0899 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.9534897629812091 ns/iter |
1.6906178178487183 ns/iter |
1.16 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.921041367829087 ns/iter |
1.735997026116513 ns/iter |
1.11 |
Regex_Period_Asterisk |
1.8066484891166816 ns/iter |
1.957900009792864 ns/iter |
0.92 |
Regex_Group_Period_Asterisk_Group |
1.798160493579149 ns/iter |
1.728803184608219 ns/iter |
1.04 |
Regex_Period_Plus |
2.170983557116765 ns/iter |
2.5214693637707866 ns/iter |
0.86 |
Regex_Period |
2.186340599145035 ns/iter |
2.214356553774716 ns/iter |
0.99 |
Regex_Caret_Period_Plus_Dollar |
2.1577077876695574 ns/iter |
2.0488609855204163 ns/iter |
1.05 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.1759781720440143 ns/iter |
2.370949522780688 ns/iter |
0.92 |
Regex_Caret_Period_Asterisk_Dollar |
1.818403903053782 ns/iter |
1.7686013539968737 ns/iter |
1.03 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.7633507747773705 ns/iter |
1.7158536746188593 ns/iter |
1.03 |
Regex_Caret_X_Hyphen |
6.5545784655360615 ns/iter |
6.201091149937834 ns/iter |
1.06 |
Regex_Period_Md_Dollar |
17.85537414931981 ns/iter |
17.70691634049712 ns/iter |
1.01 |
Regex_Caret_Slash_Period_Asterisk |
4.99713728489748 ns/iter |
4.717789994224234 ns/iter |
1.06 |
Regex_Caret_Period_Range_Dollar |
2.093011401044339 ns/iter |
2.2870140564465524 ns/iter |
0.92 |
Regex_Nested_Backtrack |
26.243301611985324 ns/iter |
28.12216969715347 ns/iter |
0.93 |
JSON_Array_Of_Objects_Unique |
342.4130601855014 ns/iter |
346.0508942334106 ns/iter |
0.99 |
JSON_Parse_1 |
7279.269194737498 ns/iter |
6203.008510441063 ns/iter |
1.17 |
JSON_Parse_Real |
6694.692025929289 ns/iter |
6690.06047650268 ns/iter |
1.00 |
JSON_Parse_Decimal |
7683.727435755448 ns/iter |
6855.9906311299565 ns/iter |
1.12 |
JSON_Parse_Schema_ISO_Language |
3848059.0108102243 ns/iter |
3528654.0404036725 ns/iter |
1.09 |
JSON_Parse_Integer |
4781.713796287611 ns/iter |
4364.316909520838 ns/iter |
1.10 |
JSON_Parse_String_NonSSO_Plain |
7309.7657356539485 ns/iter |
7167.036411513142 ns/iter |
1.02 |
JSON_Parse_String_SSO_Plain |
2861.454454764048 ns/iter |
2588.033153459619 ns/iter |
1.11 |
JSON_Parse_String_Escape_Heavy |
21699.470356684764 ns/iter |
20142.686776322604 ns/iter |
1.08 |
JSON_Parse_Object_Short_Keys |
9378.825153412201 ns/iter |
7871.6029045370215 ns/iter |
1.19 |
JSON_Parse_Object_Scalar_Properties |
5033.764530015097 ns/iter |
5320.831669553638 ns/iter |
0.95 |
JSON_Parse_Object_Array_Properties |
7202.6178292499435 ns/iter |
6586.348453299899 ns/iter |
1.09 |
JSON_Parse_Object_Object_Properties |
7408.876974905108 ns/iter |
6731.190037539599 ns/iter |
1.10 |
JSON_Parse_Nested_Containers |
59545.704940995485 ns/iter |
59081.075276568336 ns/iter |
1.01 |
JSON_From_String_Copy |
23.368217710326224 ns/iter |
21.441256165728795 ns/iter |
1.09 |
JSON_From_String_Temporary |
19.31358803127558 ns/iter |
17.74266871829503 ns/iter |
1.09 |
JSON_Number_To_Double |
35.00427310651516 ns/iter |
30.891204919736154 ns/iter |
1.13 |
JSON_Object_At_Last_Key/8 |
4.196335473412027 ns/iter |
4.027886290359893 ns/iter |
1.04 |
JSON_Object_At_Last_Key/32 |
12.11010653946732 ns/iter |
11.335364005926612 ns/iter |
1.07 |
JSON_Object_At_Last_Key/128 |
60.93141314519504 ns/iter |
51.13684437515966 ns/iter |
1.19 |
JSON_Object_At_Last_Key/512 |
184.78811391705563 ns/iter |
173.23990993300373 ns/iter |
1.07 |
JSON_Fast_Hash_Helm_Chart_Lock |
59.365709516813105 ns/iter |
55.03847229038 ns/iter |
1.08 |
JSON_Equality_Helm_Chart_Lock |
188.7347982367282 ns/iter |
125.88963505716585 ns/iter |
1.50 |
JSON_Divisible_By_Decimal |
234.55409484729566 ns/iter |
162.38939411314604 ns/iter |
1.44 |
JSON_String_Equal/10 |
7.551462026334267 ns/iter |
6.2824845045191635 ns/iter |
1.20 |
JSON_String_Equal/100 |
6.600298726403553 ns/iter |
6.314409756833061 ns/iter |
1.05 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.3701606403478801 ns/iter |
0.315143991307053 ns/iter |
1.17 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.3126352995042527 ns/iter |
3.0178910438747186 ns/iter |
1.10 |
JSON_String_Fast_Hash/10 |
2.465535545465696 ns/iter |
2.301377914809378 ns/iter |
1.07 |
JSON_String_Fast_Hash/100 |
2.3341253201786962 ns/iter |
2.02372657503808 ns/iter |
1.15 |
JSON_String_Key_Hash/10 |
1.9196731126523043 ns/iter |
1.5829946453904236 ns/iter |
1.21 |
JSON_String_Key_Hash/100 |
2.299475057504932 ns/iter |
2.005129487637559 ns/iter |
1.15 |
JSON_Object_Defines_Miss_Same_Length |
2.748551602467827 ns/iter |
2.511387082010244 ns/iter |
1.09 |
JSON_Object_Defines_Miss_Too_Small |
2.7639721122171865 ns/iter |
2.7151059878837334 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Large |
3.3026406913407285 ns/iter |
2.52941549895313 ns/iter |
1.31 |
Pointer_Object_Traverse |
26.693517672037128 ns/iter |
22.094341469008505 ns/iter |
1.21 |
Pointer_Object_Try_Traverse |
23.008372631054847 ns/iter |
21.939318711710285 ns/iter |
1.05 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
188.2874684501823 ns/iter |
150.18859502680718 ns/iter |
1.25 |
Pointer_Walker_Schema_ISO_Language |
2885600.1317824693 ns/iter |
2369473.3537418484 ns/iter |
1.22 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1392484.2077089576 ns/iter |
1113201.433121037 ns/iter |
1.25 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1045184.3105497567 ns/iter |
967312.2496663058 ns/iter |
1.08 |
Pointer_Position_Tracker_Get_Deeply_Nested |
371.2306598952705 ns/iter |
305.1432264938747 ns/iter |
1.22 |
JSONPath_Descendant_Filter_Nested |
1342.4667512454175 ns/iter |
1145.9591579357284 ns/iter |
1.17 |
URITemplateRouter_Create |
24438.672219534616 ns/iter |
21581.73606247506 ns/iter |
1.13 |
URITemplateRouter_Match |
178.93570939720408 ns/iter |
157.55230430578752 ns/iter |
1.14 |
URITemplateRouter_Match_BasePath |
203.0754086278232 ns/iter |
188.7628804381481 ns/iter |
1.08 |
URITemplateRouterView_Restore |
12427.126119571032 ns/iter |
10573.36600390835 ns/iter |
1.18 |
URITemplateRouterView_Match |
152.53857110599319 ns/iter |
132.89217386494818 ns/iter |
1.15 |
URITemplateRouterView_Match_BasePath |
155.30466368033035 ns/iter |
156.03121486231996 ns/iter |
1.00 |
URITemplateRouterView_Arguments |
563.8806926867217 ns/iter |
517.8426727943402 ns/iter |
1.09 |
JSONL_Parse_Large |
10596707.687501095 ns/iter |
11793509.61538498 ns/iter |
0.90 |
JSONL_Parse_Large_GZIP |
11534485.416666484 ns/iter |
11173686.740741467 ns/iter |
1.03 |
JSONLD_Catalog_Annotation_List_Populate |
1021580.4806544984 ns/iter |
957402.4827127584 ns/iter |
1.07 |
JSONLD_Catalog_Materialize |
5079068.749998896 ns/iter |
4115252.4038461884 ns/iter |
1.23 |
HTML_Build_Table_100000 |
38817861.11110665 ns/iter |
35159331.24999719 ns/iter |
1.10 |
HTML_Render_Table_100000 |
1844913.0291005364 ns/iter |
1443150.0550660575 ns/iter |
1.28 |
GZIP_Compress_ISO_Language_Set_3_Locations |
27329985.576924488 ns/iter |
25872199.68965483 ns/iter |
1.06 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
3273171.9716975763 ns/iter |
2979460.379464679 ns/iter |
1.10 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1574295.7951542367 ns/iter |
1422918.4343436158 ns/iter |
1.11 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
316979.6439155835 ns/iter |
276635.8298036198 ns/iter |
1.15 |
JOSE_VerifySignature_RS256 |
22763.021707940075 ns/iter |
20523.7854845847 ns/iter |
1.11 |
JOSE_VerifySignature_ES512 |
1062039.454806511 ns/iter |
909900.9126467005 ns/iter |
1.17 |
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: a2cfce4 | Previous: 28c0899 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.198405360260041 ns/iter |
2.4971938768971205 ns/iter |
0.88 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.4550824599906393 ns/iter |
2.8033448167413835 ns/iter |
0.88 |
Regex_Period_Asterisk |
2.4545854273083765 ns/iter |
2.8063511038181477 ns/iter |
0.87 |
Regex_Group_Period_Asterisk_Group |
2.1823112830879845 ns/iter |
2.491265308716964 ns/iter |
0.88 |
Regex_Period_Plus |
3.2779649987728194 ns/iter |
2.8013983542796725 ns/iter |
1.17 |
Regex_Period |
3.5493918076042736 ns/iter |
3.113763495283515 ns/iter |
1.14 |
Regex_Caret_Period_Plus_Dollar |
3.549488474336816 ns/iter |
3.1152061970063727 ns/iter |
1.14 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.2772530443291057 ns/iter |
2.8141031005760677 ns/iter |
1.16 |
Regex_Caret_Period_Asterisk_Dollar |
2.4686076281156146 ns/iter |
2.804021456388899 ns/iter |
0.88 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.7399457649933363 ns/iter |
3.1125173395844343 ns/iter |
0.88 |
Regex_Caret_X_Hyphen |
6.004836397647204 ns/iter |
6.237294236714144 ns/iter |
0.96 |
Regex_Period_Md_Dollar |
21.004565781485 ns/iter |
27.822005763400934 ns/iter |
0.75 |
Regex_Caret_Slash_Period_Asterisk |
5.72977062181738 ns/iter |
6.538598146933544 ns/iter |
0.88 |
Regex_Caret_Period_Range_Dollar |
3.8232069829184603 ns/iter |
4.671478488431955 ns/iter |
0.82 |
Regex_Nested_Backtrack |
29.970950334439525 ns/iter |
38.918967539406644 ns/iter |
0.77 |
JSON_Array_Of_Objects_Unique |
335.6785137716033 ns/iter |
418.10116326107385 ns/iter |
0.80 |
JSON_Parse_1 |
3632.164740957883 ns/iter |
4893.972702507277 ns/iter |
0.74 |
JSON_Parse_Real |
3966.570756585943 ns/iter |
5440.199592132479 ns/iter |
0.73 |
JSON_Parse_Decimal |
6532.900235802262 ns/iter |
8432.37624994031 ns/iter |
0.77 |
JSON_Parse_Schema_ISO_Language |
2830924.2712550056 ns/iter |
3491061.348258587 ns/iter |
0.81 |
JSON_Parse_Integer |
3108.936072228713 ns/iter |
3793.721943121279 ns/iter |
0.82 |
JSON_Parse_String_NonSSO_Plain |
4008.958979331894 ns/iter |
5269.794442519068 ns/iter |
0.76 |
JSON_Parse_String_SSO_Plain |
2298.1412800391163 ns/iter |
2916.5442816385976 ns/iter |
0.79 |
JSON_Parse_String_Escape_Heavy |
11312.828204796087 ns/iter |
14848.499841125153 ns/iter |
0.76 |
JSON_Parse_Object_Short_Keys |
6051.167480637172 ns/iter |
10409.21484514093 ns/iter |
0.58 |
JSON_Parse_Object_Scalar_Properties |
3183.9760025098694 ns/iter |
4041.9795829815953 ns/iter |
0.79 |
JSON_Parse_Object_Array_Properties |
4358.5743083717725 ns/iter |
5546.952996381213 ns/iter |
0.79 |
JSON_Parse_Object_Object_Properties |
4346.3056644083 ns/iter |
5595.365076712282 ns/iter |
0.78 |
JSON_Parse_Nested_Containers |
35239.02045306926 ns/iter |
46084.43127961596 ns/iter |
0.76 |
JSON_From_String_Copy |
18.28067484301752 ns/iter |
20.57915268029026 ns/iter |
0.89 |
JSON_From_String_Temporary |
15.82454093553356 ns/iter |
17.75686558196388 ns/iter |
0.89 |
JSON_Number_To_Double |
17.50746147654464 ns/iter |
24.104957309998486 ns/iter |
0.73 |
JSON_Object_At_Last_Key/8 |
3.137372087769105 ns/iter |
3.82641424095372 ns/iter |
0.82 |
JSON_Object_At_Last_Key/32 |
10.307212251715685 ns/iter |
12.415216585995493 ns/iter |
0.83 |
JSON_Object_At_Last_Key/128 |
43.94191751595896 ns/iter |
49.372832654485016 ns/iter |
0.89 |
JSON_Object_At_Last_Key/512 |
287.10086445223106 ns/iter |
398.85180617913824 ns/iter |
0.72 |
JSON_Fast_Hash_Helm_Chart_Lock |
56.18429018083834 ns/iter |
60.67785149315182 ns/iter |
0.93 |
JSON_Equality_Helm_Chart_Lock |
133.37847521918053 ns/iter |
169.9762072939129 ns/iter |
0.78 |
JSON_Divisible_By_Decimal |
191.99929191863512 ns/iter |
256.6133770206128 ns/iter |
0.75 |
JSON_String_Equal/10 |
4.363975974019967 ns/iter |
5.923159286821765 ns/iter |
0.74 |
JSON_String_Equal/100 |
5.183494967352343 ns/iter |
6.542776543914679 ns/iter |
0.79 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.818008205705208 ns/iter |
0.9433566734685312 ns/iter |
0.87 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
9.675880738552184 ns/iter |
15.024884649468596 ns/iter |
0.64 |
JSON_String_Fast_Hash/10 |
2.182440620050949 ns/iter |
2.8075824549655346 ns/iter |
0.78 |
JSON_String_Fast_Hash/100 |
2.1823585062696536 ns/iter |
2.801349448541466 ns/iter |
0.78 |
JSON_String_Key_Hash/10 |
1.953892342044027 ns/iter |
2.2407830263273345 ns/iter |
0.87 |
JSON_String_Key_Hash/100 |
6.274167681731673 ns/iter |
9.072915993287761 ns/iter |
0.69 |
JSON_Object_Defines_Miss_Same_Length |
2.4761443853266685 ns/iter |
3.071431482668141 ns/iter |
0.81 |
JSON_Object_Defines_Miss_Too_Small |
3.29009852154123 ns/iter |
3.4274487158541582 ns/iter |
0.96 |
JSON_Object_Defines_Miss_Too_Large |
2.290939592765443 ns/iter |
2.8808482513824734 ns/iter |
0.80 |
Pointer_Object_Traverse |
23.787467871791087 ns/iter |
37.86588460008211 ns/iter |
0.63 |
Pointer_Object_Try_Traverse |
25.85474665879291 ns/iter |
43.87975491620468 ns/iter |
0.59 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
144.76905960568757 ns/iter |
197.22270698663186 ns/iter |
0.73 |
Pointer_Walker_Schema_ISO_Language |
2091129.7857141774 ns/iter |
2590570.1360295382 ns/iter |
0.81 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
985918.8158639126 ns/iter |
1206494.7911503783 ns/iter |
0.82 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1223109.3327495896 ns/iter |
1586051.6189375874 ns/iter |
0.77 |
Pointer_Position_Tracker_Get_Deeply_Nested |
561.3025471324767 ns/iter |
710.3090677480545 ns/iter |
0.79 |
JSONPath_Descendant_Filter_Nested |
1249.2161341507485 ns/iter |
1556.6886400933045 ns/iter |
0.80 |
URITemplateRouter_Create |
22730.330985916502 ns/iter |
30920.882751341593 ns/iter |
0.74 |
URITemplateRouter_Match |
136.78170244000745 ns/iter |
181.18489327739266 ns/iter |
0.75 |
URITemplateRouter_Match_BasePath |
164.39516556524072 ns/iter |
206.45630902868126 ns/iter |
0.80 |
URITemplateRouterView_Restore |
7728.029567879011 ns/iter |
8505.29291564464 ns/iter |
0.91 |
URITemplateRouterView_Match |
126.2875672771767 ns/iter |
162.17074342040925 ns/iter |
0.78 |
URITemplateRouterView_Match_BasePath |
150.10337732887817 ns/iter |
184.5517845841832 ns/iter |
0.81 |
URITemplateRouterView_Arguments |
354.06756723902964 ns/iter |
440.24782014477665 ns/iter |
0.80 |
JSONL_Parse_Large |
7182525.814433228 ns/iter |
9721574.569444632 ns/iter |
0.74 |
JSONL_Parse_Large_GZIP |
8503299.024391154 ns/iter |
11275838.806453051 ns/iter |
0.75 |
JSONLD_Catalog_Annotation_List_Populate |
1046302.2804154649 ns/iter |
1323027.2988722336 ns/iter |
0.79 |
JSONLD_Catalog_Materialize |
3383703.164251379 ns/iter |
4366105.477987611 ns/iter |
0.77 |
HTML_Build_Table_100000 |
57811067.33332801 ns/iter |
64912393.181822896 ns/iter |
0.89 |
HTML_Render_Table_100000 |
4424254.471338022 ns/iter |
5241949.893130048 ns/iter |
0.84 |
GZIP_Compress_ISO_Language_Set_3_Locations |
27193235.576926503 ns/iter |
33469561.857145887 ns/iter |
0.81 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
2906054.20661153 ns/iter |
4114935.5235294187 ns/iter |
0.71 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1621754.2250578825 ns/iter |
1886581.9376695533 ns/iter |
0.86 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
195621.9815642332 ns/iter |
352176.3751258867 ns/iter |
0.56 |
JOSE_VerifySignature_RS256 |
49772.48701022747 ns/iter |
56785.08494334441 ns/iter |
0.88 |
JOSE_VerifySignature_ES512 |
2135898.8689022786 ns/iter |
2424248.8993056417 ns/iter |
0.88 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
All reported issues were addressed across 11 files (changes from recent commits).
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 13 files (changes from recent commits).
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
There was a problem hiding this comment.
Benchmark (windows/msvc)
Details
| Benchmark suite | Current: a2cfce4 | Previous: 28c0899 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
3.9407705339555075 ns/iter |
5.238200892857695 ns/iter |
0.75 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
3.8400479910714678 ns/iter |
5.00307321428701 ns/iter |
0.77 |
Regex_Period_Asterisk |
3.875039993080071 ns/iter |
5.084892999998374 ns/iter |
0.76 |
Regex_Group_Period_Asterisk_Group |
3.882047991071248 ns/iter |
5.0590729999998985 ns/iter |
0.77 |
Regex_Period_Plus |
3.6002346364280617 ns/iter |
4.7438069302310755 ns/iter |
0.76 |
Regex_Period |
3.6101372767851 ns/iter |
4.7886783589032635 ns/iter |
0.75 |
Regex_Caret_Period_Plus_Dollar |
3.6152703060441373 ns/iter |
4.9075619999985065 ns/iter |
0.74 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.7082346362353795 ns/iter |
4.964277999999922 ns/iter |
0.75 |
Regex_Caret_Period_Asterisk_Dollar |
3.9959353642784015 ns/iter |
5.228729464286224 ns/iter |
0.76 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.9072289215944833 ns/iter |
5.123318000000836 ns/iter |
0.76 |
Regex_Caret_X_Hyphen |
6.132161607143059 ns/iter |
8.02195312500079 ns/iter |
0.76 |
Regex_Period_Md_Dollar |
50.78899000000092 ns/iter |
54.346660000010154 ns/iter |
0.93 |
Regex_Caret_Slash_Period_Asterisk |
5.768001785714968 ns/iter |
7.661119419642505 ns/iter |
0.75 |
Regex_Caret_Period_Range_Dollar |
4.364128125000377 ns/iter |
5.472551785715041 ns/iter |
0.80 |
Regex_Nested_Backtrack |
67.18236607142103 ns/iter |
80.90053571428209 ns/iter |
0.83 |
JSON_Array_Of_Objects_Unique |
645.7579464286108 ns/iter |
681.274665178628 ns/iter |
0.95 |
JSON_Parse_1 |
7666.919642856231 ns/iter |
9873.462499999876 ns/iter |
0.78 |
JSON_Parse_Real |
13697.2767857141 ns/iter |
17173.082589282883 ns/iter |
0.80 |
JSON_Parse_Decimal |
8675.720197677505 ns/iter |
11539.539062500382 ns/iter |
0.75 |
JSON_Parse_Schema_ISO_Language |
6410244.642858791 ns/iter |
8423104.444444915 ns/iter |
0.76 |
JSON_Parse_Integer |
4558.9281250002505 ns/iter |
6115.194000001338 ns/iter |
0.75 |
JSON_Parse_String_NonSSO_Plain |
6171.620535714137 ns/iter |
8269.869419643377 ns/iter |
0.75 |
JSON_Parse_String_SSO_Plain |
2873.4351457871435 ns/iter |
3606.056774899645 ns/iter |
0.80 |
JSON_Parse_String_Escape_Heavy |
16880.722861984494 ns/iter |
21835.479658756904 ns/iter |
0.77 |
JSON_Parse_Object_Short_Keys |
10163.808643711449 ns/iter |
12958.322953912564 ns/iter |
0.78 |
JSON_Parse_Object_Scalar_Properties |
5191.294999999627 ns/iter |
6663.415178571036 ns/iter |
0.78 |
JSON_Parse_Object_Array_Properties |
8879.784911674195 ns/iter |
11946.976562501988 ns/iter |
0.74 |
JSON_Parse_Object_Object_Properties |
9136.500729906711 ns/iter |
11714.885937500696 ns/iter |
0.78 |
JSON_Parse_Nested_Containers |
64393.9196428432 ns/iter |
82810.68080357049 ns/iter |
0.78 |
JSON_From_String_Copy |
49.22795000002225 ns/iter |
63.00532142857053 ns/iter |
0.78 |
JSON_From_String_Temporary |
73.02508928572442 ns/iter |
81.80739955356842 ns/iter |
0.89 |
JSON_Number_To_Double |
102.58523437499888 ns/iter |
135.8676785714254 ns/iter |
0.76 |
JSON_Object_At_Last_Key/8 |
5.78901696428602 ns/iter |
7.57313839285599 ns/iter |
0.76 |
JSON_Object_At_Last_Key/32 |
19.517350000000988 ns/iter |
25.94621874999957 ns/iter |
0.75 |
JSON_Object_At_Last_Key/128 |
72.06110491073352 ns/iter |
97.01497334755348 ns/iter |
0.74 |
JSON_Object_At_Last_Key/512 |
333.1201101571075 ns/iter |
426.388164837361 ns/iter |
0.78 |
JSON_Fast_Hash_Helm_Chart_Lock |
102.39090614325043 ns/iter |
113.67569642857234 ns/iter |
0.90 |
JSON_Equality_Helm_Chart_Lock |
162.29192381419307 ns/iter |
211.90013562946874 ns/iter |
0.77 |
JSON_Divisible_By_Decimal |
282.34911239507625 ns/iter |
370.0695031280319 ns/iter |
0.76 |
JSON_String_Equal/10 |
7.775059151785715 ns/iter |
9.964932544799828 ns/iter |
0.78 |
JSON_String_Equal/100 |
8.959123620720186 ns/iter |
11.569018749998605 ns/iter |
0.77 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.7502519877794027 ns/iter |
2.171111250000024 ns/iter |
0.81 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.933934977972953 ns/iter |
16.076239883585433 ns/iter |
0.93 |
JSON_String_Fast_Hash/10 |
4.944153000001279 ns/iter |
6.396701785713991 ns/iter |
0.77 |
JSON_String_Fast_Hash/100 |
5.000746000000618 ns/iter |
6.418978794643847 ns/iter |
0.78 |
JSON_String_Key_Hash/10 |
3.8888426339284923 ns/iter |
4.980166000000281 ns/iter |
0.78 |
JSON_String_Key_Hash/100 |
8.825418710600678 ns/iter |
11.070067187500143 ns/iter |
0.80 |
JSON_Object_Defines_Miss_Same_Length |
3.04762289770465 ns/iter |
3.904701450892897 ns/iter |
0.78 |
JSON_Object_Defines_Miss_Too_Small |
3.450621567891685 ns/iter |
4.549325892857123 ns/iter |
0.76 |
JSON_Object_Defines_Miss_Too_Large |
3.054297495908863 ns/iter |
3.867972656249766 ns/iter |
0.79 |
Pointer_Object_Traverse |
51.325151785712414 ns/iter |
65.76399000000492 ns/iter |
0.78 |
Pointer_Object_Try_Traverse |
53.27632000000904 ns/iter |
68.07020089285892 ns/iter |
0.78 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
134.64720604250172 ns/iter |
153.19156250000225 ns/iter |
0.88 |
Pointer_Walker_Schema_ISO_Language |
9705940.625000408 ns/iter |
12914057.142856855 ns/iter |
0.75 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1908103.478261024 ns/iter |
2495853.813559086 ns/iter |
0.76 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
2941592.796610243 ns/iter |
3633465.128204522 ns/iter |
0.81 |
Pointer_Position_Tracker_Get_Deeply_Nested |
435.92640714303496 ns/iter |
625.1453125000036 ns/iter |
0.70 |
JSONPath_Descendant_Filter_Nested |
1924.3007414068209 ns/iter |
2377.3563868785677 ns/iter |
0.81 |
URITemplateRouter_Create |
29787.628822264003 ns/iter |
39257.254464291385 ns/iter |
0.76 |
URITemplateRouter_Match |
171.52031250000329 ns/iter |
215.35798935736562 ns/iter |
0.80 |
URITemplateRouter_Match_BasePath |
192.05755286228563 ns/iter |
245.549436880644 ns/iter |
0.78 |
URITemplateRouterView_Restore |
19560.43178956899 ns/iter |
25359.606116951734 ns/iter |
0.77 |
URITemplateRouterView_Match |
134.22083106158962 ns/iter |
172.30314038418982 ns/iter |
0.78 |
URITemplateRouterView_Match_BasePath |
154.85473214284744 ns/iter |
199.53318975298222 ns/iter |
0.78 |
URITemplateRouterView_Arguments |
458.78777443195804 ns/iter |
587.4090999998316 ns/iter |
0.78 |
JSONL_Parse_Large |
25575761.53845695 ns/iter |
33395747.61904866 ns/iter |
0.77 |
JSONL_Parse_Large_GZIP |
25881626.66666752 ns/iter |
34119439.99999494 ns/iter |
0.76 |
JSONLD_Catalog_Annotation_List_Populate |
2585168.9285713877 ns/iter |
3233136.6197188334 ns/iter |
0.80 |
JSONLD_Catalog_Materialize |
6789966.071427298 ns/iter |
8490709.333330717 ns/iter |
0.80 |
HTML_Build_Table_100000 |
74445918.18183322 ns/iter |
92753328.57142921 ns/iter |
0.80 |
HTML_Render_Table_100000 |
6654114.285715147 ns/iter |
7973554.444444946 ns/iter |
0.83 |
GZIP_Compress_ISO_Language_Set_3_Locations |
27927111.99999758 ns/iter |
37675599.99999704 ns/iter |
0.74 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
7302167.857143818 ns/iter |
10480596.000000635 ns/iter |
0.70 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1741296.5601968172 ns/iter |
2329357.1906359154 ns/iter |
0.75 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
421719.52983721416 ns/iter |
586739.4642856587 ns/iter |
0.72 |
JOSE_VerifySignature_RS256 |
18377.39533388862 ns/iter |
23993.132889141798 ns/iter |
0.77 |
JOSE_VerifySignature_ES512 |
1184013.7499997842 ns/iter |
1552089.28571428 ns/iter |
0.76 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com