Percent-encode literal "%" when turning a JSON Pointer into a URI fragment - #2775
Conversation
…gment Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR fixes JSON Pointer-to-URI conversion for property names containing literal percent signs. Changes:
%20 in a JSON Pointer token from being interpreted as an encoded space. Tests cover literal percentages, encoded-looking sequences, RFC 6901's example, canonicalization, and base-URI round trips.
🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: f653275 | Previous: 5e99d8d | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.183697085016355 ns/iter |
1.9108805947017524 ns/iter |
1.14 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.1803870948254596 ns/iter |
1.9095326511945054 ns/iter |
1.14 |
Regex_Period_Asterisk |
2.1825713888518554 ns/iter |
1.913664007014245 ns/iter |
1.14 |
Regex_Group_Period_Asterisk_Group |
2.1790547288354505 ns/iter |
1.9093789314992886 ns/iter |
1.14 |
Regex_Period_Plus |
2.804333911680515 ns/iter |
3.001515459360952 ns/iter |
0.93 |
Regex_Period |
2.8035703368305316 ns/iter |
3.0094734433763985 ns/iter |
0.93 |
Regex_Caret_Period_Plus_Dollar |
2.8042915311517564 ns/iter |
2.9990761751899466 ns/iter |
0.94 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.8030332550180015 ns/iter |
2.999414797744229 ns/iter |
0.93 |
Regex_Caret_Period_Asterisk_Dollar |
3.1123206256186724 ns/iter |
1.909710684810869 ns/iter |
1.63 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.1126662037144333 ns/iter |
1.9091450894306559 ns/iter |
1.63 |
Regex_Caret_X_Hyphen |
6.545588077574436 ns/iter |
5.187345415144452 ns/iter |
1.26 |
Regex_Period_Md_Dollar |
26.955465210651035 ns/iter |
20.35281259556535 ns/iter |
1.32 |
Regex_Caret_Slash_Period_Asterisk |
6.852951742477799 ns/iter |
5.181046667085195 ns/iter |
1.32 |
Regex_Caret_Period_Range_Dollar |
3.7378827502311247 ns/iter |
2.9983492022668186 ns/iter |
1.25 |
Regex_Nested_Backtrack |
38.317123307739756 ns/iter |
30.072930869737302 ns/iter |
1.27 |
JSON_Array_Of_Objects_Unique |
452.28249615862575 ns/iter |
367.866566854392 ns/iter |
1.23 |
JSON_Parse_1 |
4583.340415767994 ns/iter |
3444.2109311230283 ns/iter |
1.33 |
JSON_Parse_Real |
5015.557670675627 ns/iter |
3852.4882929889577 ns/iter |
1.30 |
JSON_Parse_Decimal |
7254.513353915429 ns/iter |
5738.639846020183 ns/iter |
1.26 |
JSON_Parse_Schema_ISO_Language |
3240187.211981552 ns/iter |
2673194.5000000005 ns/iter |
1.21 |
JSON_Parse_Integer |
3474.416316006434 ns/iter |
2920.1220033230074 ns/iter |
1.19 |
JSON_Parse_String_NonSSO_Plain |
2961.7592730441074 ns/iter |
2429.9273028363923 ns/iter |
1.22 |
JSON_Parse_String_SSO_Plain |
2593.88541624283 ns/iter |
2231.3004789489314 ns/iter |
1.16 |
JSON_Parse_String_Escape_Heavy |
12130.512712304406 ns/iter |
9285.221106392175 ns/iter |
1.31 |
JSON_Parse_Object_Short_Keys |
7708.581987721496 ns/iter |
6230.558753168251 ns/iter |
1.24 |
JSON_Parse_Object_Scalar_Properties |
3937.3075941827988 ns/iter |
3224.2097300326986 ns/iter |
1.22 |
JSON_Parse_Object_Array_Properties |
5324.514036258068 ns/iter |
4247.423581447492 ns/iter |
1.25 |
JSON_Parse_Object_Object_Properties |
5306.848663186626 ns/iter |
4240.653736025324 ns/iter |
1.25 |
JSON_Parse_Nested_Containers |
34689.22625241519 ns/iter |
26421.142650638725 ns/iter |
1.31 |
JSON_From_String_Copy |
11.050843404018309 ns/iter |
9.416932099080402 ns/iter |
1.17 |
JSON_From_String_Temporary |
9.897587858959971 ns/iter |
7.740489011744258 ns/iter |
1.28 |
JSON_Number_To_Double |
22.850096112029238 ns/iter |
17.70735710819678 ns/iter |
1.29 |
JSON_Object_At_Last_Key/8 |
3.9374560776019574 ns/iter |
3.1138532354068507 ns/iter |
1.26 |
JSON_Object_At_Last_Key/32 |
12.303333930910192 ns/iter |
10.341970776767075 ns/iter |
1.19 |
JSON_Object_At_Last_Key/128 |
49.19202151393557 ns/iter |
36.50938767230744 ns/iter |
1.35 |
JSON_Object_At_Last_Key/512 |
382.8567227104489 ns/iter |
296.99853155547663 ns/iter |
1.29 |
JSON_Fast_Hash_Helm_Chart_Lock |
54.50790271302851 ns/iter |
51.27232371853911 ns/iter |
1.06 |
JSON_Equality_Helm_Chart_Lock |
154.5542665563769 ns/iter |
122.37434456416257 ns/iter |
1.26 |
JSON_Divisible_By_Decimal |
248.60256390732187 ns/iter |
194.79588742305106 ns/iter |
1.28 |
JSON_String_Equal/10 |
5.927355287228565 ns/iter |
4.364922414853175 ns/iter |
1.36 |
JSON_String_Equal/100 |
6.5532126965126345 ns/iter |
5.013301123858274 ns/iter |
1.31 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.935817639804633 ns/iter |
0.8195545412322498 ns/iter |
1.14 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.985273175624434 ns/iter |
18.00339529464195 ns/iter |
0.83 |
JSON_String_Fast_Hash/10 |
2.179276163144336 ns/iter |
1.6370111411297559 ns/iter |
1.33 |
JSON_String_Fast_Hash/100 |
2.1858132432541004 ns/iter |
1.6384051575066763 ns/iter |
1.33 |
JSON_String_Key_Hash/10 |
2.7592844801951606 ns/iter |
9.813440368509166 ns/iter |
0.28 |
JSON_String_Key_Hash/100 |
9.025284883616852 ns/iter |
19.35694532870388 ns/iter |
0.47 |
JSON_Object_Defines_Miss_Same_Length |
3.470542679939723 ns/iter |
3.388495496092756 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Small |
3.1124235407085723 ns/iter |
2.4953642440298798 ns/iter |
1.25 |
JSON_Object_Defines_Miss_Too_Large |
2.732245015226516 ns/iter |
2.265204256533083 ns/iter |
1.21 |
Pointer_Object_Traverse |
28.775211540162402 ns/iter |
23.943271416947724 ns/iter |
1.20 |
Pointer_Object_Try_Traverse |
30.532064156535643 ns/iter |
25.41180454717164 ns/iter |
1.20 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
170.83049023862708 ns/iter |
144.82931878404372 ns/iter |
1.18 |
Pointer_Walker_Schema_ISO_Language |
1574628.07356325 ns/iter |
1199829.6419965546 ns/iter |
1.31 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1239152.394690292 ns/iter |
993042.4212034282 ns/iter |
1.25 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1689880.567632832 ns/iter |
1257964.428853777 ns/iter |
1.34 |
Pointer_Position_Tracker_Get_Deeply_Nested |
632.3511212173473 ns/iter |
541.4755470586128 ns/iter |
1.17 |
JSONPath_Descendant_Filter_Nested |
1517.8289058078608 ns/iter |
1195.6104507105103 ns/iter |
1.27 |
URITemplateRouter_Create |
24692.444266126215 ns/iter |
16477.01514483871 ns/iter |
1.50 |
URITemplateRouter_Match |
179.76979863829357 ns/iter |
130.95225811024287 ns/iter |
1.37 |
URITemplateRouter_Match_BasePath |
202.98520269280692 ns/iter |
156.9959801643012 ns/iter |
1.29 |
URITemplateRouterView_Restore |
8480.604941785085 ns/iter |
7617.385224695719 ns/iter |
1.11 |
URITemplateRouterView_Match |
139.37101460422417 ns/iter |
110.2008430000851 ns/iter |
1.26 |
URITemplateRouterView_Match_BasePath |
161.91307368570318 ns/iter |
121.62790030601595 ns/iter |
1.33 |
URITemplateRouterView_Arguments |
421.5093392535609 ns/iter |
348.57160531182336 ns/iter |
1.21 |
JSONL_Parse_Large |
9094668.649350315 ns/iter |
7028690.050505031 ns/iter |
1.29 |
JSONL_Parse_Large_GZIP |
10661725.303030131 ns/iter |
8277983.642857394 ns/iter |
1.29 |
JSONLD_Catalog_Annotation_List_Populate |
607563.4839270507 ns/iter |
453572.16342411516 ns/iter |
1.34 |
JSONLD_Catalog_Materialize |
3709250.5947366827 ns/iter |
2654322.431297699 ns/iter |
1.40 |
HTML_Build_Table_100000 |
57566840.454543665 ns/iter |
51902753.00000079 ns/iter |
1.11 |
HTML_Render_Table_100000 |
1967505.308123211 ns/iter |
1825088.1784777048 ns/iter |
1.08 |
GZIP_Compress_ISO_Language_Set_3_Locations |
33604568.142858885 ns/iter |
27738372.479999498 ns/iter |
1.21 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4353281.537037093 ns/iter |
3301881.816037757 ns/iter |
1.32 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1887845.8840970907 ns/iter |
1654043.9007092004 ns/iter |
1.14 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
352394.0050327253 ns/iter |
214394.1141370849 ns/iter |
1.64 |
JOSE_VerifySignature_RS256 |
56867.92958892585 ns/iter |
49887.55162412902 ns/iter |
1.14 |
JOSE_VerifySignature_ES512 |
2422637.4275862137 ns/iter |
2230847.8853502837 ns/iter |
1.09 |
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: f653275 | Previous: 5e99d8d | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
22099.494426750538 ns/iter |
22169.296377325267 ns/iter |
1.00 |
JOSE_VerifySignature_ES512 |
577769.3960558781 ns/iter |
575728.3078189199 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36676536.21052498 ns/iter |
36750678.789474025 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4138221.9473682162 ns/iter |
4291608.419753013 ns/iter |
0.96 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2042094.329446114 ns/iter |
2043008.4810496173 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
376809.59051726246 ns/iter |
380767.96713361866 ns/iter |
0.99 |
HTML_Build_Table_100000 |
54632660.58333242 ns/iter |
55811317.09090993 ns/iter |
0.98 |
HTML_Render_Table_100000 |
1845561.2512819895 ns/iter |
1978710.4901960918 ns/iter |
0.93 |
JSONLD_Catalog_Annotation_List_Populate |
676840.5271844317 ns/iter |
672650.7052631591 ns/iter |
1.01 |
JSONLD_Catalog_Materialize |
3460062.3200000767 ns/iter |
3547668.625 ns/iter |
0.98 |
JSONL_Parse_Large |
10019428.757142836 ns/iter |
10765770.523077069 ns/iter |
0.93 |
JSONL_Parse_Large_GZIP |
11291728.274193063 ns/iter |
12095840.103448307 ns/iter |
0.93 |
URITemplateRouter_Create |
20745.247816240633 ns/iter |
21185.295304453164 ns/iter |
0.98 |
URITemplateRouter_Match |
159.51122809881386 ns/iter |
159.20617383791253 ns/iter |
1.00 |
URITemplateRouter_Match_BasePath |
184.65618813362997 ns/iter |
185.66706941884578 ns/iter |
0.99 |
URITemplateRouterView_Restore |
8423.234772860054 ns/iter |
8676.72266909058 ns/iter |
0.97 |
URITemplateRouterView_Match |
124.55042004755215 ns/iter |
124.59068325512492 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
150.25649271546303 ns/iter |
148.8783437237304 ns/iter |
1.01 |
URITemplateRouterView_Arguments |
474.6732635743672 ns/iter |
469.9597115128777 ns/iter |
1.01 |
JSONPath_Descendant_Filter_Nested |
1618.2793965379137 ns/iter |
1595.4735294931465 ns/iter |
1.01 |
Pointer_Object_Traverse |
25.00801101853468 ns/iter |
24.958663800331475 ns/iter |
1.00 |
Pointer_Object_Try_Traverse |
23.096323449616296 ns/iter |
23.210738813714997 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
129.16609209462897 ns/iter |
129.46031917751472 ns/iter |
1.00 |
Pointer_Walker_Schema_ISO_Language |
1400351.07243458 ns/iter |
1393076.3821138418 ns/iter |
1.01 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1194213.023809545 ns/iter |
1212635.506825899 ns/iter |
0.98 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1701204.8932039675 ns/iter |
1727607.1082474452 ns/iter |
0.98 |
Pointer_Position_Tracker_Get_Deeply_Nested |
603.7669176082516 ns/iter |
600.817717748375 ns/iter |
1.00 |
JSON_Array_Of_Objects_Unique |
463.11410442969304 ns/iter |
462.2123638174227 ns/iter |
1.00 |
JSON_Parse_1 |
5281.958410582034 ns/iter |
5476.6151213367575 ns/iter |
0.96 |
JSON_Parse_Real |
5782.005836993571 ns/iter |
5636.795936296087 ns/iter |
1.03 |
JSON_Parse_Decimal |
10469.755514047723 ns/iter |
10464.703525473646 ns/iter |
1.00 |
JSON_Parse_Schema_ISO_Language |
3547503.5612248527 ns/iter |
3686160.1058200193 ns/iter |
0.96 |
JSON_Parse_Integer |
3734.4828536713853 ns/iter |
3709.9236335560245 ns/iter |
1.01 |
JSON_Parse_String_NonSSO_Plain |
3257.6975703178746 ns/iter |
3308.4860149061265 ns/iter |
0.98 |
JSON_Parse_String_SSO_Plain |
2989.955242639516 ns/iter |
3019.811034405224 ns/iter |
0.99 |
JSON_Parse_String_Escape_Heavy |
16662.949730914926 ns/iter |
16702.004093386222 ns/iter |
1.00 |
JSON_Parse_Object_Short_Keys |
8597.080856766075 ns/iter |
8523.563011177317 ns/iter |
1.01 |
JSON_Parse_Object_Scalar_Properties |
4339.6357424362795 ns/iter |
4352.300782489972 ns/iter |
1.00 |
JSON_Parse_Object_Array_Properties |
6488.435733051712 ns/iter |
6501.1729740291485 ns/iter |
1.00 |
JSON_Parse_Object_Object_Properties |
6529.293678181897 ns/iter |
6712.5452707815175 ns/iter |
0.97 |
JSON_Parse_Nested_Containers |
39556.99175234689 ns/iter |
39106.40319964494 ns/iter |
1.01 |
JSON_From_String_Copy |
8.54409094280631 ns/iter |
8.740468053486632 ns/iter |
0.98 |
JSON_From_String_Temporary |
7.270451211893642 ns/iter |
7.8985897756096595 ns/iter |
0.92 |
JSON_Number_To_Double |
20.586918202737056 ns/iter |
20.601647310530133 ns/iter |
1.00 |
JSON_Object_At_Last_Key/8 |
3.749603574654424 ns/iter |
3.7444389498609323 ns/iter |
1.00 |
JSON_Object_At_Last_Key/32 |
11.94527777742397 ns/iter |
11.902277031794227 ns/iter |
1.00 |
JSON_Object_At_Last_Key/128 |
48.6082226713566 ns/iter |
48.64765213376281 ns/iter |
1.00 |
JSON_Object_At_Last_Key/512 |
357.99569076138437 ns/iter |
358.3195192226842 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
72.03367195406801 ns/iter |
71.95080367739482 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
147.87397092611914 ns/iter |
147.8737365400751 ns/iter |
1.00 |
JSON_Divisible_By_Decimal |
257.16191792848366 ns/iter |
260.6469157322396 ns/iter |
0.99 |
JSON_String_Equal/10 |
5.378329087078508 ns/iter |
5.375151527558992 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.0066574128670895 ns/iter |
6.001074971453463 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7404975838269368 ns/iter |
0.7402614105893964 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.20652253985137 ns/iter |
25.195855213129256 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
3.1559533101652986 ns/iter |
3.154109260877272 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
3.155059021290991 ns/iter |
3.1584708549526357 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.5597703986261433 ns/iter |
1.6212054868701333 ns/iter |
0.96 |
JSON_String_Key_Hash/100 |
12.445261006999287 ns/iter |
12.441237074020606 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.42796481545761 ns/iter |
3.4261652590666807 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.1164096866024598 ns/iter |
3.11351100962208 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.4248598921651796 ns/iter |
3.4477353811948204 ns/iter |
0.99 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.6233969797315566 ns/iter |
0.6231294522107318 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.623426113108698 ns/iter |
0.6228978900365749 ns/iter |
1.00 |
Regex_Period_Asterisk |
0.6232986902461547 ns/iter |
0.6227332126465838 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
0.6232940935746961 ns/iter |
0.6228273745850488 ns/iter |
1.00 |
Regex_Period_Plus |
0.6234537067398694 ns/iter |
0.6232777968910299 ns/iter |
1.00 |
Regex_Period |
0.6252497761917849 ns/iter |
0.6230792323166972 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
0.6223517132739212 ns/iter |
0.6236865616158166 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.6221024045743683 ns/iter |
0.6223911013447395 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
0.6309130219050761 ns/iter |
0.6223708053792885 ns/iter |
1.01 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.6236921196575415 ns/iter |
0.6227380669504328 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
3.7405577439890303 ns/iter |
3.7829895137891465 ns/iter |
0.99 |
Regex_Period_Md_Dollar |
27.16677199759972 ns/iter |
46.17964585418619 ns/iter |
0.59 |
Regex_Caret_Slash_Period_Asterisk |
4.0474501074939075 ns/iter |
4.047885803161206 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
1.2468720456518099 ns/iter |
1.2497296055562068 ns/iter |
1.00 |
Regex_Nested_Backtrack |
36.85044592340422 ns/iter |
40.644126285987134 ns/iter |
0.91 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
All reported issues were addressed across 8 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
There was a problem hiding this comment.
Benchmark (windows/msvc)
Details
| Benchmark suite | Current: f653275 | Previous: 5e99d8d | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.567414642857102 ns/iter |
2.395997187500143 ns/iter |
1.07 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.644039595853649 ns/iter |
2.231979375000037 ns/iter |
1.18 |
Regex_Period_Asterisk |
2.427831159630428 ns/iter |
2.1932758904090095 ns/iter |
1.11 |
Regex_Group_Period_Asterisk_Group |
2.447982142857086 ns/iter |
2.2551472073042125 ns/iter |
1.09 |
Regex_Period_Plus |
2.553692185220183 ns/iter |
2.2870237500001167 ns/iter |
1.12 |
Regex_Period |
2.595817274467796 ns/iter |
2.1975987499999405 ns/iter |
1.18 |
Regex_Caret_Period_Plus_Dollar |
2.60031392624979 ns/iter |
2.2477010714283097 ns/iter |
1.16 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.6750835690399217 ns/iter |
2.2720389483571544 ns/iter |
1.18 |
Regex_Caret_Period_Asterisk_Dollar |
2.428268571428508 ns/iter |
2.2336046875000903 ns/iter |
1.09 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.438399662456956 ns/iter |
2.2013656249999514 ns/iter |
1.11 |
Regex_Caret_X_Hyphen |
5.883408035713395 ns/iter |
3.2676462441653302 ns/iter |
1.80 |
Regex_Period_Md_Dollar |
31.548790178571753 ns/iter |
22.1619640383726 ns/iter |
1.42 |
Regex_Caret_Slash_Period_Asterisk |
5.565525892857336 ns/iter |
3.0182335700815313 ns/iter |
1.84 |
Regex_Caret_Period_Range_Dollar |
3.380007192781217 ns/iter |
2.4574903571427904 ns/iter |
1.38 |
Regex_Nested_Backtrack |
44.39671875000073 ns/iter |
30.29735477545901 ns/iter |
1.47 |
JSON_Array_Of_Objects_Unique |
513.587321428588 ns/iter |
405.8079241071282 ns/iter |
1.27 |
JSON_Parse_1 |
8227.13504464342 ns/iter |
5749.9642857144245 ns/iter |
1.43 |
JSON_Parse_Real |
11793.516071429216 ns/iter |
8707.643269448386 ns/iter |
1.35 |
JSON_Parse_Decimal |
9114.46823898008 ns/iter |
6742.128571428704 ns/iter |
1.35 |
JSON_Parse_Schema_ISO_Language |
8150287.777777976 ns/iter |
7270091.071429111 ns/iter |
1.12 |
JSON_Parse_Integer |
4778.780309777411 ns/iter |
3478.7080869789897 ns/iter |
1.37 |
JSON_Parse_String_NonSSO_Plain |
7120.1294642848325 ns/iter |
4861.307398488721 ns/iter |
1.46 |
JSON_Parse_String_SSO_Plain |
2963.22517165803 ns/iter |
2414.7996874997802 ns/iter |
1.23 |
JSON_Parse_String_Escape_Heavy |
23816.938427026675 ns/iter |
16021.524553571404 ns/iter |
1.49 |
JSON_Parse_Object_Short_Keys |
9212.080303213366 ns/iter |
7793.364285713469 ns/iter |
1.18 |
JSON_Parse_Object_Scalar_Properties |
4831.739802990996 ns/iter |
4036.9564965065315 ns/iter |
1.20 |
JSON_Parse_Object_Array_Properties |
8846.064526497823 ns/iter |
6959.6428571434235 ns/iter |
1.27 |
JSON_Parse_Object_Object_Properties |
8964.855960465578 ns/iter |
7102.914285714031 ns/iter |
1.26 |
JSON_Parse_Nested_Containers |
65039.848214283316 ns/iter |
49564.7384445012 ns/iter |
1.31 |
JSON_From_String_Copy |
48.504467978768716 ns/iter |
35.63166136853972 ns/iter |
1.36 |
JSON_From_String_Temporary |
53.37605000000849 ns/iter |
42.799637500003485 ns/iter |
1.25 |
JSON_Number_To_Double |
88.51044247721576 ns/iter |
62.48707142857159 ns/iter |
1.42 |
JSON_Object_At_Last_Key/8 |
6.942120535714683 ns/iter |
6.000441964285333 ns/iter |
1.16 |
JSON_Object_At_Last_Key/32 |
21.208425000001085 ns/iter |
23.520773174990865 ns/iter |
0.90 |
JSON_Object_At_Last_Key/128 |
93.54130832404272 ns/iter |
47.61483026150098 ns/iter |
1.96 |
JSON_Object_At_Last_Key/512 |
320.19075892856716 ns/iter |
144.49758506706291 ns/iter |
2.22 |
JSON_Fast_Hash_Helm_Chart_Lock |
80.68110491071019 ns/iter |
62.1616785714301 ns/iter |
1.30 |
JSON_Equality_Helm_Chart_Lock |
204.26234579185478 ns/iter |
143.73569894037797 ns/iter |
1.42 |
JSON_Divisible_By_Decimal |
271.17346299882735 ns/iter |
193.2915360137633 ns/iter |
1.40 |
JSON_String_Equal/10 |
8.347003348214699 ns/iter |
6.521520535714436 ns/iter |
1.28 |
JSON_String_Equal/100 |
11.057792187498805 ns/iter |
8.097218750000579 ns/iter |
1.37 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.192179375000002 ns/iter |
0.9835165174181271 ns/iter |
1.21 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
9.384922725959019 ns/iter |
7.606103571429149 ns/iter |
1.23 |
JSON_String_Fast_Hash/10 |
3.819181212177496 ns/iter |
2.5067592857141108 ns/iter |
1.52 |
JSON_String_Fast_Hash/100 |
3.835171874999916 ns/iter |
2.459602142857469 ns/iter |
1.56 |
JSON_String_Key_Hash/10 |
3.2308621925483942 ns/iter |
1.9805855374827241 ns/iter |
1.63 |
JSON_String_Key_Hash/100 |
7.663036830356518 ns/iter |
6.538740178570939 ns/iter |
1.17 |
JSON_Object_Defines_Miss_Same_Length |
4.979368749999935 ns/iter |
1.516374107142734 ns/iter |
3.28 |
JSON_Object_Defines_Miss_Too_Small |
4.473656929628918 ns/iter |
1.6156132153674982 ns/iter |
2.77 |
JSON_Object_Defines_Miss_Too_Large |
4.987628000000086 ns/iter |
1.61141540178557 ns/iter |
3.10 |
Pointer_Object_Traverse |
47.99892964283828 ns/iter |
37.77388861118092 ns/iter |
1.27 |
Pointer_Object_Try_Traverse |
52.6533900000004 ns/iter |
49.24266508556062 ns/iter |
1.07 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
194.02304714183126 ns/iter |
126.05339285715088 ns/iter |
1.54 |
Pointer_Walker_Schema_ISO_Language |
10946215.625001088 ns/iter |
9385927.999999996 ns/iter |
1.17 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2151888.7500000973 ns/iter |
2248193.571428406 ns/iter |
0.96 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3988726.256983169 ns/iter |
3661098.3240220193 ns/iter |
1.09 |
Pointer_Position_Tracker_Get_Deeply_Nested |
553.6558637386971 ns/iter |
475.1905479545127 ns/iter |
1.17 |
JSONPath_Descendant_Filter_Nested |
1941.429421238105 ns/iter |
1355.3549976094491 ns/iter |
1.43 |
URITemplateRouter_Create |
40141.82577911696 ns/iter |
27842.39222146621 ns/iter |
1.44 |
URITemplateRouter_Match |
247.68482726732924 ns/iter |
187.25492244397904 ns/iter |
1.32 |
URITemplateRouter_Match_BasePath |
284.6836078266207 ns/iter |
205.65908418985202 ns/iter |
1.38 |
URITemplateRouterView_Restore |
27202.907142858683 ns/iter |
13200.823214284746 ns/iter |
2.06 |
URITemplateRouterView_Match |
174.49320811338424 ns/iter |
129.8603749999927 ns/iter |
1.34 |
URITemplateRouterView_Match_BasePath |
189.27783832839063 ns/iter |
146.1540178571395 ns/iter |
1.30 |
URITemplateRouterView_Arguments |
448.3664848125008 ns/iter |
347.2315362086291 ns/iter |
1.29 |
JSONL_Parse_Large |
27584945.83333023 ns/iter |
17880051.3513493 ns/iter |
1.54 |
JSONL_Parse_Large_GZIP |
27776531.99999804 ns/iter |
18293705.405407973 ns/iter |
1.52 |
JSONLD_Catalog_Annotation_List_Populate |
3211648.72881364 ns/iter |
2406063.2107025613 ns/iter |
1.33 |
JSONLD_Catalog_Materialize |
8556830.666667944 ns/iter |
5131249.107143228 ns/iter |
1.67 |
HTML_Build_Table_100000 |
98253442.85713658 ns/iter |
84041557.1428496 ns/iter |
1.17 |
HTML_Render_Table_100000 |
12861332.14285761 ns/iter |
11556837.500001343 ns/iter |
1.11 |
GZIP_Compress_ISO_Language_Set_3_Locations |
35190064.99999477 ns/iter |
24032886.666664883 ns/iter |
1.46 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
12152592.1875012 ns/iter |
11364496.428571766 ns/iter |
1.07 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2089288.6956523622 ns/iter |
1534554.241071565 ns/iter |
1.36 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
649326.9642856856 ns/iter |
612729.3749999906 ns/iter |
1.06 |
JOSE_VerifySignature_RS256 |
20232.15117992125 ns/iter |
14816.073365743396 ns/iter |
1.37 |
JOSE_VerifySignature_ES512 |
1198132.3962516782 ns/iter |
798105.1339284966 ns/iter |
1.50 |
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: f653275 | Previous: 5e99d8d | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.023285018163678 ns/iter |
2.407121157622561 ns/iter |
0.84 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.9562008835448563 ns/iter |
2.1849792926867613 ns/iter |
0.90 |
Regex_Period_Asterisk |
1.916569720007418 ns/iter |
2.0209696838263906 ns/iter |
0.95 |
Regex_Group_Period_Asterisk_Group |
1.9255429754508016 ns/iter |
1.993147885030145 ns/iter |
0.97 |
Regex_Period_Plus |
2.8211899728175687 ns/iter |
2.415982680013795 ns/iter |
1.17 |
Regex_Period |
2.5561133871471973 ns/iter |
2.416726350630771 ns/iter |
1.06 |
Regex_Caret_Period_Plus_Dollar |
2.747765877731084 ns/iter |
2.479453156197898 ns/iter |
1.11 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.8019512140211815 ns/iter |
2.3890808683961033 ns/iter |
1.17 |
Regex_Caret_Period_Asterisk_Dollar |
2.376785472683519 ns/iter |
2.3472021774749474 ns/iter |
1.01 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.9128852315964018 ns/iter |
1.9393372050925408 ns/iter |
0.99 |
Regex_Caret_X_Hyphen |
7.680450719464437 ns/iter |
6.882650363600081 ns/iter |
1.12 |
Regex_Period_Md_Dollar |
22.03415231172793 ns/iter |
23.529513864634662 ns/iter |
0.94 |
Regex_Caret_Slash_Period_Asterisk |
5.645755567633143 ns/iter |
5.372202682851167 ns/iter |
1.05 |
Regex_Caret_Period_Range_Dollar |
2.608003369650888 ns/iter |
2.5123678368440117 ns/iter |
1.04 |
Regex_Nested_Backtrack |
31.32495218584959 ns/iter |
31.075184740587858 ns/iter |
1.01 |
JSON_Array_Of_Objects_Unique |
447.8834712618024 ns/iter |
441.2967617455635 ns/iter |
1.01 |
JSON_Parse_1 |
3384.3379573456145 ns/iter |
4239.2659066245105 ns/iter |
0.80 |
JSON_Parse_Real |
6002.777599582603 ns/iter |
7124.042423128563 ns/iter |
0.84 |
JSON_Parse_Decimal |
5829.3087326666255 ns/iter |
6906.326079908787 ns/iter |
0.84 |
JSON_Parse_Schema_ISO_Language |
2586021.50974001 ns/iter |
2760303.9772728696 ns/iter |
0.94 |
JSON_Parse_Integer |
3967.7642015981314 ns/iter |
3397.0895317470927 ns/iter |
1.17 |
JSON_Parse_String_NonSSO_Plain |
3415.3990742277642 ns/iter |
3522.887323943651 ns/iter |
0.97 |
JSON_Parse_String_SSO_Plain |
1829.4760171467126 ns/iter |
2085.407263239695 ns/iter |
0.88 |
JSON_Parse_String_Escape_Heavy |
18022.379207178845 ns/iter |
20036.378504673132 ns/iter |
0.90 |
JSON_Parse_Object_Short_Keys |
6110.846107307416 ns/iter |
7411.253095051205 ns/iter |
0.82 |
JSON_Parse_Object_Scalar_Properties |
3355.6164387484982 ns/iter |
3466.6073642102806 ns/iter |
0.97 |
JSON_Parse_Object_Array_Properties |
4181.62067377199 ns/iter |
4393.214226692058 ns/iter |
0.95 |
JSON_Parse_Object_Object_Properties |
4067.252618611062 ns/iter |
4842.919138696928 ns/iter |
0.84 |
JSON_Parse_Nested_Containers |
27203.841293702684 ns/iter |
30789.868940530072 ns/iter |
0.88 |
JSON_From_String_Copy |
12.298471144004246 ns/iter |
14.237961959505112 ns/iter |
0.86 |
JSON_From_String_Temporary |
7.6039244365952845 ns/iter |
8.018495748597415 ns/iter |
0.95 |
JSON_Number_To_Double |
39.604530032794344 ns/iter |
48.14570978611161 ns/iter |
0.82 |
JSON_Object_At_Last_Key/8 |
4.074450432383362 ns/iter |
5.907578532340889 ns/iter |
0.69 |
JSON_Object_At_Last_Key/32 |
11.889759440422308 ns/iter |
16.768224345408846 ns/iter |
0.71 |
JSON_Object_At_Last_Key/128 |
52.890138851193726 ns/iter |
73.77266502439569 ns/iter |
0.72 |
JSON_Object_At_Last_Key/512 |
180.5463978970771 ns/iter |
216.15053179203392 ns/iter |
0.84 |
JSON_Fast_Hash_Helm_Chart_Lock |
56.54244473516965 ns/iter |
74.26212238719565 ns/iter |
0.76 |
JSON_Equality_Helm_Chart_Lock |
157.36123336124606 ns/iter |
199.8341327901817 ns/iter |
0.79 |
JSON_Divisible_By_Decimal |
170.58305322069492 ns/iter |
195.67124291340286 ns/iter |
0.87 |
JSON_String_Equal/10 |
6.58394610837879 ns/iter |
9.004039209200975 ns/iter |
0.73 |
JSON_String_Equal/100 |
6.552067107668073 ns/iter |
8.155323555892458 ns/iter |
0.80 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.3416303249200004 ns/iter |
0.36590688915796316 ns/iter |
0.93 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.4355613833777 ns/iter |
3.572528797660076 ns/iter |
0.96 |
JSON_String_Fast_Hash/10 |
2.486462562345304 ns/iter |
2.6317706059498063 ns/iter |
0.94 |
JSON_String_Fast_Hash/100 |
2.270393903070308 ns/iter |
2.3339621258322154 ns/iter |
0.97 |
JSON_String_Key_Hash/10 |
1.9430422992162872 ns/iter |
1.90880395192336 ns/iter |
1.02 |
JSON_String_Key_Hash/100 |
2.3897259367270407 ns/iter |
2.5066375210861414 ns/iter |
0.95 |
JSON_Object_Defines_Miss_Same_Length |
3.5042060155328327 ns/iter |
3.337614327492526 ns/iter |
1.05 |
JSON_Object_Defines_Miss_Too_Small |
2.939119242358209 ns/iter |
3.115179722813428 ns/iter |
0.94 |
JSON_Object_Defines_Miss_Too_Large |
2.9042277429925707 ns/iter |
3.2627701522076187 ns/iter |
0.89 |
Pointer_Object_Traverse |
51.38416671691707 ns/iter |
25.189759516010614 ns/iter |
2.04 |
Pointer_Object_Try_Traverse |
40.15861902585892 ns/iter |
43.63104226336958 ns/iter |
0.92 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
247.41082975756464 ns/iter |
170.0709232594914 ns/iter |
1.45 |
Pointer_Walker_Schema_ISO_Language |
3171409.0909094224 ns/iter |
1597508.1392649484 ns/iter |
1.99 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2031109.857482388 ns/iter |
1140282.8431372137 ns/iter |
1.78 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
2162398.134969324 ns/iter |
1371868.1585820927 ns/iter |
1.58 |
Pointer_Position_Tracker_Get_Deeply_Nested |
748.1209690429764 ns/iter |
429.336801540141 ns/iter |
1.74 |
JSONPath_Descendant_Filter_Nested |
1860.6763603746099 ns/iter |
1630.1554988922676 ns/iter |
1.14 |
URITemplateRouter_Create |
22788.6341694582 ns/iter |
21346.503994724106 ns/iter |
1.07 |
URITemplateRouter_Match |
197.45019742948955 ns/iter |
191.7240343214903 ns/iter |
1.03 |
URITemplateRouter_Match_BasePath |
236.42515617867429 ns/iter |
235.61568386754868 ns/iter |
1.00 |
URITemplateRouterView_Restore |
12386.442377546953 ns/iter |
14660.245635363168 ns/iter |
0.84 |
URITemplateRouterView_Match |
154.62570264781755 ns/iter |
156.53224549468325 ns/iter |
0.99 |
URITemplateRouterView_Match_BasePath |
192.49427817665583 ns/iter |
151.99922666178128 ns/iter |
1.27 |
URITemplateRouterView_Arguments |
662.189320917628 ns/iter |
599.585971487641 ns/iter |
1.10 |
JSONL_Parse_Large |
7806611.301371299 ns/iter |
6923930.549549384 ns/iter |
1.13 |
JSONL_Parse_Large_GZIP |
10557595.385541873 ns/iter |
8311303.91764699 ns/iter |
1.27 |
JSONLD_Catalog_Annotation_List_Populate |
585803.3938519692 ns/iter |
736349.827056094 ns/iter |
0.80 |
JSONLD_Catalog_Materialize |
4887644.3497268455 ns/iter |
3477741.49214674 ns/iter |
1.41 |
HTML_Build_Table_100000 |
50964477.80000138 ns/iter |
48470473.93749904 ns/iter |
1.05 |
HTML_Render_Table_100000 |
2296889.5681232377 ns/iter |
3147457.971014471 ns/iter |
0.73 |
GZIP_Compress_ISO_Language_Set_3_Locations |
55085210.22727564 ns/iter |
35970081.000000514 ns/iter |
1.53 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
3823067.6460677404 ns/iter |
4401823.091428533 ns/iter |
0.87 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1597469.4634703516 ns/iter |
1695683.394088632 ns/iter |
0.94 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
280174.861873987 ns/iter |
315146.56987492257 ns/iter |
0.89 |
JOSE_VerifySignature_RS256 |
26713.863689092846 ns/iter |
23628.716424580674 ns/iter |
1.13 |
JOSE_VerifySignature_ES512 |
1401257.3945719737 ns/iter |
1169695.6785185311 ns/iter |
1.20 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com