Implement SHA-384 and SHA-512 support#2495
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR adds SHA-384 and SHA-512 hashing support to the core crypto module, alongside a small SHA-256 refactor to expose raw digest bytes. Changes:
Technical Notes: The fallback implementations follow FIPS 180-4 padding/scheduling and return big-endian digest bytes, which are then hex-encoded for the string-returning APIs. 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
1 issue found across 16 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: a765b23 | Previous: 166a543 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.0904146328266813 ns/iter |
2.1948778505096014 ns/iter |
0.95 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.05303688801693 ns/iter |
2.188847250921999 ns/iter |
0.94 |
Regex_Period_Asterisk |
2.068889210620741 ns/iter |
2.187781963046241 ns/iter |
0.95 |
Regex_Group_Period_Asterisk_Group |
2.1136008835444025 ns/iter |
2.223089178673316 ns/iter |
0.95 |
Regex_Period_Plus |
2.0682698626292617 ns/iter |
2.801846263321535 ns/iter |
0.74 |
Regex_Period |
2.0400472154057216 ns/iter |
2.490274737512055 ns/iter |
0.82 |
Regex_Caret_Period_Plus_Dollar |
2.0517024381240305 ns/iter |
2.5393407869697997 ns/iter |
0.81 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.129364446819401 ns/iter |
2.801159527927624 ns/iter |
0.76 |
Regex_Caret_Period_Asterisk_Dollar |
2.054478825601337 ns/iter |
3.1953916679079732 ns/iter |
0.64 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.079079455431207 ns/iter |
2.1905343290847914 ns/iter |
0.95 |
Regex_Caret_X_Hyphen |
3.748531073271981 ns/iter |
6.228303372337734 ns/iter |
0.60 |
Regex_Period_Md_Dollar |
24.453939846289895 ns/iter |
27.459395554172417 ns/iter |
0.89 |
Regex_Caret_Slash_Period_Asterisk |
4.035122234458921 ns/iter |
6.237608270433538 ns/iter |
0.65 |
Regex_Caret_Period_Range_Dollar |
2.032957053762133 ns/iter |
3.4285342463519393 ns/iter |
0.59 |
Regex_Nested_Backtrack |
33.374912941389105 ns/iter |
37.80938533889622 ns/iter |
0.88 |
JSON_Array_Of_Objects_Unique |
380.2968632207678 ns/iter |
475.6746052506498 ns/iter |
0.80 |
JSON_Parse_1 |
4626.322363842165 ns/iter |
4810.358271520614 ns/iter |
0.96 |
JSON_Parse_Real |
4736.958903553924 ns/iter |
5294.76442615128 ns/iter |
0.89 |
JSON_Parse_Decimal |
7282.910775236372 ns/iter |
7523.861244913839 ns/iter |
0.97 |
JSON_Parse_Schema_ISO_Language |
3271308.339622718 ns/iter |
3443315.1470590048 ns/iter |
0.95 |
JSON_Parse_Integer |
3725.587171328705 ns/iter |
3909.4641078441728 ns/iter |
0.95 |
JSON_Parse_String_NonSSO_Plain |
4668.435391474501 ns/iter |
5015.094275974029 ns/iter |
0.93 |
JSON_Parse_String_SSO_Plain |
2488.569498591187 ns/iter |
2776.23904454904 ns/iter |
0.90 |
JSON_Parse_String_Escape_Heavy |
15727.334300038736 ns/iter |
14277.69403803987 ns/iter |
1.10 |
JSON_Parse_Object_Short_Keys |
6985.817505361185 ns/iter |
10633.084782807146 ns/iter |
0.66 |
JSON_Parse_Object_Scalar_Properties |
3728.509305982259 ns/iter |
4130.976901371687 ns/iter |
0.90 |
JSON_Parse_Object_Array_Properties |
5188.391571515611 ns/iter |
5686.776132828015 ns/iter |
0.91 |
JSON_Parse_Object_Object_Properties |
5147.540308217721 ns/iter |
5816.69750809825 ns/iter |
0.88 |
JSON_Parse_Nested_Containers |
42055.52408547183 ns/iter |
44892.23850500898 ns/iter |
0.94 |
JSON_From_String_Copy |
15.279232391656285 ns/iter |
19.326119057776523 ns/iter |
0.79 |
JSON_From_String_Temporary |
14.8257277624489 ns/iter |
17.15320226663932 ns/iter |
0.86 |
JSON_Number_To_Double |
20.22564617526785 ns/iter |
24.061648507058756 ns/iter |
0.84 |
JSON_Object_At_Last_Key/8 |
4.665280363862675 ns/iter |
3.704201878108814 ns/iter |
1.26 |
JSON_Object_At_Last_Key/32 |
18.089689193379083 ns/iter |
11.955503676216768 ns/iter |
1.51 |
JSON_Object_At_Last_Key/128 |
73.85768665896029 ns/iter |
48.28920072574283 ns/iter |
1.53 |
JSON_Object_At_Last_Key/512 |
306.44682460772555 ns/iter |
386.48737226562105 ns/iter |
0.79 |
JSON_Fast_Hash_Helm_Chart_Lock |
49.83712641463495 ns/iter |
56.95420187058747 ns/iter |
0.88 |
JSON_Equality_Helm_Chart_Lock |
152.47891600251685 ns/iter |
191.81981155841333 ns/iter |
0.79 |
JSON_Divisible_By_Decimal |
255.16552846951365 ns/iter |
255.70389953639767 ns/iter |
1.00 |
JSON_String_Equal/10 |
4.906322186405172 ns/iter |
6.546622057375531 ns/iter |
0.75 |
JSON_String_Equal/100 |
6.066787619820258 ns/iter |
7.185627333922244 ns/iter |
0.84 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.8642580126937706 ns/iter |
0.935723062348264 ns/iter |
0.92 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
9.80064036344041 ns/iter |
10.583549990425317 ns/iter |
0.93 |
JSON_String_Fast_Hash/10 |
2.0610629593210508 ns/iter |
2.1803617940196345 ns/iter |
0.95 |
JSON_String_Fast_Hash/100 |
2.068713078785578 ns/iter |
2.1807244892616766 ns/iter |
0.95 |
JSON_String_Key_Hash/10 |
1.7302039089399772 ns/iter |
2.1827193338085507 ns/iter |
0.79 |
JSON_String_Key_Hash/100 |
6.643105853508912 ns/iter |
6.5379581694129625 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Same_Length |
3.169394697883609 ns/iter |
2.7277807329693364 ns/iter |
1.16 |
JSON_Object_Defines_Miss_Too_Small |
4.256620805704834 ns/iter |
3.736980513716617 ns/iter |
1.14 |
JSON_Object_Defines_Miss_Too_Large |
3.169680369354677 ns/iter |
2.8721425204125923 ns/iter |
1.10 |
Pointer_Object_Traverse |
22.99515389801319 ns/iter |
24.146339188379994 ns/iter |
0.95 |
Pointer_Object_Try_Traverse |
36.355818173915985 ns/iter |
30.288530023438522 ns/iter |
1.20 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
150.45349647442237 ns/iter |
162.20015195403312 ns/iter |
0.93 |
Pointer_Walker_Schema_ISO_Language |
1795389.4373334455 ns/iter |
1777314.642317455 ns/iter |
1.01 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1103654.425196868 ns/iter |
1232940.8433099391 ns/iter |
0.90 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1790921.589333569 ns/iter |
1674107.813396915 ns/iter |
1.07 |
Pointer_Position_Tracker_Get_Deeply_Nested |
698.9119108120397 ns/iter |
653.1008110035922 ns/iter |
1.07 |
URITemplateRouter_Create |
28965.2804979264 ns/iter |
32610.619674420206 ns/iter |
0.89 |
URITemplateRouter_Match |
163.6911514346659 ns/iter |
179.02791608663688 ns/iter |
0.91 |
URITemplateRouter_Match_BasePath |
179.22790939810574 ns/iter |
211.0005650607707 ns/iter |
0.85 |
URITemplateRouterView_Restore |
3446.3790887219375 ns/iter |
7741.9789248863535 ns/iter |
0.45 |
URITemplateRouterView_Match |
126.45327088368249 ns/iter |
144.967201955904 ns/iter |
0.87 |
URITemplateRouterView_Match_BasePath |
141.93869145354662 ns/iter |
166.12004314882458 ns/iter |
0.85 |
URITemplateRouterView_Arguments |
428.34213657702963 ns/iter |
438.9482723383682 ns/iter |
0.98 |
JSONL_Parse_Large |
8894731.468353998 ns/iter |
10065945.428571662 ns/iter |
0.88 |
JSONL_Parse_Large_GZIP |
10392362.52238798 ns/iter |
11678751.549999332 ns/iter |
0.89 |
HTML_Build_Table_100000 |
71228891.66666684 ns/iter |
70934409.69999847 ns/iter |
1.00 |
HTML_Render_Table_100000 |
10478570.750000713 ns/iter |
5389937.273437617 ns/iter |
1.94 |
GZIP_Compress_ISO_Language_Set_3_Locations |
31011293.7826113 ns/iter |
33404621.23809456 ns/iter |
0.93 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4256061.840236962 ns/iter |
4118762.742515271 ns/iter |
1.03 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1871207.3021389642 ns/iter |
1898721.737837924 ns/iter |
0.99 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
354118.36557542643 ns/iter |
351039.43308270647 ns/iter |
1.01 |
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: a765b23 | Previous: 166a543 | Ratio |
|---|---|---|---|
GZIP_Compress_ISO_Language_Set_3_Locations |
36246961.89473597 ns/iter |
30037279.65217521 ns/iter |
1.21 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4259130.222891029 ns/iter |
2687888.8423075643 ns/iter |
1.58 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2016913.1184970364 ns/iter |
1738008.2803971043 ns/iter |
1.16 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
380596.68875607743 ns/iter |
201039.39403167117 ns/iter |
1.89 |
HTML_Build_Table_100000 |
59268384.66666595 ns/iter |
56958908.75000013 ns/iter |
1.04 |
HTML_Render_Table_100000 |
1779348.4656489217 ns/iter |
1818909.4583333323 ns/iter |
0.98 |
JSONL_Parse_Large |
13090424.811321529 ns/iter |
9609428.42465718 ns/iter |
1.36 |
JSONL_Parse_Large_GZIP |
14440329.285713345 ns/iter |
10756030.661538647 ns/iter |
1.34 |
URITemplateRouter_Create |
31064.29777620345 ns/iter |
22620.534139243264 ns/iter |
1.37 |
URITemplateRouter_Match |
149.08558757588662 ns/iter |
109.51545019186445 ns/iter |
1.36 |
URITemplateRouter_Match_BasePath |
170.7759016628244 ns/iter |
122.78917916066068 ns/iter |
1.39 |
URITemplateRouterView_Restore |
7577.7151004825955 ns/iter |
6764.773809296497 ns/iter |
1.12 |
URITemplateRouterView_Match |
121.71076894376179 ns/iter |
93.48833589937176 ns/iter |
1.30 |
URITemplateRouterView_Match_BasePath |
141.90217903389103 ns/iter |
105.1863243896071 ns/iter |
1.35 |
URITemplateRouterView_Arguments |
473.5032518459027 ns/iter |
349.6553882348941 ns/iter |
1.35 |
Pointer_Object_Traverse |
29.631927447712535 ns/iter |
22.84273392415635 ns/iter |
1.30 |
Pointer_Object_Try_Traverse |
23.082527181166107 ns/iter |
17.716652110530575 ns/iter |
1.30 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
157.4865718223436 ns/iter |
118.14695111642466 ns/iter |
1.33 |
Pointer_Walker_Schema_ISO_Language |
1870114.781333238 ns/iter |
1575598.0131291058 ns/iter |
1.19 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1512528.0739131658 ns/iter |
1199010.7594501432 ns/iter |
1.26 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1676727.5273160345 ns/iter |
1272325.645454554 ns/iter |
1.32 |
Pointer_Position_Tracker_Get_Deeply_Nested |
606.600215104932 ns/iter |
507.44725000033657 ns/iter |
1.20 |
JSON_Array_Of_Objects_Unique |
372.7146751515087 ns/iter |
317.59911408424296 ns/iter |
1.17 |
JSON_Parse_1 |
7733.105500989475 ns/iter |
5915.593998723357 ns/iter |
1.31 |
JSON_Parse_Real |
6694.2617024124265 ns/iter |
5176.3071216728795 ns/iter |
1.29 |
JSON_Parse_Decimal |
11216.519565461416 ns/iter |
7551.953405520808 ns/iter |
1.49 |
JSON_Parse_Schema_ISO_Language |
5159233.881481332 ns/iter |
4062762.5523254955 ns/iter |
1.27 |
JSON_Parse_Integer |
5150.486026765564 ns/iter |
3680.9758305892783 ns/iter |
1.40 |
JSON_Parse_String_NonSSO_Plain |
8682.342121238002 ns/iter |
6903.382235204857 ns/iter |
1.26 |
JSON_Parse_String_SSO_Plain |
3938.7384230148277 ns/iter |
3048.3517985894205 ns/iter |
1.29 |
JSON_Parse_String_Escape_Heavy |
20620.443929921985 ns/iter |
15091.41450396545 ns/iter |
1.37 |
JSON_Parse_Object_Short_Keys |
13869.680331626583 ns/iter |
8731.198617574735 ns/iter |
1.59 |
JSON_Parse_Object_Scalar_Properties |
5903.65375586904 ns/iter |
4462.917153952524 ns/iter |
1.32 |
JSON_Parse_Object_Array_Properties |
9379.641034888102 ns/iter |
6894.905263786633 ns/iter |
1.36 |
JSON_Parse_Object_Object_Properties |
9697.2884977833 ns/iter |
7240.147076196589 ns/iter |
1.34 |
JSON_Parse_Nested_Containers |
74362.34211378415 ns/iter |
57917.92806221706 ns/iter |
1.28 |
JSON_From_String_Copy |
18.391468911506273 ns/iter |
15.693078796732387 ns/iter |
1.17 |
JSON_From_String_Temporary |
15.425616329193407 ns/iter |
13.236974635565259 ns/iter |
1.17 |
JSON_Number_To_Double |
21.86529849735696 ns/iter |
15.64404092044896 ns/iter |
1.40 |
JSON_Object_At_Last_Key/8 |
5.95478215525263 ns/iter |
5.187050250904226 ns/iter |
1.15 |
JSON_Object_At_Last_Key/32 |
21.81505553432901 ns/iter |
18.277321311804364 ns/iter |
1.19 |
JSON_Object_At_Last_Key/128 |
87.60759847974401 ns/iter |
70.76871456952821 ns/iter |
1.24 |
JSON_Object_At_Last_Key/512 |
425.7538571904003 ns/iter |
293.63911866621515 ns/iter |
1.45 |
JSON_Fast_Hash_Helm_Chart_Lock |
62.299993025260605 ns/iter |
43.386733117653066 ns/iter |
1.44 |
JSON_Equality_Helm_Chart_Lock |
157.69281023225108 ns/iter |
130.30293916883116 ns/iter |
1.21 |
JSON_Divisible_By_Decimal |
238.19868518856964 ns/iter |
179.20061336324625 ns/iter |
1.33 |
JSON_String_Equal/10 |
5.651217382834431 ns/iter |
4.128100721710022 ns/iter |
1.37 |
JSON_String_Equal/100 |
6.276875206557681 ns/iter |
4.946966923199685 ns/iter |
1.27 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.6238573744264533 ns/iter |
0.5522205692874652 ns/iter |
1.13 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.20391754727698 ns/iter |
17.021777874960744 ns/iter |
1.48 |
JSON_String_Fast_Hash/10 |
0.9346436091958958 ns/iter |
0.8186003054006311 ns/iter |
1.14 |
JSON_String_Fast_Hash/100 |
0.9358316010754757 ns/iter |
0.8189646282408677 ns/iter |
1.14 |
JSON_String_Key_Hash/10 |
1.2469163097770588 ns/iter |
1.0923844952918647 ns/iter |
1.14 |
JSON_String_Key_Hash/100 |
12.446089785608317 ns/iter |
11.450702301644654 ns/iter |
1.09 |
JSON_Object_Defines_Miss_Same_Length |
3.42925259320499 ns/iter |
3.0011606801466035 ns/iter |
1.14 |
JSON_Object_Defines_Miss_Too_Small |
3.430619434855489 ns/iter |
3.0104568656531976 ns/iter |
1.14 |
JSON_Object_Defines_Miss_Too_Large |
3.1176421011471827 ns/iter |
2.7296487339754365 ns/iter |
1.14 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.9346650453905919 ns/iter |
0.8218622895124267 ns/iter |
1.14 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.6243612514662947 ns/iter |
0.5458860135702613 ns/iter |
1.14 |
Regex_Period_Asterisk |
0.6229038680860863 ns/iter |
0.5457813102788068 ns/iter |
1.14 |
Regex_Group_Period_Asterisk_Group |
0.9346828902999194 ns/iter |
0.8189932381879798 ns/iter |
1.14 |
Regex_Period_Plus |
0.9346705713540483 ns/iter |
0.8186012456645647 ns/iter |
1.14 |
Regex_Period |
0.6246989243469148 ns/iter |
0.548362647275189 ns/iter |
1.14 |
Regex_Caret_Period_Plus_Dollar |
0.6229524678098394 ns/iter |
0.5463692661480365 ns/iter |
1.14 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.9339105676942743 ns/iter |
0.819140516747601 ns/iter |
1.14 |
Regex_Caret_Period_Asterisk_Dollar |
0.9348285020261806 ns/iter |
0.8188897165892666 ns/iter |
1.14 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.6232337539228721 ns/iter |
0.5459610806941723 ns/iter |
1.14 |
Regex_Caret_X_Hyphen |
4.053781409673623 ns/iter |
3.276313523308217 ns/iter |
1.24 |
Regex_Period_Md_Dollar |
29.83584280459029 ns/iter |
31.77303946295621 ns/iter |
0.94 |
Regex_Caret_Slash_Period_Asterisk |
4.3548332690847005 ns/iter |
3.0008695301419777 ns/iter |
1.45 |
Regex_Caret_Period_Range_Dollar |
0.7794884704549755 ns/iter |
0.6519951041872005 ns/iter |
1.20 |
Regex_Nested_Backtrack |
37.18164702132533 ns/iter |
33.514656357506595 ns/iter |
1.11 |
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: a765b23 | Previous: 166a543 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.9937371059690414 ns/iter |
1.7187108798256043 ns/iter |
1.16 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.042786622934069 ns/iter |
1.721386387163957 ns/iter |
1.19 |
Regex_Period_Asterisk |
1.996495056766103 ns/iter |
1.71463098071464 ns/iter |
1.16 |
Regex_Group_Period_Asterisk_Group |
1.842075607088198 ns/iter |
1.6786661022560803 ns/iter |
1.10 |
Regex_Period_Plus |
2.1246213961512024 ns/iter |
2.0668393605705875 ns/iter |
1.03 |
Regex_Period |
2.088710967368746 ns/iter |
2.01540496603029 ns/iter |
1.04 |
Regex_Caret_Period_Plus_Dollar |
2.052854704650881 ns/iter |
2.0542355144943163 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.061108333643497 ns/iter |
2.0581141654107213 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
1.7658849724878065 ns/iter |
1.7175612563140448 ns/iter |
1.03 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.714676695291557 ns/iter |
1.768420493663475 ns/iter |
0.97 |
Regex_Caret_X_Hyphen |
6.105921891413713 ns/iter |
6.116828577363353 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
21.954058533216983 ns/iter |
17.347023486716562 ns/iter |
1.27 |
Regex_Caret_Slash_Period_Asterisk |
4.4688199902950325 ns/iter |
5.326270740834205 ns/iter |
0.84 |
Regex_Caret_Period_Range_Dollar |
2.0241126454236884 ns/iter |
2.056638083270753 ns/iter |
0.98 |
Regex_Nested_Backtrack |
24.355142852987385 ns/iter |
26.94100390610233 ns/iter |
0.90 |
JSON_Array_Of_Objects_Unique |
362.48923277883995 ns/iter |
336.6000825807704 ns/iter |
1.08 |
JSON_Parse_1 |
3656.376937857039 ns/iter |
4019.017338960535 ns/iter |
0.91 |
JSON_Parse_Real |
5572.333749899727 ns/iter |
5242.1084813362595 ns/iter |
1.06 |
JSON_Parse_Decimal |
5704.7494207189 ns/iter |
5652.727888405143 ns/iter |
1.01 |
JSON_Parse_Schema_ISO_Language |
3108636.531249788 ns/iter |
2893324.6192469825 ns/iter |
1.07 |
JSON_Parse_Integer |
3138.270562601413 ns/iter |
3063.069354379238 ns/iter |
1.02 |
JSON_Parse_String_NonSSO_Plain |
3568.278324624376 ns/iter |
3544.0540169292453 ns/iter |
1.01 |
JSON_Parse_String_SSO_Plain |
1794.4395773610622 ns/iter |
1792.8877144208598 ns/iter |
1.00 |
JSON_Parse_String_Escape_Heavy |
17331.524289346355 ns/iter |
16548.08717936653 ns/iter |
1.05 |
JSON_Parse_Object_Short_Keys |
5379.45499999978 ns/iter |
5284.380646080102 ns/iter |
1.02 |
JSON_Parse_Object_Scalar_Properties |
2812.355645509298 ns/iter |
2738.804383021092 ns/iter |
1.03 |
JSON_Parse_Object_Array_Properties |
3558.7123587574306 ns/iter |
3500.8400780397587 ns/iter |
1.02 |
JSON_Parse_Object_Object_Properties |
3409.0773682331287 ns/iter |
3521.284884724464 ns/iter |
0.97 |
JSON_Parse_Nested_Containers |
26140.25360977344 ns/iter |
28320.55488661341 ns/iter |
0.92 |
JSON_From_String_Copy |
23.631295581857827 ns/iter |
24.807288881860735 ns/iter |
0.95 |
JSON_From_String_Temporary |
18.743811947630743 ns/iter |
21.011834683529532 ns/iter |
0.89 |
JSON_Number_To_Double |
31.415979721153146 ns/iter |
33.32968128248696 ns/iter |
0.94 |
JSON_Object_At_Last_Key/8 |
3.5587441305395418 ns/iter |
3.684618747183944 ns/iter |
0.97 |
JSON_Object_At_Last_Key/32 |
11.372100945489837 ns/iter |
11.822615640419318 ns/iter |
0.96 |
JSON_Object_At_Last_Key/128 |
57.08792520161299 ns/iter |
53.897451252512816 ns/iter |
1.06 |
JSON_Object_At_Last_Key/512 |
192.41199264891802 ns/iter |
190.7627620076451 ns/iter |
1.01 |
JSON_Fast_Hash_Helm_Chart_Lock |
60.56980684836234 ns/iter |
58.78813595698765 ns/iter |
1.03 |
JSON_Equality_Helm_Chart_Lock |
133.64338356777282 ns/iter |
135.1090206260538 ns/iter |
0.99 |
JSON_Divisible_By_Decimal |
176.30181139827715 ns/iter |
176.02426419872992 ns/iter |
1.00 |
JSON_String_Equal/10 |
6.76268458762148 ns/iter |
7.792110010931362 ns/iter |
0.87 |
JSON_String_Equal/100 |
6.376616521146504 ns/iter |
6.501065549205706 ns/iter |
0.98 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.748810578925904 ns/iter |
0.7429046385904543 ns/iter |
1.01 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.4941422479827877 ns/iter |
3.2588552453722817 ns/iter |
1.07 |
JSON_String_Fast_Hash/10 |
2.624074366318334 ns/iter |
2.350717682935632 ns/iter |
1.12 |
JSON_String_Fast_Hash/100 |
2.1128738995335254 ns/iter |
2.0066242132539016 ns/iter |
1.05 |
JSON_String_Key_Hash/10 |
1.4165695401316771 ns/iter |
1.3547241209200687 ns/iter |
1.05 |
JSON_String_Key_Hash/100 |
2.291916416462991 ns/iter |
2.1889207375216473 ns/iter |
1.05 |
JSON_Object_Defines_Miss_Same_Length |
2.2754292645584124 ns/iter |
2.3774220613593053 ns/iter |
0.96 |
JSON_Object_Defines_Miss_Too_Small |
2.371903919356519 ns/iter |
2.348972386738262 ns/iter |
1.01 |
JSON_Object_Defines_Miss_Too_Large |
2.353649254682646 ns/iter |
2.3437667794944277 ns/iter |
1.00 |
Pointer_Object_Traverse |
13.021893799593661 ns/iter |
13.534033058829094 ns/iter |
0.96 |
Pointer_Object_Try_Traverse |
22.74326289362915 ns/iter |
22.743021666406584 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
151.80391422647463 ns/iter |
151.45848421934704 ns/iter |
1.00 |
Pointer_Walker_Schema_ISO_Language |
2497350.620567608 ns/iter |
2239567.1006494197 ns/iter |
1.12 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
859939.8936431345 ns/iter |
881707.0440475813 ns/iter |
0.98 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1193024.0329152583 ns/iter |
1191108.2692308112 ns/iter |
1.00 |
Pointer_Position_Tracker_Get_Deeply_Nested |
336.7080476387508 ns/iter |
348.51223062154185 ns/iter |
0.97 |
URITemplateRouter_Create |
23273.51407573435 ns/iter |
23020.14479956309 ns/iter |
1.01 |
URITemplateRouter_Match |
166.2045862232607 ns/iter |
159.0929082841635 ns/iter |
1.04 |
URITemplateRouter_Match_BasePath |
184.54639293596074 ns/iter |
184.51780000761875 ns/iter |
1.00 |
URITemplateRouterView_Restore |
9122.41352743435 ns/iter |
9096.794158161043 ns/iter |
1.00 |
URITemplateRouterView_Match |
127.25179124394133 ns/iter |
133.99211637682674 ns/iter |
0.95 |
URITemplateRouterView_Match_BasePath |
142.0510852671241 ns/iter |
151.33699247839897 ns/iter |
0.94 |
URITemplateRouterView_Arguments |
408.34756218393704 ns/iter |
419.5847919923611 ns/iter |
0.97 |
JSONL_Parse_Large |
12269835.820000026 ns/iter |
12978887.421053387 ns/iter |
0.95 |
JSONL_Parse_Large_GZIP |
13230617.553570515 ns/iter |
13930072.705882005 ns/iter |
0.95 |
HTML_Build_Table_100000 |
61956181.81818025 ns/iter |
63281030.2727297 ns/iter |
0.98 |
HTML_Render_Table_100000 |
3086190.959409769 ns/iter |
4512921.692606704 ns/iter |
0.68 |
GZIP_Compress_ISO_Language_Set_3_Locations |
26894108.03703949 ns/iter |
26715017.61538436 ns/iter |
1.01 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
5960945.830000809 ns/iter |
5781623.091602793 ns/iter |
1.03 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1555674.3603603132 ns/iter |
1544403.907923071 ns/iter |
1.01 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
268907.1622239351 ns/iter |
283675.96092564747 ns/iter |
0.95 |
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: a765b23 | Previous: 166a543 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.4953853571462656 ns/iter |
5.0768642857081305 ns/iter |
0.49 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.3910764285704187 ns/iter |
5.1235820000056265 ns/iter |
0.47 |
Regex_Period_Asterisk |
2.3945075866143903 ns/iter |
5.023183000002973 ns/iter |
0.48 |
Regex_Group_Period_Asterisk_Group |
2.431694528537495 ns/iter |
5.013070000004518 ns/iter |
0.49 |
Regex_Period_Plus |
2.5312164285748753 ns/iter |
5.084963392854596 ns/iter |
0.50 |
Regex_Period |
2.6358074976464447 ns/iter |
5.025146428571198 ns/iter |
0.52 |
Regex_Caret_Period_Plus_Dollar |
2.516514999998825 ns/iter |
5.177899000000252 ns/iter |
0.49 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.627097499998854 ns/iter |
5.02010700000028 ns/iter |
0.52 |
Regex_Caret_Period_Asterisk_Dollar |
2.451465733872519 ns/iter |
5.021701785714023 ns/iter |
0.49 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.3922140598282713 ns/iter |
5.028880999998364 ns/iter |
0.48 |
Regex_Caret_X_Hyphen |
5.8663589999923715 ns/iter |
8.188911830363363 ns/iter |
0.72 |
Regex_Period_Md_Dollar |
30.699098214280898 ns/iter |
44.292424604528705 ns/iter |
0.69 |
Regex_Caret_Slash_Period_Asterisk |
5.9848178571460915 ns/iter |
7.85964620536309 ns/iter |
0.76 |
Regex_Caret_Period_Range_Dollar |
2.6776677208211184 ns/iter |
5.646600000000035 ns/iter |
0.47 |
Regex_Nested_Backtrack |
40.90466885138652 ns/iter |
59.548580357094195 ns/iter |
0.69 |
JSON_Array_Of_Objects_Unique |
395.60344721352294 ns/iter |
478.4439934374844 ns/iter |
0.83 |
JSON_Parse_1 |
7679.716517848029 ns/iter |
8835.919642860646 ns/iter |
0.87 |
JSON_Parse_Real |
12149.528571431541 ns/iter |
16035.013627320292 ns/iter |
0.76 |
JSON_Parse_Decimal |
9334.174401027887 ns/iter |
11859.948214285916 ns/iter |
0.79 |
JSON_Parse_Schema_ISO_Language |
7684941.111114716 ns/iter |
7482391.111110095 ns/iter |
1.03 |
JSON_Parse_Integer |
4516.099345491908 ns/iter |
6183.227678572426 ns/iter |
0.73 |
JSON_Parse_String_NonSSO_Plain |
6593.250000004706 ns/iter |
7695.227678579743 ns/iter |
0.86 |
JSON_Parse_String_SSO_Plain |
2895.1175021797044 ns/iter |
3707.1040944558763 ns/iter |
0.78 |
JSON_Parse_String_Escape_Heavy |
23286.846875009815 ns/iter |
21524.313736846674 ns/iter |
1.08 |
JSON_Parse_Object_Short_Keys |
9293.521903928047 ns/iter |
13268.0581783171 ns/iter |
0.70 |
JSON_Parse_Object_Scalar_Properties |
4868.14677959362 ns/iter |
6850.55624999872 ns/iter |
0.71 |
JSON_Parse_Object_Array_Properties |
8870.788969693342 ns/iter |
11451.7750000037 ns/iter |
0.77 |
JSON_Parse_Object_Object_Properties |
8886.569702827146 ns/iter |
11561.825000001136 ns/iter |
0.77 |
JSON_Parse_Nested_Containers |
65485.0714285463 ns/iter |
79217.26562502483 ns/iter |
0.83 |
JSON_From_String_Copy |
47.311018913193905 ns/iter |
64.04144642853485 ns/iter |
0.74 |
JSON_From_String_Temporary |
53.22885999994469 ns/iter |
57.980339285726195 ns/iter |
0.92 |
JSON_Number_To_Double |
89.0541388815766 ns/iter |
119.27240624999058 ns/iter |
0.75 |
JSON_Object_At_Last_Key/8 |
6.737686607136441 ns/iter |
7.160025000002537 ns/iter |
0.94 |
JSON_Object_At_Last_Key/32 |
20.849987500014322 ns/iter |
23.30276424885714 ns/iter |
0.89 |
JSON_Object_At_Last_Key/128 |
95.59717187499928 ns/iter |
90.4691745326387 ns/iter |
1.06 |
JSON_Object_At_Last_Key/512 |
316.9783151527871 ns/iter |
424.0923207288271 ns/iter |
0.75 |
JSON_Fast_Hash_Helm_Chart_Lock |
48.515285714237116 ns/iter |
63.98360714285901 ns/iter |
0.76 |
JSON_Equality_Helm_Chart_Lock |
256.33527037235524 ns/iter |
304.25348214302113 ns/iter |
0.84 |
JSON_Divisible_By_Decimal |
269.39831386655686 ns/iter |
294.1211546740844 ns/iter |
0.92 |
JSON_String_Equal/10 |
11.146994642850975 ns/iter |
15.689584821428427 ns/iter |
0.71 |
JSON_String_Equal/100 |
13.83155350971186 ns/iter |
17.264428679051044 ns/iter |
0.80 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.1817898214303568 ns/iter |
2.513987857144327 ns/iter |
0.47 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
9.615665582062613 ns/iter |
15.023122767843235 ns/iter |
0.64 |
JSON_String_Fast_Hash/10 |
2.334142296504215 ns/iter |
5.027247999996689 ns/iter |
0.46 |
JSON_String_Fast_Hash/100 |
2.3337231000694043 ns/iter |
5.026182000001427 ns/iter |
0.46 |
JSON_String_Key_Hash/10 |
2.915050397879215 ns/iter |
5.349058928572958 ns/iter |
0.54 |
JSON_String_Key_Hash/100 |
7.893146428581791 ns/iter |
11.872544642853557 ns/iter |
0.66 |
JSON_Object_Defines_Miss_Same_Length |
4.951743000001443 ns/iter |
5.030267000001913 ns/iter |
0.98 |
JSON_Object_Defines_Miss_Too_Small |
4.644148671632209 ns/iter |
4.084584821428499 ns/iter |
1.14 |
JSON_Object_Defines_Miss_Too_Large |
3.5759600382565075 ns/iter |
4.079193980495933 ns/iter |
0.88 |
Pointer_Object_Traverse |
47.107786514900546 ns/iter |
67.19350446431349 ns/iter |
0.70 |
Pointer_Object_Try_Traverse |
50.162060000002384 ns/iter |
67.58003571430241 ns/iter |
0.74 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
182.39243632084754 ns/iter |
170.34498015705748 ns/iter |
1.07 |
Pointer_Walker_Schema_ISO_Language |
7836123.333335208 ns/iter |
7959167.777769634 ns/iter |
0.98 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2179890.3571379925 ns/iter |
2573444.5783138406 ns/iter |
0.85 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3907502.793293403 ns/iter |
3618900.534759287 ns/iter |
1.08 |
Pointer_Position_Tracker_Get_Deeply_Nested |
525.7383445914659 ns/iter |
556.3688616072276 ns/iter |
0.94 |
URITemplateRouter_Create |
38944.88281253367 ns/iter |
40284.574313730016 ns/iter |
0.97 |
URITemplateRouter_Match |
224.6703437498354 ns/iter |
191.64990104037173 ns/iter |
1.17 |
URITemplateRouter_Match_BasePath |
255.069785714243 ns/iter |
216.07258410401113 ns/iter |
1.18 |
URITemplateRouterView_Restore |
23810.640506219712 ns/iter |
32148.01339286818 ns/iter |
0.74 |
URITemplateRouterView_Match |
159.67637899629304 ns/iter |
155.31691964270067 ns/iter |
1.03 |
URITemplateRouterView_Match_BasePath |
179.2549807539917 ns/iter |
172.79974817861486 ns/iter |
1.04 |
URITemplateRouterView_Arguments |
440.05200000015066 ns/iter |
529.4164000006276 ns/iter |
0.83 |
JSONL_Parse_Large |
27245242.307729382 ns/iter |
32773942.85716929 ns/iter |
0.83 |
JSONL_Parse_Large_GZIP |
27531132.00000371 ns/iter |
33520735.000001878 ns/iter |
0.82 |
HTML_Build_Table_100000 |
93018628.57137166 ns/iter |
87588233.33331141 ns/iter |
1.06 |
HTML_Render_Table_100000 |
12465383.928559145 ns/iter |
7260536.666662019 ns/iter |
1.72 |
GZIP_Compress_ISO_Language_Set_3_Locations |
33780814.999954596 ns/iter |
35797150.00000761 ns/iter |
0.94 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
11666210.937505638 ns/iter |
9526821.333323218 ns/iter |
1.22 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2015446.9565212543 ns/iter |
2090003.4782612964 ns/iter |
0.96 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
637553.1250000676 ns/iter |
598338.2142858318 ns/iter |
1.07 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com