Add EdDSA support on JOSE#2521
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
There was a problem hiding this comment.
1 issue found across 9 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
🤖 Augment PR SummarySummary: This PR adds EdDSA (RFC 8037) support to the JOSE verification stack. Changes:
Technical Notes: EdDSA curve selection is driven by the JWK’s 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
Benchmark (linux/gcc)
Details
| Benchmark suite | Current: 2f48d7a | Previous: c9a31f2 | Ratio |
|---|---|---|---|
GZIP_Compress_ISO_Language_Set_3_Locations |
32516359.22727432 ns/iter |
39308709.222224385 ns/iter |
0.83 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4891601.098484333 ns/iter |
4050543.32369899 ns/iter |
1.21 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2072788.1065087689 ns/iter |
2288861.0749183167 ns/iter |
0.91 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
347406.7583457741 ns/iter |
275511.4411522314 ns/iter |
1.26 |
HTML_Build_Table_100000 |
58957479.083337225 ns/iter |
70058915.59999782 ns/iter |
0.84 |
HTML_Render_Table_100000 |
3149315.0177781596 ns/iter |
2023230.8953487112 ns/iter |
1.56 |
JSONL_Parse_Large |
13290186.905660106 ns/iter |
12220785.473683113 ns/iter |
1.09 |
JSONL_Parse_Large_GZIP |
14419337.458332866 ns/iter |
13780227.156862745 ns/iter |
1.05 |
URITemplateRouter_Create |
27943.62394118344 ns/iter |
29649.534585354213 ns/iter |
0.94 |
URITemplateRouter_Match |
144.53482239281612 ns/iter |
158.64090990996218 ns/iter |
0.91 |
URITemplateRouter_Match_BasePath |
161.53539614737682 ns/iter |
190.12559686270794 ns/iter |
0.85 |
URITemplateRouterView_Restore |
3424.6115388733638 ns/iter |
8651.65362677127 ns/iter |
0.40 |
URITemplateRouterView_Match |
119.10645900650148 ns/iter |
126.78506947136827 ns/iter |
0.94 |
URITemplateRouterView_Match_BasePath |
135.0181425555959 ns/iter |
142.99034194992618 ns/iter |
0.94 |
URITemplateRouterView_Arguments |
536.113718561562 ns/iter |
453.2573840400594 ns/iter |
1.18 |
Pointer_Object_Traverse |
29.74137183272531 ns/iter |
29.841653437003952 ns/iter |
1.00 |
Pointer_Object_Try_Traverse |
24.612489999842886 ns/iter |
22.816357438917688 ns/iter |
1.08 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
170.83598722510212 ns/iter |
168.18227402442423 ns/iter |
1.02 |
Pointer_Walker_Schema_ISO_Language |
1761529.3548386905 ns/iter |
1910352.4643872352 ns/iter |
0.92 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1501914.4387097382 ns/iter |
1542548.46035249 ns/iter |
0.97 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
2055558.5427727022 ns/iter |
1673269.8257755665 ns/iter |
1.23 |
Pointer_Position_Tracker_Get_Deeply_Nested |
527.7896809295685 ns/iter |
633.353984054478 ns/iter |
0.83 |
JSON_Array_Of_Objects_Unique |
321.73840420343237 ns/iter |
391.29760458119495 ns/iter |
0.82 |
JSON_Parse_1 |
6794.621161723428 ns/iter |
7589.775072166016 ns/iter |
0.90 |
JSON_Parse_Real |
5866.128908153492 ns/iter |
6572.42646194607 ns/iter |
0.89 |
JSON_Parse_Decimal |
9101.950284258044 ns/iter |
9597.656043246105 ns/iter |
0.95 |
JSON_Parse_Schema_ISO_Language |
4792857.087248182 ns/iter |
5085918.4338232875 ns/iter |
0.94 |
JSON_Parse_Integer |
4676.766892547026 ns/iter |
4750.336281323393 ns/iter |
0.98 |
JSON_Parse_String_NonSSO_Plain |
7523.105268249346 ns/iter |
8591.2701759555 ns/iter |
0.88 |
JSON_Parse_String_SSO_Plain |
3529.268792228401 ns/iter |
3618.30853606994 ns/iter |
0.98 |
JSON_Parse_String_Escape_Heavy |
19163.012572586056 ns/iter |
19616.290559352896 ns/iter |
0.98 |
JSON_Parse_Object_Short_Keys |
9961.786542098363 ns/iter |
11277.111366596979 ns/iter |
0.88 |
JSON_Parse_Object_Scalar_Properties |
5143.413984715199 ns/iter |
5730.360654125483 ns/iter |
0.90 |
JSON_Parse_Object_Array_Properties |
7844.559948378956 ns/iter |
8807.414738300857 ns/iter |
0.89 |
JSON_Parse_Object_Object_Properties |
8043.167921496684 ns/iter |
9241.50745835217 ns/iter |
0.87 |
JSON_Parse_Nested_Containers |
65375.29793592656 ns/iter |
72861.83511030558 ns/iter |
0.90 |
JSON_From_String_Copy |
16.029510089564983 ns/iter |
19.740653655439345 ns/iter |
0.81 |
JSON_From_String_Temporary |
13.588160135168826 ns/iter |
16.622736849107888 ns/iter |
0.82 |
JSON_Number_To_Double |
19.174072757926652 ns/iter |
19.367469303184485 ns/iter |
0.99 |
JSON_Object_At_Last_Key/8 |
8.073490234949135 ns/iter |
9.19657144206356 ns/iter |
0.88 |
JSON_Object_At_Last_Key/32 |
28.848115675163807 ns/iter |
34.47436739153751 ns/iter |
0.84 |
JSON_Object_At_Last_Key/128 |
118.79040226331473 ns/iter |
135.81758187699944 ns/iter |
0.87 |
JSON_Object_At_Last_Key/512 |
451.0790063360894 ns/iter |
559.0863164827957 ns/iter |
0.81 |
JSON_Fast_Hash_Helm_Chart_Lock |
48.37510361226501 ns/iter |
53.43399589470027 ns/iter |
0.91 |
JSON_Equality_Helm_Chart_Lock |
135.34804105816752 ns/iter |
166.95083616601482 ns/iter |
0.81 |
JSON_Divisible_By_Decimal |
254.2108018078086 ns/iter |
231.4863879430501 ns/iter |
1.10 |
JSON_String_Equal/10 |
5.581062101844971 ns/iter |
6.420285041855429 ns/iter |
0.87 |
JSON_String_Equal/100 |
6.737115213168481 ns/iter |
7.136243209535237 ns/iter |
0.94 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.8265127248013343 ns/iter |
0.7170362072053337 ns/iter |
1.15 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
17.002377086303106 ns/iter |
21.938458087219058 ns/iter |
0.78 |
JSON_String_Fast_Hash/10 |
1.440491350374735 ns/iter |
1.4117318738336029 ns/iter |
1.02 |
JSON_String_Fast_Hash/100 |
1.4416812844221127 ns/iter |
1.4078993169526306 ns/iter |
1.02 |
JSON_String_Key_Hash/10 |
1.154354039566805 ns/iter |
1.0855988622266215 ns/iter |
1.06 |
JSON_String_Key_Hash/100 |
11.823381312010769 ns/iter |
14.755479966013395 ns/iter |
0.80 |
JSON_Object_Defines_Miss_Same_Length |
3.1525816230122934 ns/iter |
3.519225014199492 ns/iter |
0.90 |
JSON_Object_Defines_Miss_Too_Small |
3.297257540158296 ns/iter |
3.517459788342619 ns/iter |
0.94 |
JSON_Object_Defines_Miss_Too_Large |
3.322022406606128 ns/iter |
3.8858571831513413 ns/iter |
0.85 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.8645755745786212 ns/iter |
0.7035723414292654 ns/iter |
1.23 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.1527508533734967 ns/iter |
1.074732002013497 ns/iter |
1.07 |
Regex_Period_Asterisk |
1.1520169270291076 ns/iter |
1.0553572827877549 ns/iter |
1.09 |
Regex_Group_Period_Asterisk_Group |
0.8644341138732623 ns/iter |
0.7035413303782945 ns/iter |
1.23 |
Regex_Period_Plus |
0.8643574786862699 ns/iter |
0.7038588817538753 ns/iter |
1.23 |
Regex_Period |
1.1530721378007507 ns/iter |
1.05579168921459 ns/iter |
1.09 |
Regex_Caret_Period_Plus_Dollar |
1.1522957698628422 ns/iter |
1.056284540100192 ns/iter |
1.09 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.8642913522910612 ns/iter |
0.7083036328344906 ns/iter |
1.22 |
Regex_Caret_Period_Asterisk_Dollar |
0.8646741869538175 ns/iter |
0.7049063586182978 ns/iter |
1.23 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.1527090631343817 ns/iter |
1.0559543245225718 ns/iter |
1.09 |
Regex_Caret_X_Hyphen |
3.1701000372528427 ns/iter |
3.868587485734082 ns/iter |
0.82 |
Regex_Period_Md_Dollar |
23.65461432946796 ns/iter |
33.66726872686224 ns/iter |
0.70 |
Regex_Caret_Slash_Period_Asterisk |
3.172121575739968 ns/iter |
4.226834118591874 ns/iter |
0.75 |
Regex_Caret_Period_Range_Dollar |
1.4407452302645376 ns/iter |
1.4137325606748683 ns/iter |
1.02 |
Regex_Nested_Backtrack |
34.10645718082948 ns/iter |
38.762107871930176 ns/iter |
0.88 |
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: 2f48d7a | Previous: c9a31f2 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.4800866241583326 ns/iter |
2.204594915212281 ns/iter |
1.12 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.4620093691596963 ns/iter |
2.191908198457735 ns/iter |
1.12 |
Regex_Period_Asterisk |
2.462208199401338 ns/iter |
2.197088759090192 ns/iter |
1.12 |
Regex_Group_Period_Asterisk_Group |
2.462720062770241 ns/iter |
2.2228478162852094 ns/iter |
1.11 |
Regex_Period_Plus |
3.866991073933864 ns/iter |
2.802649143898366 ns/iter |
1.38 |
Regex_Period |
3.5186322955896476 ns/iter |
2.4923419747967617 ns/iter |
1.41 |
Regex_Caret_Period_Plus_Dollar |
3.270241212199945 ns/iter |
2.491268606091051 ns/iter |
1.31 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.463506247878573 ns/iter |
2.8027236475895605 ns/iter |
0.88 |
Regex_Caret_Period_Asterisk_Dollar |
3.866423216333679 ns/iter |
3.4245752712682105 ns/iter |
1.13 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.5156444510479843 ns/iter |
3.1206291785748728 ns/iter |
1.13 |
Regex_Caret_X_Hyphen |
6.679636071652312 ns/iter |
6.5459916636804 ns/iter |
1.02 |
Regex_Period_Md_Dollar |
28.73531072385263 ns/iter |
28.077353026761497 ns/iter |
1.02 |
Regex_Caret_Slash_Period_Asterisk |
6.341658792638077 ns/iter |
6.353634858394133 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
2.4638698171815325 ns/iter |
3.4244231366199154 ns/iter |
0.72 |
Regex_Nested_Backtrack |
37.67749983836541 ns/iter |
43.543605663358406 ns/iter |
0.87 |
JSON_Array_Of_Objects_Unique |
487.69240826638475 ns/iter |
456.5111618868605 ns/iter |
1.07 |
JSON_Parse_1 |
4577.945505959853 ns/iter |
4768.019399173138 ns/iter |
0.96 |
JSON_Parse_Real |
4947.203472075307 ns/iter |
5216.204388506317 ns/iter |
0.95 |
JSON_Parse_Decimal |
7187.948174928298 ns/iter |
7260.873451033884 ns/iter |
0.99 |
JSON_Parse_Schema_ISO_Language |
3558408.319797083 ns/iter |
3450164.8040202954 ns/iter |
1.03 |
JSON_Parse_Integer |
3780.4991749710402 ns/iter |
3818.4511635536614 ns/iter |
0.99 |
JSON_Parse_String_NonSSO_Plain |
5017.085802152396 ns/iter |
4917.410555644085 ns/iter |
1.02 |
JSON_Parse_String_SSO_Plain |
2792.33151091248 ns/iter |
2673.9930172564164 ns/iter |
1.04 |
JSON_Parse_String_Escape_Heavy |
14536.769514495041 ns/iter |
14174.48309422509 ns/iter |
1.03 |
JSON_Parse_Object_Short_Keys |
7801.693431712715 ns/iter |
10532.061527826618 ns/iter |
0.74 |
JSON_Parse_Object_Scalar_Properties |
4059.3665217167822 ns/iter |
4089.8277986374906 ns/iter |
0.99 |
JSON_Parse_Object_Array_Properties |
5476.310370280723 ns/iter |
5582.005519874832 ns/iter |
0.98 |
JSON_Parse_Object_Object_Properties |
5450.50127504271 ns/iter |
5669.602668067891 ns/iter |
0.96 |
JSON_Parse_Nested_Containers |
44783.3324760495 ns/iter |
44819.12648476066 ns/iter |
1.00 |
JSON_From_String_Copy |
22.384183725989008 ns/iter |
19.63725866754274 ns/iter |
1.14 |
JSON_From_String_Temporary |
19.006297198484564 ns/iter |
17.846999184776926 ns/iter |
1.06 |
JSON_Number_To_Double |
22.843048142104493 ns/iter |
24.075789094324406 ns/iter |
0.95 |
JSON_Object_At_Last_Key/8 |
3.8538916385881112 ns/iter |
3.7114693810135084 ns/iter |
1.04 |
JSON_Object_At_Last_Key/32 |
13.01962013912282 ns/iter |
11.937259100404711 ns/iter |
1.09 |
JSON_Object_At_Last_Key/128 |
46.78835001905776 ns/iter |
48.29993144284837 ns/iter |
0.97 |
JSON_Object_At_Last_Key/512 |
373.1903135756286 ns/iter |
386.97698978487375 ns/iter |
0.96 |
JSON_Fast_Hash_Helm_Chart_Lock |
66.11709878955128 ns/iter |
61.05702457660014 ns/iter |
1.08 |
JSON_Equality_Helm_Chart_Lock |
184.27490287426295 ns/iter |
183.18386833650902 ns/iter |
1.01 |
JSON_Divisible_By_Decimal |
252.55094708574154 ns/iter |
251.3033528164525 ns/iter |
1.00 |
JSON_String_Equal/10 |
5.628855558486256 ns/iter |
5.92087507140848 ns/iter |
0.95 |
JSON_String_Equal/100 |
6.335241986005074 ns/iter |
6.547282824013433 ns/iter |
0.97 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.0554123302265572 ns/iter |
0.9351376100647943 ns/iter |
1.13 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
12.334803767101056 ns/iter |
10.58666345587432 ns/iter |
1.17 |
JSON_String_Fast_Hash/10 |
2.461710473711185 ns/iter |
2.493219363713232 ns/iter |
0.99 |
JSON_String_Fast_Hash/100 |
2.462372785487388 ns/iter |
2.492284515465623 ns/iter |
0.99 |
JSON_String_Key_Hash/10 |
2.4616227446431598 ns/iter |
2.1804110648840798 ns/iter |
1.13 |
JSON_String_Key_Hash/100 |
7.737266749495983 ns/iter |
6.5383733823128445 ns/iter |
1.18 |
JSON_Object_Defines_Miss_Same_Length |
2.930487914496867 ns/iter |
2.7355020905626706 ns/iter |
1.07 |
JSON_Object_Defines_Miss_Too_Small |
4.230749734206351 ns/iter |
3.7366011916112467 ns/iter |
1.13 |
JSON_Object_Defines_Miss_Too_Large |
2.8959966373660597 ns/iter |
2.7705193109591773 ns/iter |
1.05 |
Pointer_Object_Traverse |
25.503227850075035 ns/iter |
24.39833432138603 ns/iter |
1.05 |
Pointer_Object_Try_Traverse |
31.86014139367007 ns/iter |
30.217277542663464 ns/iter |
1.05 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
173.39138253171495 ns/iter |
164.25163501249796 ns/iter |
1.06 |
Pointer_Walker_Schema_ISO_Language |
1853942.3693931352 ns/iter |
1739918.0694791093 ns/iter |
1.07 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1262430.8643761573 ns/iter |
1237455.6249998899 ns/iter |
1.02 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1594360.1052633824 ns/iter |
1599015.9305558833 ns/iter |
1.00 |
Pointer_Position_Tracker_Get_Deeply_Nested |
755.364317576444 ns/iter |
714.6836278318038 ns/iter |
1.06 |
URITemplateRouter_Create |
30017.548882802763 ns/iter |
31936.243518185216 ns/iter |
0.94 |
URITemplateRouter_Match |
182.04816330111265 ns/iter |
177.5222310238886 ns/iter |
1.03 |
URITemplateRouter_Match_BasePath |
226.62761977062195 ns/iter |
207.0345760780482 ns/iter |
1.09 |
URITemplateRouterView_Restore |
8755.234876879173 ns/iter |
7855.387215322749 ns/iter |
1.11 |
URITemplateRouterView_Match |
145.50748979833355 ns/iter |
146.16400495530868 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
165.0788008068164 ns/iter |
165.12563758078568 ns/iter |
1.00 |
URITemplateRouterView_Arguments |
449.5612620287193 ns/iter |
429.55543382612 ns/iter |
1.05 |
JSONL_Parse_Large |
9190494.631579177 ns/iter |
9903262.3661963 ns/iter |
0.93 |
JSONL_Parse_Large_GZIP |
10918413.687500462 ns/iter |
11556576.114750642 ns/iter |
0.94 |
HTML_Build_Table_100000 |
73306995.11111207 ns/iter |
68528203.10000424 ns/iter |
1.07 |
HTML_Render_Table_100000 |
5347618.730769017 ns/iter |
5402538.5703120325 ns/iter |
0.99 |
GZIP_Compress_ISO_Language_Set_3_Locations |
35792587.052631125 ns/iter |
33540752.571427997 ns/iter |
1.07 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4306101.5030672345 ns/iter |
4259842.940120213 ns/iter |
1.01 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2136161.1009174045 ns/iter |
1891447.037837679 ns/iter |
1.13 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
275706.3597320815 ns/iter |
352205.5128205891 ns/iter |
0.78 |
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: 2f48d7a | Previous: c9a31f2 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.7053577802991942 ns/iter |
1.7170759750984135 ns/iter |
0.99 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.6747904711962323 ns/iter |
1.814388270806821 ns/iter |
0.92 |
Regex_Period_Asterisk |
1.793959617213296 ns/iter |
1.779408323233057 ns/iter |
1.01 |
Regex_Group_Period_Asterisk_Group |
1.7170845660002347 ns/iter |
1.7215304993751157 ns/iter |
1.00 |
Regex_Period_Plus |
2.376737067823193 ns/iter |
2.096003703185617 ns/iter |
1.13 |
Regex_Period |
2.0982815847720677 ns/iter |
2.1441795702282 ns/iter |
0.98 |
Regex_Caret_Period_Plus_Dollar |
2.0874903532889766 ns/iter |
2.2381447567843633 ns/iter |
0.93 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.079860408998277 ns/iter |
2.134209301765577 ns/iter |
0.97 |
Regex_Caret_Period_Asterisk_Dollar |
1.6949393487846764 ns/iter |
1.780209361360703 ns/iter |
0.95 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.706165915002974 ns/iter |
1.7806635587127215 ns/iter |
0.96 |
Regex_Caret_X_Hyphen |
5.9726880196554255 ns/iter |
6.308466264113434 ns/iter |
0.95 |
Regex_Period_Md_Dollar |
16.681872961509534 ns/iter |
17.762077259422053 ns/iter |
0.94 |
Regex_Caret_Slash_Period_Asterisk |
4.522123184608973 ns/iter |
4.956753876898896 ns/iter |
0.91 |
Regex_Caret_Period_Range_Dollar |
1.9805586718556438 ns/iter |
2.0407799319205915 ns/iter |
0.97 |
Regex_Nested_Backtrack |
24.50579445936173 ns/iter |
24.83634623591258 ns/iter |
0.99 |
JSON_Array_Of_Objects_Unique |
334.0214141895246 ns/iter |
345.7617512366742 ns/iter |
0.97 |
JSON_Parse_1 |
3964.257021652814 ns/iter |
3742.772488929958 ns/iter |
1.06 |
JSON_Parse_Real |
6674.216514925306 ns/iter |
6014.16523404838 ns/iter |
1.11 |
JSON_Parse_Decimal |
6132.161238977572 ns/iter |
5805.278270348018 ns/iter |
1.06 |
JSON_Parse_Schema_ISO_Language |
3281540.131578559 ns/iter |
2877491.8604651336 ns/iter |
1.14 |
JSON_Parse_Integer |
3023.830566217881 ns/iter |
3162.605167005826 ns/iter |
0.96 |
JSON_Parse_String_NonSSO_Plain |
3557.3617540385903 ns/iter |
3502.242441719212 ns/iter |
1.02 |
JSON_Parse_String_SSO_Plain |
2284.6621789133205 ns/iter |
1787.6757320542924 ns/iter |
1.28 |
JSON_Parse_String_Escape_Heavy |
17777.557806465764 ns/iter |
16321.77527595872 ns/iter |
1.09 |
JSON_Parse_Object_Short_Keys |
5330.648064637469 ns/iter |
5167.181010566036 ns/iter |
1.03 |
JSON_Parse_Object_Scalar_Properties |
2745.4781900466237 ns/iter |
2723.068233218231 ns/iter |
1.01 |
JSON_Parse_Object_Array_Properties |
3413.214267775632 ns/iter |
3402.73075367881 ns/iter |
1.00 |
JSON_Parse_Object_Object_Properties |
3996.9187718573066 ns/iter |
3521.4123175863206 ns/iter |
1.14 |
JSON_Parse_Nested_Containers |
37306.07103802495 ns/iter |
30281.60129646291 ns/iter |
1.23 |
JSON_From_String_Copy |
28.45970181716046 ns/iter |
24.437457520929776 ns/iter |
1.16 |
JSON_From_String_Temporary |
19.983580221049802 ns/iter |
19.578124549536444 ns/iter |
1.02 |
JSON_Number_To_Double |
38.66150837881313 ns/iter |
37.62677492916607 ns/iter |
1.03 |
JSON_Object_At_Last_Key/8 |
4.3449225943907255 ns/iter |
3.8022873263377996 ns/iter |
1.14 |
JSON_Object_At_Last_Key/32 |
14.233876912879744 ns/iter |
11.833856298387587 ns/iter |
1.20 |
JSON_Object_At_Last_Key/128 |
54.69620442759596 ns/iter |
53.34712498676358 ns/iter |
1.03 |
JSON_Object_At_Last_Key/512 |
187.48595900404467 ns/iter |
187.0735766737815 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
59.184280189061 ns/iter |
57.94583675785007 ns/iter |
1.02 |
JSON_Equality_Helm_Chart_Lock |
138.0787945191824 ns/iter |
130.740098941196 ns/iter |
1.06 |
JSON_Divisible_By_Decimal |
176.85321967868026 ns/iter |
176.5793411045595 ns/iter |
1.00 |
JSON_String_Equal/10 |
6.740882492456281 ns/iter |
6.806712909480208 ns/iter |
0.99 |
JSON_String_Equal/100 |
6.404532588797959 ns/iter |
6.397354962545606 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.8614759611729536 ns/iter |
0.7633610924386263 ns/iter |
1.13 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.4531316283660143 ns/iter |
3.297629774236439 ns/iter |
1.05 |
JSON_String_Fast_Hash/10 |
2.6044903646342696 ns/iter |
2.2784295236152254 ns/iter |
1.14 |
JSON_String_Fast_Hash/100 |
2.0932446742332114 ns/iter |
2.0388992935194943 ns/iter |
1.03 |
JSON_String_Key_Hash/10 |
1.381697701977807 ns/iter |
1.356185241142552 ns/iter |
1.02 |
JSON_String_Key_Hash/100 |
2.558585597969008 ns/iter |
2.134961065828774 ns/iter |
1.20 |
JSON_Object_Defines_Miss_Same_Length |
2.420211688637116 ns/iter |
2.3790127251868203 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Small |
2.460028009493164 ns/iter |
2.347671219820777 ns/iter |
1.05 |
JSON_Object_Defines_Miss_Too_Large |
2.3574245367388653 ns/iter |
2.297981444168019 ns/iter |
1.03 |
Pointer_Object_Traverse |
14.284600102554707 ns/iter |
13.87773032901739 ns/iter |
1.03 |
Pointer_Object_Try_Traverse |
23.171382835780996 ns/iter |
23.532233830403282 ns/iter |
0.98 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
153.73238761009415 ns/iter |
150.61197166013093 ns/iter |
1.02 |
Pointer_Walker_Schema_ISO_Language |
3335909.5763887893 ns/iter |
2534329.2385965115 ns/iter |
1.32 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1065154.4921987394 ns/iter |
866076.6238993593 ns/iter |
1.23 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1253245.3554120597 ns/iter |
1107209.0551179848 ns/iter |
1.13 |
Pointer_Position_Tracker_Get_Deeply_Nested |
356.16572692581343 ns/iter |
351.66828008191686 ns/iter |
1.01 |
URITemplateRouter_Create |
23168.30605564131 ns/iter |
22652.16933676443 ns/iter |
1.02 |
URITemplateRouter_Match |
165.7916875939893 ns/iter |
158.72305973360648 ns/iter |
1.04 |
URITemplateRouter_Match_BasePath |
215.0833710318447 ns/iter |
191.96795210193164 ns/iter |
1.12 |
URITemplateRouterView_Restore |
11970.108640776305 ns/iter |
9251.420223990013 ns/iter |
1.29 |
URITemplateRouterView_Match |
142.65822036951778 ns/iter |
125.89069313579213 ns/iter |
1.13 |
URITemplateRouterView_Match_BasePath |
152.89222482705676 ns/iter |
148.784081575014 ns/iter |
1.03 |
URITemplateRouterView_Arguments |
449.56057159191056 ns/iter |
398.3517951210693 ns/iter |
1.13 |
JSONL_Parse_Large |
13855946.808510626 ns/iter |
12159046.689654244 ns/iter |
1.14 |
JSONL_Parse_Large_GZIP |
16652778.89795719 ns/iter |
13743270.411766265 ns/iter |
1.21 |
HTML_Build_Table_100000 |
76970129.66665776 ns/iter |
78443636.36363803 ns/iter |
0.98 |
HTML_Render_Table_100000 |
4545934.226414074 ns/iter |
3819672.3300971314 ns/iter |
1.19 |
GZIP_Compress_ISO_Language_Set_3_Locations |
29634608.32000237 ns/iter |
32304933.320001513 ns/iter |
0.92 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
6791415.2393146865 ns/iter |
6028109.842975576 ns/iter |
1.13 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1578230.065759523 ns/iter |
1629568.5499999635 ns/iter |
0.97 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
297661.3824339746 ns/iter |
288166.91827698366 ns/iter |
1.03 |
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: 2f48d7a | Previous: c9a31f2 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.4701282142854906 ns/iter |
5.049748214286102 ns/iter |
0.49 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.3958989285712766 ns/iter |
5.034616999998889 ns/iter |
0.48 |
Regex_Period_Asterisk |
2.3895371428571774 ns/iter |
5.026743000000806 ns/iter |
0.48 |
Regex_Group_Period_Asterisk_Group |
2.3879014285715323 ns/iter |
5.024964000001546 ns/iter |
0.48 |
Regex_Period_Plus |
2.51531321428534 ns/iter |
5.019916999999623 ns/iter |
0.50 |
Regex_Period |
2.6923700645603446 ns/iter |
5.018075999998928 ns/iter |
0.54 |
Regex_Caret_Period_Plus_Dollar |
2.528432765599288 ns/iter |
5.024493000000803 ns/iter |
0.50 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.6258537699769997 ns/iter |
5.0264789999982895 ns/iter |
0.52 |
Regex_Caret_Period_Asterisk_Dollar |
2.4502782142852606 ns/iter |
5.175729464284018 ns/iter |
0.47 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.411286428571202 ns/iter |
5.015544000000318 ns/iter |
0.48 |
Regex_Caret_X_Hyphen |
5.851637500001061 ns/iter |
8.160581473214888 ns/iter |
0.72 |
Regex_Period_Md_Dollar |
29.565743171579467 ns/iter |
44.424012103357164 ns/iter |
0.67 |
Regex_Caret_Slash_Period_Asterisk |
5.825281999998424 ns/iter |
7.849753348213743 ns/iter |
0.74 |
Regex_Caret_Period_Range_Dollar |
2.6918803571431584 ns/iter |
5.737712999998621 ns/iter |
0.47 |
Regex_Nested_Backtrack |
39.84744419642488 ns/iter |
56.68230357142891 ns/iter |
0.70 |
JSON_Array_Of_Objects_Unique |
402.20970982142643 ns/iter |
535.7274999998936 ns/iter |
0.75 |
JSON_Parse_1 |
8007.214285713969 ns/iter |
8839.984375000093 ns/iter |
0.91 |
JSON_Parse_Real |
12020.16785714071 ns/iter |
15996.850446430448 ns/iter |
0.75 |
JSON_Parse_Decimal |
9223.962393025004 ns/iter |
11810.328571430415 ns/iter |
0.78 |
JSON_Parse_Schema_ISO_Language |
7848025.555555675 ns/iter |
7522957.777776659 ns/iter |
1.04 |
JSON_Parse_Integer |
4382.773124999062 ns/iter |
6129.915178569994 ns/iter |
0.71 |
JSON_Parse_String_NonSSO_Plain |
6607.304464286099 ns/iter |
7759.744419644221 ns/iter |
0.85 |
JSON_Parse_String_SSO_Plain |
2798.816449043197 ns/iter |
3720.8660714276625 ns/iter |
0.75 |
JSON_Parse_String_Escape_Heavy |
22309.80937499538 ns/iter |
21916.896874998318 ns/iter |
1.02 |
JSON_Parse_Object_Short_Keys |
9409.306654878483 ns/iter |
13303.296428570578 ns/iter |
0.71 |
JSON_Parse_Object_Scalar_Properties |
4861.200000000281 ns/iter |
6849.545535713121 ns/iter |
0.71 |
JSON_Parse_Object_Array_Properties |
8663.830072188695 ns/iter |
11322.581250002628 ns/iter |
0.77 |
JSON_Parse_Object_Object_Properties |
8691.196428571857 ns/iter |
11421.634375000878 ns/iter |
0.76 |
JSON_Parse_Nested_Containers |
66009.09821427437 ns/iter |
79201.59598214635 ns/iter |
0.83 |
JSON_From_String_Copy |
46.332851480655414 ns/iter |
63.622776785722735 ns/iter |
0.73 |
JSON_From_String_Temporary |
53.232303571430094 ns/iter |
58.98159000000761 ns/iter |
0.90 |
JSON_Number_To_Double |
85.48527901783842 ns/iter |
119.4565714285594 ns/iter |
0.72 |
JSON_Object_At_Last_Key/8 |
6.718850892856461 ns/iter |
7.250651785713253 ns/iter |
0.93 |
JSON_Object_At_Last_Key/32 |
20.787409430187335 ns/iter |
23.25989706182922 ns/iter |
0.89 |
JSON_Object_At_Last_Key/128 |
92.99311191995197 ns/iter |
89.18790673267793 ns/iter |
1.04 |
JSON_Object_At_Last_Key/512 |
317.06763392855515 ns/iter |
426.2908738262682 ns/iter |
0.74 |
JSON_Fast_Hash_Helm_Chart_Lock |
48.169031373867796 ns/iter |
69.43446428570508 ns/iter |
0.69 |
JSON_Equality_Helm_Chart_Lock |
258.7217593179232 ns/iter |
305.37386100737496 ns/iter |
0.85 |
JSON_Divisible_By_Decimal |
274.50910828083835 ns/iter |
302.69986607141925 ns/iter |
0.91 |
JSON_String_Equal/10 |
11.874501785712255 ns/iter |
16.017529580241725 ns/iter |
0.74 |
JSON_String_Equal/100 |
14.538051497597973 ns/iter |
17.289944750290108 ns/iter |
0.84 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.2068559374998955 ns/iter |
2.5088925000001643 ns/iter |
0.48 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
9.12169754464287 ns/iter |
14.204099266944539 ns/iter |
0.64 |
JSON_String_Fast_Hash/10 |
2.961682674604218 ns/iter |
5.017958000000817 ns/iter |
0.59 |
JSON_String_Fast_Hash/100 |
2.92384086661979 ns/iter |
5.023748000000978 ns/iter |
0.58 |
JSON_String_Key_Hash/10 |
2.9331860674999213 ns/iter |
5.336104000000432 ns/iter |
0.55 |
JSON_String_Key_Hash/100 |
7.354990178571694 ns/iter |
11.956614285716276 ns/iter |
0.62 |
JSON_Object_Defines_Miss_Same_Length |
4.953613392856937 ns/iter |
5.022656000001007 ns/iter |
0.99 |
JSON_Object_Defines_Miss_Too_Small |
4.710990412301163 ns/iter |
4.079168444785098 ns/iter |
1.15 |
JSON_Object_Defines_Miss_Too_Large |
3.543286556964135 ns/iter |
4.092041346592111 ns/iter |
0.87 |
Pointer_Object_Traverse |
42.96608749999109 ns/iter |
66.97249107142105 ns/iter |
0.64 |
Pointer_Object_Try_Traverse |
50.73231250000682 ns/iter |
67.61998883926574 ns/iter |
0.75 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
186.79584703535818 ns/iter |
186.22549877015422 ns/iter |
1.00 |
Pointer_Walker_Schema_ISO_Language |
8237878.888889504 ns/iter |
7810205.5555544 ns/iter |
1.05 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2180640.1515143327 ns/iter |
2423628.112449635 ns/iter |
0.90 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3916030.167596922 ns/iter |
3631134.7593593067 ns/iter |
1.08 |
Pointer_Position_Tracker_Get_Deeply_Nested |
535.6779278148732 ns/iter |
531.6575000000918 ns/iter |
1.01 |
URITemplateRouter_Create |
38247.924144212106 ns/iter |
40315.07747664416 ns/iter |
0.95 |
URITemplateRouter_Match |
217.05334375006657 ns/iter |
191.28336529316442 ns/iter |
1.13 |
URITemplateRouter_Match_BasePath |
247.2891071428356 ns/iter |
217.23696875000087 ns/iter |
1.14 |
URITemplateRouterView_Restore |
25751.989285717107 ns/iter |
32213.293957717688 ns/iter |
0.80 |
URITemplateRouterView_Match |
163.73474087512116 ns/iter |
157.37736607143964 ns/iter |
1.04 |
URITemplateRouterView_Match_BasePath |
182.181440527626 ns/iter |
175.20877289342704 ns/iter |
1.04 |
URITemplateRouterView_Arguments |
446.94218749995684 ns/iter |
522.7442000000337 ns/iter |
0.85 |
JSONL_Parse_Large |
27510969.230775118 ns/iter |
32645504.761895996 ns/iter |
0.84 |
JSONL_Parse_Large_GZIP |
27827051.999993272 ns/iter |
33295709.523805443 ns/iter |
0.84 |
HTML_Build_Table_100000 |
94973857.14283673 ns/iter |
90413528.57142165 ns/iter |
1.05 |
HTML_Render_Table_100000 |
12474792.85714397 ns/iter |
8044925.555554982 ns/iter |
1.55 |
GZIP_Compress_ISO_Language_Set_3_Locations |
33689340.00000081 ns/iter |
35909415.78947518 ns/iter |
0.94 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
11907766.07143107 ns/iter |
9911593.333332956 ns/iter |
1.20 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2042953.1249995134 ns/iter |
2100028.4374999013 ns/iter |
0.97 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
663153.2366070709 ns/iter |
643655.8928572009 ns/iter |
1.03 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com