Add IRI support to URI Template expansion - #2700
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR extends URI Template expansion to optionally emit IRIs by allowing internationalized (non-ASCII) bytes in variable values to pass through unencoded. Changes:
Technical Notes: IRI mode is implemented as an RFC 6570 extension: it does not decode existing percent-encoded triplets, and it does not validate the resulting output against RFC 3987 (left to the caller). 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
Review completed against the latest diff
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
There was a problem hiding this comment.
Benchmark (macos/llvm)
Details
| Benchmark suite | Current: a52cdbc | Previous: b25f900 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.6820770802897862 ns/iter |
2.009771309059989 ns/iter |
0.84 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.5924228633889166 ns/iter |
1.9830222722362039 ns/iter |
0.80 |
Regex_Period_Asterisk |
1.659399724246138 ns/iter |
2.101184190710529 ns/iter |
0.79 |
Regex_Group_Period_Asterisk_Group |
1.8726312240232976 ns/iter |
1.9583335489305997 ns/iter |
0.96 |
Regex_Period_Plus |
2.1681433351150847 ns/iter |
2.311302722434423 ns/iter |
0.94 |
Regex_Period |
2.0602394667053057 ns/iter |
2.5356648161276425 ns/iter |
0.81 |
Regex_Caret_Period_Plus_Dollar |
2.0263828677344717 ns/iter |
2.2325316520749046 ns/iter |
0.91 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.1349762041916627 ns/iter |
2.388944806190776 ns/iter |
0.89 |
Regex_Caret_Period_Asterisk_Dollar |
1.6762378054942602 ns/iter |
1.8836724426189262 ns/iter |
0.89 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.6843387917670707 ns/iter |
2.0887746607732467 ns/iter |
0.81 |
Regex_Caret_X_Hyphen |
5.9337572662692235 ns/iter |
6.747433688797714 ns/iter |
0.88 |
Regex_Period_Md_Dollar |
16.128630802331156 ns/iter |
19.456151337785492 ns/iter |
0.83 |
Regex_Caret_Slash_Period_Asterisk |
5.784346249999999 ns/iter |
6.454860670852113 ns/iter |
0.90 |
Regex_Caret_Period_Range_Dollar |
2.7046105342522697 ns/iter |
2.613944384071358 ns/iter |
1.03 |
Regex_Nested_Backtrack |
27.51969563613432 ns/iter |
29.62837348474804 ns/iter |
0.93 |
JSON_Array_Of_Objects_Unique |
350.8621571427488 ns/iter |
364.1990071226491 ns/iter |
0.96 |
JSON_Parse_1 |
6711.846739251723 ns/iter |
6722.0109036872545 ns/iter |
1.00 |
JSON_Parse_Real |
6835.125187157685 ns/iter |
6762.482896253351 ns/iter |
1.01 |
JSON_Parse_Decimal |
7743.030848473965 ns/iter |
7558.011300165561 ns/iter |
1.02 |
JSON_Parse_Schema_ISO_Language |
3799952.835164491 ns/iter |
3928218.8100557947 ns/iter |
0.97 |
JSON_Parse_Integer |
4598.204159392698 ns/iter |
5441.140690817632 ns/iter |
0.85 |
JSON_Parse_String_NonSSO_Plain |
7245.110794272244 ns/iter |
8040.783093293591 ns/iter |
0.90 |
JSON_Parse_String_SSO_Plain |
2784.4993489119142 ns/iter |
2882.1295242184874 ns/iter |
0.97 |
JSON_Parse_String_Escape_Heavy |
20802.22733217164 ns/iter |
24188.03911894714 ns/iter |
0.86 |
JSON_Parse_Object_Short_Keys |
9046.77114755298 ns/iter |
8331.041947617601 ns/iter |
1.09 |
JSON_Parse_Object_Scalar_Properties |
4240.131033407544 ns/iter |
4505.166170392402 ns/iter |
0.94 |
JSON_Parse_Object_Array_Properties |
6789.718331168572 ns/iter |
7250.633212071243 ns/iter |
0.94 |
JSON_Parse_Object_Object_Properties |
7240.5489474875885 ns/iter |
7486.66555305254 ns/iter |
0.97 |
JSON_Parse_Nested_Containers |
66257.29405033258 ns/iter |
61268.93411190549 ns/iter |
1.08 |
JSON_From_String_Copy |
22.827565363616515 ns/iter |
23.84795981199957 ns/iter |
0.96 |
JSON_From_String_Temporary |
21.24430393357809 ns/iter |
20.413143685734997 ns/iter |
1.04 |
JSON_Number_To_Double |
34.520202925344435 ns/iter |
33.2200254522104 ns/iter |
1.04 |
JSON_Object_At_Last_Key/8 |
4.079706342550934 ns/iter |
4.406180659275608 ns/iter |
0.93 |
JSON_Object_At_Last_Key/32 |
11.967202796912021 ns/iter |
12.46077249968455 ns/iter |
0.96 |
JSON_Object_At_Last_Key/128 |
53.9204971558289 ns/iter |
57.8877469881098 ns/iter |
0.93 |
JSON_Object_At_Last_Key/512 |
187.80409991769093 ns/iter |
236.40489649633153 ns/iter |
0.79 |
JSON_Fast_Hash_Helm_Chart_Lock |
64.57926544774853 ns/iter |
65.02746878226515 ns/iter |
0.99 |
JSON_Equality_Helm_Chart_Lock |
155.25744987487255 ns/iter |
163.6994213334219 ns/iter |
0.95 |
JSON_Divisible_By_Decimal |
176.48158715035765 ns/iter |
192.72419487565801 ns/iter |
0.92 |
JSON_String_Equal/10 |
7.145774138731198 ns/iter |
8.338682328763005 ns/iter |
0.86 |
JSON_String_Equal/100 |
7.27665005891714 ns/iter |
8.172161459615845 ns/iter |
0.89 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.3482979349725011 ns/iter |
0.39552298379597695 ns/iter |
0.88 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.1171331317507733 ns/iter |
4.300814340014143 ns/iter |
0.72 |
JSON_String_Fast_Hash/10 |
2.410227698493325 ns/iter |
2.6949806000232095 ns/iter |
0.89 |
JSON_String_Fast_Hash/100 |
2.573152313001742 ns/iter |
2.5622471183346813 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.8180123361938734 ns/iter |
1.902918170264376 ns/iter |
0.96 |
JSON_String_Key_Hash/100 |
2.152027033586804 ns/iter |
2.3125955860786513 ns/iter |
0.93 |
JSON_Object_Defines_Miss_Same_Length |
2.7208303223642276 ns/iter |
2.8418242061007017 ns/iter |
0.96 |
JSON_Object_Defines_Miss_Too_Small |
3.256158534206848 ns/iter |
2.8480956538871003 ns/iter |
1.14 |
JSON_Object_Defines_Miss_Too_Large |
3.1698252803021423 ns/iter |
2.8349460523216816 ns/iter |
1.12 |
Pointer_Object_Traverse |
24.87794816895379 ns/iter |
27.8519292434511 ns/iter |
0.89 |
Pointer_Object_Try_Traverse |
23.0147253040515 ns/iter |
25.356448682322977 ns/iter |
0.91 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
180.37878552463474 ns/iter |
192.5899814164332 ns/iter |
0.94 |
Pointer_Walker_Schema_ISO_Language |
2477061.471830746 ns/iter |
3111466.2411070135 ns/iter |
0.80 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1206083.470297077 ns/iter |
1320838.2699027972 ns/iter |
0.91 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1018977.4279210179 ns/iter |
1428077.6928675552 ns/iter |
0.71 |
Pointer_Position_Tracker_Get_Deeply_Nested |
365.2665894067217 ns/iter |
341.5108204924912 ns/iter |
1.07 |
JSONPath_Descendant_Filter_Nested |
1257.4253479806239 ns/iter |
1391.2514039135692 ns/iter |
0.90 |
URITemplateRouter_Create |
26506.43864550217 ns/iter |
27635.31311105442 ns/iter |
0.96 |
URITemplateRouter_Match |
187.03567914160269 ns/iter |
194.77924004391411 ns/iter |
0.96 |
URITemplateRouter_Match_BasePath |
242.63753865850597 ns/iter |
229.1388891069703 ns/iter |
1.06 |
URITemplateRouterView_Restore |
12385.956125580215 ns/iter |
11468.718476807047 ns/iter |
1.08 |
URITemplateRouterView_Match |
159.92065837980127 ns/iter |
142.89856571567722 ns/iter |
1.12 |
URITemplateRouterView_Match_BasePath |
166.77333354005185 ns/iter |
166.41900978439503 ns/iter |
1.00 |
URITemplateRouterView_Arguments |
579.6790463001994 ns/iter |
601.7838199499539 ns/iter |
0.96 |
JSONL_Parse_Large |
11941148.30508686 ns/iter |
12065280.357142325 ns/iter |
0.99 |
JSONL_Parse_Large_GZIP |
12837522.792448718 ns/iter |
12908501.584905816 ns/iter |
0.99 |
JSONLD_Catalog_Annotation_List_Populate |
1059165.9849932366 ns/iter |
1018690.1408450896 ns/iter |
1.04 |
JSONLD_Catalog_Materialize |
5248605.603447952 ns/iter |
6211276.821783157 ns/iter |
0.85 |
HTML_Build_Table_100000 |
48556369.75000266 ns/iter |
44403988.14285475 ns/iter |
1.09 |
HTML_Render_Table_100000 |
2310872.0414194935 ns/iter |
1931499.24742268 ns/iter |
1.20 |
GZIP_Compress_ISO_Language_Set_3_Locations |
31471291.652174525 ns/iter |
29295710.227276314 ns/iter |
1.07 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4554022.946523185 ns/iter |
3339268.679803192 ns/iter |
1.36 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2129477.152492897 ns/iter |
1745089.2719298003 ns/iter |
1.22 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
319339.8257280933 ns/iter |
281720.91709433985 ns/iter |
1.13 |
JOSE_VerifySignature_RS256 |
31822.92068177761 ns/iter |
26395.068189973503 ns/iter |
1.21 |
JOSE_VerifySignature_ES512 |
1196372.7786885519 ns/iter |
1177968.7850162857 ns/iter |
1.02 |
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: a52cdbc | Previous: b25f900 | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
24378.706205729388 ns/iter |
22123.2569538939 ns/iter |
1.10 |
JOSE_VerifySignature_ES512 |
642213.837763439 ns/iter |
575724.6677631924 ns/iter |
1.12 |
GZIP_Compress_ISO_Language_Set_3_Locations |
39383019.0555554 ns/iter |
36552298.73684101 ns/iter |
1.08 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4035182.439306114 ns/iter |
4228986.832335541 ns/iter |
0.95 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2280545.879478887 ns/iter |
2035493.5393587775 ns/iter |
1.12 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
306672.49819004827 ns/iter |
380708.34477121633 ns/iter |
0.81 |
HTML_Build_Table_100000 |
67301496.30000141 ns/iter |
61222044.09089963 ns/iter |
1.10 |
HTML_Render_Table_100000 |
2008286.5242166475 ns/iter |
1785362.8925831916 ns/iter |
1.12 |
JSONLD_Catalog_Annotation_List_Populate |
1317048.4690430912 ns/iter |
1273485.513711238 ns/iter |
1.03 |
JSONLD_Catalog_Materialize |
6955569.589999868 ns/iter |
7066978.599999629 ns/iter |
0.98 |
JSONL_Parse_Large |
12677157.400001058 ns/iter |
13751225.843135199 ns/iter |
0.92 |
JSONL_Parse_Large_GZIP |
14226219.775509333 ns/iter |
15091075.826087093 ns/iter |
0.94 |
URITemplateRouter_Create |
29370.767472104646 ns/iter |
29889.875793329633 ns/iter |
0.98 |
URITemplateRouter_Match |
154.57295066632832 ns/iter |
157.8239561241128 ns/iter |
0.98 |
URITemplateRouter_Match_BasePath |
183.8768705067036 ns/iter |
179.97829008643717 ns/iter |
1.02 |
URITemplateRouterView_Restore |
9823.697113070462 ns/iter |
8539.523692594432 ns/iter |
1.15 |
URITemplateRouterView_Match |
124.27889992930339 ns/iter |
122.04302592724987 ns/iter |
1.02 |
URITemplateRouterView_Match_BasePath |
140.76331363451692 ns/iter |
141.4281106644125 ns/iter |
1.00 |
URITemplateRouterView_Arguments |
469.2867548549903 ns/iter |
474.689045809657 ns/iter |
0.99 |
JSONPath_Descendant_Filter_Nested |
1755.903104907512 ns/iter |
1730.5772186084719 ns/iter |
1.01 |
Pointer_Object_Traverse |
32.570171236829644 ns/iter |
30.125354558129963 ns/iter |
1.08 |
Pointer_Object_Try_Traverse |
26.08678882154214 ns/iter |
25.385372339566448 ns/iter |
1.03 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
154.75023842752597 ns/iter |
162.46034809378966 ns/iter |
0.95 |
Pointer_Walker_Schema_ISO_Language |
2960772.8506227196 ns/iter |
2688316.1937984927 ns/iter |
1.10 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1888750.4270270327 ns/iter |
1876320.2635869533 ns/iter |
1.01 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1647056.8873236978 ns/iter |
1710820.7066015436 ns/iter |
0.96 |
Pointer_Position_Tracker_Get_Deeply_Nested |
428.2551689052512 ns/iter |
408.7501875418372 ns/iter |
1.05 |
JSON_Array_Of_Objects_Unique |
385.5638811803773 ns/iter |
425.4581093326693 ns/iter |
0.91 |
JSON_Parse_1 |
9693.449560479889 ns/iter |
9927.27495201583 ns/iter |
0.98 |
JSON_Parse_Real |
7624.523989912078 ns/iter |
7818.260298580734 ns/iter |
0.98 |
JSON_Parse_Decimal |
11144.650832072173 ns/iter |
12806.949358527876 ns/iter |
0.87 |
JSON_Parse_Schema_ISO_Language |
6859370.18750001 ns/iter |
6762895.320388479 ns/iter |
1.01 |
JSON_Parse_Integer |
5678.809565513565 ns/iter |
5742.017088831176 ns/iter |
0.99 |
JSON_Parse_String_NonSSO_Plain |
12306.641920550941 ns/iter |
12204.43467113252 ns/iter |
1.01 |
JSON_Parse_String_SSO_Plain |
5019.062880001002 ns/iter |
5195.4078093854705 ns/iter |
0.97 |
JSON_Parse_String_Escape_Heavy |
24683.90032870436 ns/iter |
26194.97962976847 ns/iter |
0.94 |
JSON_Parse_Object_Short_Keys |
14421.58383671822 ns/iter |
13712.517679643035 ns/iter |
1.05 |
JSON_Parse_Object_Scalar_Properties |
7401.400293178915 ns/iter |
7113.145701173007 ns/iter |
1.04 |
JSON_Parse_Object_Array_Properties |
13205.263093165706 ns/iter |
12474.511270385385 ns/iter |
1.06 |
JSON_Parse_Object_Object_Properties |
12215.661411862298 ns/iter |
12376.339765947534 ns/iter |
0.99 |
JSON_Parse_Nested_Containers |
105363.62017848647 ns/iter |
98720.21502292775 ns/iter |
1.07 |
JSON_From_String_Copy |
19.54002197531893 ns/iter |
18.22806082296505 ns/iter |
1.07 |
JSON_From_String_Temporary |
16.28177693899066 ns/iter |
15.037199484178492 ns/iter |
1.08 |
JSON_Number_To_Double |
20.77393016615296 ns/iter |
22.134134764665106 ns/iter |
0.94 |
JSON_Object_At_Last_Key/8 |
4.185068929347306 ns/iter |
3.815999871822341 ns/iter |
1.10 |
JSON_Object_At_Last_Key/32 |
13.492496185434957 ns/iter |
12.46551562266705 ns/iter |
1.08 |
JSON_Object_At_Last_Key/128 |
47.26702802062967 ns/iter |
48.9506447882994 ns/iter |
0.97 |
JSON_Object_At_Last_Key/512 |
278.92905401409797 ns/iter |
360.1902386909793 ns/iter |
0.77 |
JSON_Fast_Hash_Helm_Chart_Lock |
66.2188003555351 ns/iter |
61.90252835389351 ns/iter |
1.07 |
JSON_Equality_Helm_Chart_Lock |
158.28310066767622 ns/iter |
147.5345098643142 ns/iter |
1.07 |
JSON_Divisible_By_Decimal |
280.88443442783114 ns/iter |
249.04683256201653 ns/iter |
1.13 |
JSON_String_Equal/10 |
5.408296381073997 ns/iter |
5.104974582526262 ns/iter |
1.06 |
JSON_String_Equal/100 |
6.11402918202693 ns/iter |
5.728942532892093 ns/iter |
1.07 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7120258960627784 ns/iter |
0.6252251432802282 ns/iter |
1.14 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
22.01434996919587 ns/iter |
25.196181381104676 ns/iter |
0.87 |
JSON_String_Fast_Hash/10 |
2.463086540226457 ns/iter |
2.2586258955359138 ns/iter |
1.09 |
JSON_String_Fast_Hash/100 |
2.4629147460018466 ns/iter |
2.2594387058483276 ns/iter |
1.09 |
JSON_String_Key_Hash/10 |
1.406818086749694 ns/iter |
1.2472566019875777 ns/iter |
1.13 |
JSON_String_Key_Hash/100 |
14.757641866844223 ns/iter |
12.44773844461235 ns/iter |
1.19 |
JSON_Object_Defines_Miss_Same_Length |
3.166332815053868 ns/iter |
3.1133344381266097 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Small |
3.519673987268406 ns/iter |
3.112989670766638 ns/iter |
1.13 |
JSON_Object_Defines_Miss_Too_Large |
3.1659587139764698 ns/iter |
3.113743059407344 ns/iter |
1.02 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.7034706969556739 ns/iter |
0.6235314644091116 ns/iter |
1.13 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.0558866173223473 ns/iter |
0.9351343777441189 ns/iter |
1.13 |
Regex_Period_Asterisk |
0.7033626474952788 ns/iter |
0.6262044701866849 ns/iter |
1.12 |
Regex_Group_Period_Asterisk_Group |
1.0551514426647652 ns/iter |
0.9350184557155362 ns/iter |
1.13 |
Regex_Period_Plus |
0.7033329835457681 ns/iter |
0.6233095189584561 ns/iter |
1.13 |
Regex_Period |
1.0547391898855691 ns/iter |
0.9343955169553962 ns/iter |
1.13 |
Regex_Caret_Period_Plus_Dollar |
0.703674537819397 ns/iter |
0.6229624244091029 ns/iter |
1.13 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
1.0556642675351546 ns/iter |
0.9343112457527507 ns/iter |
1.13 |
Regex_Caret_Period_Asterisk_Dollar |
0.7036863848827182 ns/iter |
0.6226805710449107 ns/iter |
1.13 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.0550764509283181 ns/iter |
0.934208391357759 ns/iter |
1.13 |
Regex_Caret_X_Hyphen |
3.866760620350529 ns/iter |
3.740359934749894 ns/iter |
1.03 |
Regex_Period_Md_Dollar |
37.09816842758086 ns/iter |
30.183002592832764 ns/iter |
1.23 |
Regex_Caret_Slash_Period_Asterisk |
4.220851026008682 ns/iter |
4.047067189847863 ns/iter |
1.04 |
Regex_Caret_Period_Range_Dollar |
1.7580882341435353 ns/iter |
1.5588114870371552 ns/iter |
1.13 |
Regex_Nested_Backtrack |
40.623549272368614 ns/iter |
38.386851556347224 ns/iter |
1.06 |
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: a52cdbc | Previous: b25f900 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.1860877574962245 ns/iter |
2.186851791425316 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.0437973946523535 ns/iter |
2.49079022682374 ns/iter |
0.82 |
Regex_Period_Asterisk |
2.0216890742159945 ns/iter |
2.491013144922704 ns/iter |
0.81 |
Regex_Group_Period_Asterisk_Group |
2.208938928551078 ns/iter |
2.178569629997004 ns/iter |
1.01 |
Regex_Period_Plus |
2.190707501531901 ns/iter |
2.4905851589642465 ns/iter |
0.88 |
Regex_Period |
2.3050956119210904 ns/iter |
2.8022004878022218 ns/iter |
0.82 |
Regex_Caret_Period_Plus_Dollar |
2.3049975411087242 ns/iter |
2.8022218290532845 ns/iter |
0.82 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.08094467125867 ns/iter |
2.5070297671448407 ns/iter |
0.83 |
Regex_Caret_Period_Asterisk_Dollar |
2.19102826413348 ns/iter |
2.180357097394137 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.0452228451533663 ns/iter |
2.4904369745926265 ns/iter |
0.82 |
Regex_Caret_X_Hyphen |
4.033792915228235 ns/iter |
5.609117517682092 ns/iter |
0.72 |
Regex_Period_Md_Dollar |
24.568038066823696 ns/iter |
28.346375051676162 ns/iter |
0.87 |
Regex_Caret_Slash_Period_Asterisk |
3.7464351608884017 ns/iter |
5.602165046321572 ns/iter |
0.67 |
Regex_Caret_Period_Range_Dollar |
2.9161722211955095 ns/iter |
3.4251231314963086 ns/iter |
0.85 |
Regex_Nested_Backtrack |
36.081819372186885 ns/iter |
41.96671322620837 ns/iter |
0.86 |
JSON_Array_Of_Objects_Unique |
405.52568307661096 ns/iter |
432.80237039939504 ns/iter |
0.94 |
JSON_Parse_1 |
4636.696541910515 ns/iter |
4768.579356772225 ns/iter |
0.97 |
JSON_Parse_Real |
4775.378406271739 ns/iter |
5402.686900909136 ns/iter |
0.88 |
JSON_Parse_Decimal |
7029.380435548217 ns/iter |
7248.9518429148875 ns/iter |
0.97 |
JSON_Parse_Schema_ISO_Language |
3458359.5294112884 ns/iter |
3442328.1176474593 ns/iter |
1.00 |
JSON_Parse_Integer |
3521.45160515007 ns/iter |
3641.0319502997536 ns/iter |
0.97 |
JSON_Parse_String_NonSSO_Plain |
4568.401435890998 ns/iter |
4998.875927995495 ns/iter |
0.91 |
JSON_Parse_String_SSO_Plain |
2348.3384838777138 ns/iter |
2631.3171963985187 ns/iter |
0.89 |
JSON_Parse_String_Escape_Heavy |
15579.158622224693 ns/iter |
14661.748367037048 ns/iter |
1.06 |
JSON_Parse_Object_Short_Keys |
6929.016080930272 ns/iter |
10495.853154084933 ns/iter |
0.66 |
JSON_Parse_Object_Scalar_Properties |
3622.250038779207 ns/iter |
4067.6126589629553 ns/iter |
0.89 |
JSON_Parse_Object_Array_Properties |
5085.257624316968 ns/iter |
5679.662661152886 ns/iter |
0.90 |
JSON_Parse_Object_Object_Properties |
5061.6771850794275 ns/iter |
5448.8821223711275 ns/iter |
0.93 |
JSON_Parse_Nested_Containers |
42002.79735630143 ns/iter |
44290.89141989319 ns/iter |
0.95 |
JSON_From_String_Copy |
15.379979184553832 ns/iter |
19.31318660666557 ns/iter |
0.80 |
JSON_From_String_Temporary |
14.834037064826589 ns/iter |
17.14419718290376 ns/iter |
0.87 |
JSON_Number_To_Double |
20.972075842749756 ns/iter |
23.740827408722726 ns/iter |
0.88 |
JSON_Object_At_Last_Key/8 |
4.704099937556726 ns/iter |
3.823711179224129 ns/iter |
1.23 |
JSON_Object_At_Last_Key/32 |
18.0104699341905 ns/iter |
12.262675707439975 ns/iter |
1.47 |
JSON_Object_At_Last_Key/128 |
73.96951762091469 ns/iter |
48.369411357038366 ns/iter |
1.53 |
JSON_Object_At_Last_Key/512 |
306.14726641271824 ns/iter |
398.9893599047748 ns/iter |
0.77 |
JSON_Fast_Hash_Helm_Chart_Lock |
62.908944786518816 ns/iter |
66.27810762730734 ns/iter |
0.95 |
JSON_Equality_Helm_Chart_Lock |
128.06091395462747 ns/iter |
158.59809685778959 ns/iter |
0.81 |
JSON_Divisible_By_Decimal |
257.905129894855 ns/iter |
264.15372181475504 ns/iter |
0.98 |
JSON_String_Equal/10 |
4.324655375716475 ns/iter |
5.917568272979898 ns/iter |
0.73 |
JSON_String_Equal/100 |
5.474954721360149 ns/iter |
6.544024581987466 ns/iter |
0.84 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.6921903375348931 ns/iter |
0.9390507842320109 ns/iter |
0.74 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
9.793858683155236 ns/iter |
14.924847116193162 ns/iter |
0.66 |
JSON_String_Fast_Hash/10 |
2.593321011050672 ns/iter |
3.11235052949531 ns/iter |
0.83 |
JSON_String_Fast_Hash/100 |
2.592531919634486 ns/iter |
3.110350534757542 ns/iter |
0.83 |
JSON_String_Key_Hash/10 |
1.7290725007951764 ns/iter |
2.732132253975337 ns/iter |
0.63 |
JSON_String_Key_Hash/100 |
6.626702158566567 ns/iter |
9.09206234172823 ns/iter |
0.73 |
JSON_Object_Defines_Miss_Same_Length |
3.4592433201732926 ns/iter |
2.909776723282807 ns/iter |
1.19 |
JSON_Object_Defines_Miss_Too_Small |
4.312077160994374 ns/iter |
3.4350270940727956 ns/iter |
1.26 |
JSON_Object_Defines_Miss_Too_Large |
3.029632680755687 ns/iter |
2.616910381198905 ns/iter |
1.16 |
Pointer_Object_Traverse |
30.299359603636937 ns/iter |
28.508588307241613 ns/iter |
1.06 |
Pointer_Object_Try_Traverse |
34.997829261945284 ns/iter |
30.99438392839627 ns/iter |
1.13 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
163.08702408648364 ns/iter |
217.5493131632524 ns/iter |
0.75 |
Pointer_Walker_Schema_ISO_Language |
2740947.2364338012 ns/iter |
2599515.0528302165 ns/iter |
1.05 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1116517.2535884397 ns/iter |
1218275.152249216 ns/iter |
0.92 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
2027442.340057446 ns/iter |
1600862.7285381134 ns/iter |
1.27 |
Pointer_Position_Tracker_Get_Deeply_Nested |
683.8005469252537 ns/iter |
712.5198468325221 ns/iter |
0.96 |
JSONPath_Descendant_Filter_Nested |
1468.5641417766449 ns/iter |
1651.737799411835 ns/iter |
0.89 |
URITemplateRouter_Create |
29026.5899842186 ns/iter |
31840.36161909951 ns/iter |
0.91 |
URITemplateRouter_Match |
157.25994079078353 ns/iter |
204.84266823263513 ns/iter |
0.77 |
URITemplateRouter_Match_BasePath |
176.58689444426588 ns/iter |
230.9024664571939 ns/iter |
0.76 |
URITemplateRouterView_Restore |
3698.678991454854 ns/iter |
8521.046044329692 ns/iter |
0.43 |
URITemplateRouterView_Match |
127.18895547306148 ns/iter |
142.7219112107116 ns/iter |
0.89 |
URITemplateRouterView_Match_BasePath |
142.30159774341251 ns/iter |
164.17643871686295 ns/iter |
0.87 |
URITemplateRouterView_Arguments |
421.90431339668726 ns/iter |
440.5109250233563 ns/iter |
0.96 |
JSONL_Parse_Large |
9000211.87179589 ns/iter |
9795645.704225278 ns/iter |
0.92 |
JSONL_Parse_Large_GZIP |
10415185.59701563 ns/iter |
11361457.032786928 ns/iter |
0.92 |
JSONLD_Catalog_Annotation_List_Populate |
1221125.5783970556 ns/iter |
1268706.14568347 ns/iter |
0.96 |
JSONLD_Catalog_Materialize |
4102254.6783627453 ns/iter |
4372451.3710692795 ns/iter |
0.94 |
HTML_Build_Table_100000 |
73693716.77778721 ns/iter |
64118400.272718646 ns/iter |
1.15 |
HTML_Render_Table_100000 |
10238878.826086966 ns/iter |
5523174.601626678 ns/iter |
1.85 |
GZIP_Compress_ISO_Language_Set_3_Locations |
31004484.521739196 ns/iter |
33396309.8571422 ns/iter |
0.93 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
5377820.041666344 ns/iter |
4284859.721211764 ns/iter |
1.26 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1862046.9732621543 ns/iter |
1884996.735849001 ns/iter |
0.99 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
351735.6142208697 ns/iter |
355665.37639879255 ns/iter |
0.99 |
JOSE_VerifySignature_RS256 |
49345.61276026745 ns/iter |
58113.17475325108 ns/iter |
0.85 |
JOSE_VerifySignature_ES512 |
2110368.1295179934 ns/iter |
2390321.200680257 ns/iter |
0.88 |
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: a52cdbc | Previous: b25f900 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
5.4934819999994025 ns/iter |
5.407235000000128 ns/iter |
1.02 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
5.023096999998415 ns/iter |
5.1020919999996295 ns/iter |
0.98 |
Regex_Period_Asterisk |
5.015719999998964 ns/iter |
5.129482142858625 ns/iter |
0.98 |
Regex_Group_Period_Asterisk_Group |
5.104003571430229 ns/iter |
5.176404000001185 ns/iter |
0.99 |
Regex_Period_Plus |
4.8474028805462765 ns/iter |
4.782754028533466 ns/iter |
1.01 |
Regex_Period |
5.0839959999984785 ns/iter |
5.0998729999992065 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
4.904644934131338 ns/iter |
4.821275693039857 ns/iter |
1.02 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
5.117205000001377 ns/iter |
5.023910000002161 ns/iter |
1.02 |
Regex_Caret_Period_Asterisk_Dollar |
5.355572999999367 ns/iter |
5.378219000001536 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
5.095658000000185 ns/iter |
5.019917857144459 ns/iter |
1.02 |
Regex_Caret_X_Hyphen |
8.482217633926886 ns/iter |
8.5971517857126 ns/iter |
0.99 |
Regex_Period_Md_Dollar |
45.03146752301689 ns/iter |
45.81618039448808 ns/iter |
0.98 |
Regex_Caret_Slash_Period_Asterisk |
7.997588803581461 ns/iter |
7.85650844707138 ns/iter |
1.02 |
Regex_Caret_Period_Range_Dollar |
5.999784821428631 ns/iter |
5.978633928571802 ns/iter |
1.00 |
Regex_Nested_Backtrack |
56.44867999999405 ns/iter |
56.814883928564896 ns/iter |
0.99 |
JSON_Array_Of_Objects_Unique |
666.4043749998833 ns/iter |
630.3093749999838 ns/iter |
1.06 |
JSON_Parse_1 |
9395.008504424573 ns/iter |
9195.0741291347 ns/iter |
1.02 |
JSON_Parse_Real |
16128.94866071254 ns/iter |
16353.878262575658 ns/iter |
0.99 |
JSON_Parse_Decimal |
11777.567187500892 ns/iter |
11854.166071429972 ns/iter |
0.99 |
JSON_Parse_Schema_ISO_Language |
7422024.44444552 ns/iter |
7699734.444443291 ns/iter |
0.96 |
JSON_Parse_Integer |
6111.607142857776 ns/iter |
6114.66160714258 ns/iter |
1.00 |
JSON_Parse_String_NonSSO_Plain |
7832.819196428784 ns/iter |
7820.860491073286 ns/iter |
1.00 |
JSON_Parse_String_SSO_Plain |
3755.3169424429257 ns/iter |
3714.690290178727 ns/iter |
1.01 |
JSON_Parse_String_Escape_Heavy |
21956.021124720883 ns/iter |
21654.518749997464 ns/iter |
1.01 |
JSON_Parse_Object_Short_Keys |
13230.843749997946 ns/iter |
13389.410714284264 ns/iter |
0.99 |
JSON_Parse_Object_Scalar_Properties |
6869.607142857401 ns/iter |
6820.758928571178 ns/iter |
1.01 |
JSON_Parse_Object_Array_Properties |
11503.996428570776 ns/iter |
11588.970312498503 ns/iter |
0.99 |
JSON_Parse_Object_Object_Properties |
11784.900000002097 ns/iter |
11599.137499999302 ns/iter |
1.02 |
JSON_Parse_Nested_Containers |
79693.43750000896 ns/iter |
78159.84374998562 ns/iter |
1.02 |
JSON_From_String_Copy |
64.27012499999915 ns/iter |
64.61461607143194 ns/iter |
0.99 |
JSON_From_String_Temporary |
59.44938392856004 ns/iter |
60.032139999998435 ns/iter |
0.99 |
JSON_Number_To_Double |
121.24506250000165 ns/iter |
124.0290357142726 ns/iter |
0.98 |
JSON_Object_At_Last_Key/8 |
7.242725446428011 ns/iter |
7.322266071428528 ns/iter |
0.99 |
JSON_Object_At_Last_Key/32 |
24.29626981812578 ns/iter |
25.585268749999557 ns/iter |
0.95 |
JSON_Object_At_Last_Key/128 |
92.74101562500192 ns/iter |
93.14493334174604 ns/iter |
1.00 |
JSON_Object_At_Last_Key/512 |
428.04613384654914 ns/iter |
430.17123908933803 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
109.95114285711745 ns/iter |
105.99191044679806 ns/iter |
1.04 |
JSON_Equality_Helm_Chart_Lock |
251.19328571431004 ns/iter |
253.41671428577683 ns/iter |
0.99 |
JSON_Divisible_By_Decimal |
314.62139290967593 ns/iter |
302.38817400053813 ns/iter |
1.04 |
JSON_String_Equal/10 |
11.131289062500827 ns/iter |
10.810970312501667 ns/iter |
1.03 |
JSON_String_Equal/100 |
12.002031249998879 ns/iter |
12.082942857144221 ns/iter |
0.99 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.5401921428575798 ns/iter |
2.513174285714318 ns/iter |
1.01 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.264487659534929 ns/iter |
15.051593750001755 ns/iter |
0.95 |
JSON_String_Fast_Hash/10 |
6.596893750000277 ns/iter |
6.711674999999267 ns/iter |
0.98 |
JSON_String_Fast_Hash/100 |
6.604364285714886 ns/iter |
6.5993249999983 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
5.416866964284038 ns/iter |
5.550934000000326 ns/iter |
0.98 |
JSON_String_Key_Hash/100 |
11.997304687501043 ns/iter |
12.007817357108825 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.8645167410716095 ns/iter |
3.7898783482136014 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Small |
4.098915801740716 ns/iter |
4.107038100844212 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.785246651786573 ns/iter |
3.9648292410721098 ns/iter |
0.95 |
Pointer_Object_Traverse |
71.37649107142303 ns/iter |
70.66224107142764 ns/iter |
1.01 |
Pointer_Object_Try_Traverse |
71.44551339285853 ns/iter |
74.13058928571152 ns/iter |
0.96 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
187.72463757082525 ns/iter |
166.60927678185365 ns/iter |
1.13 |
Pointer_Walker_Schema_ISO_Language |
10501090.624998711 ns/iter |
11308350.00000019 ns/iter |
0.93 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2376813.2575756945 ns/iter |
2487244.696969569 ns/iter |
0.96 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3610480.882352753 ns/iter |
3771910.1604278376 ns/iter |
0.96 |
Pointer_Position_Tracker_Get_Deeply_Nested |
511.33250674319726 ns/iter |
531.2448104559423 ns/iter |
0.96 |
JSONPath_Descendant_Filter_Nested |
2356.416428572012 ns/iter |
2410.0265513091135 ns/iter |
0.98 |
URITemplateRouter_Create |
40941.280250708034 ns/iter |
40220.62561662208 ns/iter |
1.02 |
URITemplateRouter_Match |
232.674449478332 ns/iter |
240.83917857142623 ns/iter |
0.97 |
URITemplateRouter_Match_BasePath |
271.33897895810014 ns/iter |
273.48515743365203 ns/iter |
0.99 |
URITemplateRouterView_Restore |
33725.97853091439 ns/iter |
35473.8067177338 ns/iter |
0.95 |
URITemplateRouterView_Match |
182.27597872383123 ns/iter |
178.63638202107455 ns/iter |
1.02 |
URITemplateRouterView_Match_BasePath |
206.4040376605389 ns/iter |
201.753999999994 ns/iter |
1.02 |
URITemplateRouterView_Arguments |
534.7503571428547 ns/iter |
541.8797999998333 ns/iter |
0.99 |
JSONL_Parse_Large |
32831820.000001244 ns/iter |
33105260.000002094 ns/iter |
0.99 |
JSONL_Parse_Large_GZIP |
33805905.00000835 ns/iter |
34253809.523804754 ns/iter |
0.99 |
JSONLD_Catalog_Annotation_List_Populate |
2594211.742424098 ns/iter |
2651432.142857045 ns/iter |
0.98 |
JSONLD_Catalog_Materialize |
8128398.8888900345 ns/iter |
7965816.66666801 ns/iter |
1.02 |
HTML_Build_Table_100000 |
90621588.88888107 ns/iter |
93262085.71428652 ns/iter |
0.97 |
HTML_Render_Table_100000 |
7652032.142857479 ns/iter |
7961513.3333340455 ns/iter |
0.96 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36781647.3684271 ns/iter |
36437631.578947775 ns/iter |
1.01 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
9722965.33333368 ns/iter |
10020838.666669078 ns/iter |
0.97 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2109310.033444693 ns/iter |
2109644.062500138 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
622563.3928571434 ns/iter |
643687.4999999418 ns/iter |
0.97 |
JOSE_VerifySignature_RS256 |
21404.009374997204 ns/iter |
21409.018629215418 ns/iter |
1.00 |
JOSE_VerifySignature_ES512 |
1384434.8214287753 ns/iter |
1535551.3392860994 ns/iter |
0.90 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com