Implement a fast Pointer::Token::property_equals helper#2616
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR introduces a fast helper for comparing JSON Pointer property tokens against an external string by leveraging the token’s precomputed property hash. Changes:
Technical Notes: The new logic mirrors the existing object-key hash strategy: perfect hashes encode bytes but not length, so a size check is used to disambiguate cases like 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: ca9637b | Previous: 9690689 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.4617034100944934 ns/iter |
1.9176020652701233 ns/iter |
1.28 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.4626381730816225 ns/iter |
1.910587123886501 ns/iter |
1.29 |
Regex_Period_Asterisk |
2.464290064534907 ns/iter |
1.9094647260595916 ns/iter |
1.29 |
Regex_Group_Period_Asterisk_Group |
2.462013639559683 ns/iter |
1.911081143876975 ns/iter |
1.29 |
Regex_Period_Plus |
3.5150096230767174 ns/iter |
2.726896199662937 ns/iter |
1.29 |
Regex_Period |
3.867623997436079 ns/iter |
2.1941771822195526 ns/iter |
1.76 |
Regex_Caret_Period_Plus_Dollar |
3.906450285176211 ns/iter |
1.9206125922672521 ns/iter |
2.03 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.5151538830590514 ns/iter |
1.912250083843529 ns/iter |
1.84 |
Regex_Caret_Period_Asterisk_Dollar |
2.462359274117647 ns/iter |
2.727496622794491 ns/iter |
0.90 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.818622491521141 ns/iter |
2.9997417546738805 ns/iter |
0.94 |
Regex_Caret_X_Hyphen |
5.645076464071119 ns/iter |
5.456141216746529 ns/iter |
1.03 |
Regex_Period_Md_Dollar |
26.310263661442534 ns/iter |
20.392052741283887 ns/iter |
1.29 |
Regex_Caret_Slash_Period_Asterisk |
7.384104626837603 ns/iter |
5.180674936023667 ns/iter |
1.43 |
Regex_Caret_Period_Range_Dollar |
4.570981342321593 ns/iter |
3.546489761228493 ns/iter |
1.29 |
Regex_Nested_Backtrack |
38.13379151413813 ns/iter |
29.75009527994396 ns/iter |
1.28 |
JSON_Array_Of_Objects_Unique |
489.50995938430435 ns/iter |
379.2128062759684 ns/iter |
1.29 |
JSON_Parse_1 |
4667.60518777981 ns/iter |
3621.585908305858 ns/iter |
1.29 |
JSON_Parse_Real |
5120.916413616627 ns/iter |
3987.3772157219205 ns/iter |
1.28 |
JSON_Parse_Decimal |
7625.245525727442 ns/iter |
5938.8905463795745 ns/iter |
1.28 |
JSON_Parse_Schema_ISO_Language |
3587065.8928567017 ns/iter |
2860993.2090164344 ns/iter |
1.25 |
JSON_Parse_Integer |
3947.4503139553503 ns/iter |
3063.414360989553 ns/iter |
1.29 |
JSON_Parse_String_NonSSO_Plain |
5083.609739999702 ns/iter |
3965.835786641074 ns/iter |
1.28 |
JSON_Parse_String_SSO_Plain |
2767.0483538034796 ns/iter |
2304.501388467266 ns/iter |
1.20 |
JSON_Parse_String_Escape_Heavy |
14477.002730826061 ns/iter |
11291.9568289483 ns/iter |
1.28 |
JSON_Parse_Object_Short_Keys |
7974.400200167402 ns/iter |
6234.0679407593525 ns/iter |
1.28 |
JSON_Parse_Object_Scalar_Properties |
4041.467388477964 ns/iter |
3170.1351200749214 ns/iter |
1.27 |
JSON_Parse_Object_Array_Properties |
5543.372777077945 ns/iter |
4517.461283371297 ns/iter |
1.23 |
JSON_Parse_Object_Object_Properties |
5525.980924756107 ns/iter |
4508.680731853711 ns/iter |
1.23 |
JSON_Parse_Nested_Containers |
45718.45000958104 ns/iter |
35655.85500793456 ns/iter |
1.28 |
JSON_From_String_Copy |
21.143387138539268 ns/iter |
16.918513931744755 ns/iter |
1.25 |
JSON_From_String_Temporary |
18.654812926300018 ns/iter |
14.739240669796056 ns/iter |
1.27 |
JSON_Number_To_Double |
22.921034540705737 ns/iter |
17.71935289357677 ns/iter |
1.29 |
JSON_Object_At_Last_Key/8 |
4.0278015217518774 ns/iter |
3.1325657700321132 ns/iter |
1.29 |
JSON_Object_At_Last_Key/32 |
13.398791171784335 ns/iter |
10.375498543300484 ns/iter |
1.29 |
JSON_Object_At_Last_Key/128 |
47.16027472213153 ns/iter |
43.916603116693786 ns/iter |
1.07 |
JSON_Object_At_Last_Key/512 |
367.9551462315718 ns/iter |
284.7437975340937 ns/iter |
1.29 |
JSON_Fast_Hash_Helm_Chart_Lock |
68.96619968326907 ns/iter |
53.44629788218696 ns/iter |
1.29 |
JSON_Equality_Helm_Chart_Lock |
173.52428071828564 ns/iter |
131.18953381126911 ns/iter |
1.32 |
JSON_Divisible_By_Decimal |
253.27362142194067 ns/iter |
196.52313548956556 ns/iter |
1.29 |
JSON_String_Equal/10 |
5.625325808440618 ns/iter |
4.363220779646338 ns/iter |
1.29 |
JSON_String_Equal/100 |
6.348058861401022 ns/iter |
5.182625661449054 ns/iter |
1.22 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.055241377741145 ns/iter |
0.8180606969160664 ns/iter |
1.29 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
12.380461567960232 ns/iter |
9.688004444656318 ns/iter |
1.28 |
JSON_String_Fast_Hash/10 |
2.468427378544491 ns/iter |
1.9117346086610525 ns/iter |
1.29 |
JSON_String_Fast_Hash/100 |
2.4634959255340965 ns/iter |
1.910470805803302 ns/iter |
1.29 |
JSON_String_Key_Hash/10 |
2.4633034674353014 ns/iter |
1.9095535541904003 ns/iter |
1.29 |
JSON_String_Key_Hash/100 |
8.086061929862732 ns/iter |
6.313891004926056 ns/iter |
1.28 |
JSON_Object_Defines_Miss_Same_Length |
3.204986882473943 ns/iter |
2.4830641019478423 ns/iter |
1.29 |
JSON_Object_Defines_Miss_Too_Small |
4.226436958687813 ns/iter |
3.2778570312188853 ns/iter |
1.29 |
JSON_Object_Defines_Miss_Too_Large |
2.964907848200303 ns/iter |
2.320338943535785 ns/iter |
1.28 |
Pointer_Object_Traverse |
31.799860575920995 ns/iter |
23.81837425966414 ns/iter |
1.34 |
Pointer_Object_Try_Traverse |
33.604622713882144 ns/iter |
26.01801704164712 ns/iter |
1.29 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
191.00111603009614 ns/iter |
143.7063314742393 ns/iter |
1.33 |
Pointer_Walker_Schema_ISO_Language |
2851870.0975608197 ns/iter |
2204039.1687118877 ns/iter |
1.29 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1257218.487499959 ns/iter |
1021137.3979885088 ns/iter |
1.23 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1614522.678160917 ns/iter |
1264167.144144234 ns/iter |
1.28 |
Pointer_Position_Tracker_Get_Deeply_Nested |
750.1166799950328 ns/iter |
567.884904954057 ns/iter |
1.32 |
URITemplateRouter_Create |
30320.596966272118 ns/iter |
23148.342937481426 ns/iter |
1.31 |
URITemplateRouter_Match |
184.3717029333563 ns/iter |
129.0863416130698 ns/iter |
1.43 |
URITemplateRouter_Match_BasePath |
223.96963063433574 ns/iter |
154.84819458921032 ns/iter |
1.45 |
URITemplateRouterView_Restore |
9995.210990785026 ns/iter |
7681.090774033954 ns/iter |
1.30 |
URITemplateRouterView_Match |
145.56455214594453 ns/iter |
107.90779564005844 ns/iter |
1.35 |
URITemplateRouterView_Match_BasePath |
166.38870953175802 ns/iter |
121.93608357592235 ns/iter |
1.36 |
URITemplateRouterView_Arguments |
470.94070131811856 ns/iter |
354.6551430479639 ns/iter |
1.33 |
JSONL_Parse_Large |
9052949.480519602 ns/iter |
7229737.886597231 ns/iter |
1.25 |
JSONL_Parse_Large_GZIP |
10716267.030768624 ns/iter |
8565008.365853438 ns/iter |
1.25 |
HTML_Build_Table_100000 |
72866989.8888812 ns/iter |
58121471.16666704 ns/iter |
1.25 |
HTML_Render_Table_100000 |
5747527.762294891 ns/iter |
4787416.891156304 ns/iter |
1.20 |
GZIP_Compress_ISO_Language_Set_3_Locations |
35226202.750004634 ns/iter |
27206216.38461405 ns/iter |
1.29 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4326734.345679064 ns/iter |
3025346.5064934217 ns/iter |
1.43 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2127718.814589457 ns/iter |
1630830.6759907338 ns/iter |
1.30 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
279116.88007968705 ns/iter |
196830.56692912866 ns/iter |
1.42 |
JOSE_VerifySignature_RS256 |
63797.66912501842 ns/iter |
49590.246826016024 ns/iter |
1.29 |
JOSE_VerifySignature_ES512 |
2679405.992337051 ns/iter |
2182941.233644743 ns/iter |
1.23 |
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: ca9637b | Previous: 9690689 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.5768265685778813 ns/iter |
2.3367350986864417 ns/iter |
0.67 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.8885246088863326 ns/iter |
2.690295508939656 ns/iter |
0.70 |
Regex_Period_Asterisk |
1.5678830242304915 ns/iter |
2.3671994477198397 ns/iter |
0.66 |
Regex_Group_Period_Asterisk_Group |
1.570519910941903 ns/iter |
2.9597829360493075 ns/iter |
0.53 |
Regex_Period_Plus |
1.9657398004076425 ns/iter |
3.0552427841105696 ns/iter |
0.64 |
Regex_Period |
1.8961034361015527 ns/iter |
3.4533254519679586 ns/iter |
0.55 |
Regex_Caret_Period_Plus_Dollar |
1.8860329207536926 ns/iter |
2.751058900627139 ns/iter |
0.69 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
1.8848172504342957 ns/iter |
2.8358920222055284 ns/iter |
0.66 |
Regex_Caret_Period_Asterisk_Dollar |
1.6097089196976992 ns/iter |
2.233086590709903 ns/iter |
0.72 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.566706001340959 ns/iter |
2.2246274183812003 ns/iter |
0.70 |
Regex_Caret_X_Hyphen |
5.645936210881279 ns/iter |
7.706861650268998 ns/iter |
0.73 |
Regex_Period_Md_Dollar |
16.204502486087296 ns/iter |
25.29129985711266 ns/iter |
0.64 |
Regex_Caret_Slash_Period_Asterisk |
4.083044483549821 ns/iter |
5.9565695331708755 ns/iter |
0.69 |
Regex_Caret_Period_Range_Dollar |
1.8861564229893104 ns/iter |
3.1633063589324095 ns/iter |
0.60 |
Regex_Nested_Backtrack |
24.14949326588723 ns/iter |
36.39769665963571 ns/iter |
0.66 |
JSON_Array_Of_Objects_Unique |
334.294643390503 ns/iter |
460.5525870826017 ns/iter |
0.73 |
JSON_Parse_1 |
3374.9318686268666 ns/iter |
5650.8926523577775 ns/iter |
0.60 |
JSON_Parse_Real |
4858.553261642363 ns/iter |
8002.007313837046 ns/iter |
0.61 |
JSON_Parse_Decimal |
5226.681225214296 ns/iter |
8120.123957410636 ns/iter |
0.64 |
JSON_Parse_Schema_ISO_Language |
2957341.976958384 ns/iter |
5585085.663551369 ns/iter |
0.53 |
JSON_Parse_Integer |
2795.014523677076 ns/iter |
3709.2034151630596 ns/iter |
0.75 |
JSON_Parse_String_NonSSO_Plain |
3266.694993713218 ns/iter |
4793.062713999043 ns/iter |
0.68 |
JSON_Parse_String_SSO_Plain |
1649.1373006804563 ns/iter |
2329.8178493386895 ns/iter |
0.71 |
JSON_Parse_String_Escape_Heavy |
15157.37724408179 ns/iter |
21192.53813621967 ns/iter |
0.72 |
JSON_Parse_Object_Short_Keys |
5305.305958794292 ns/iter |
6928.384758292875 ns/iter |
0.77 |
JSON_Parse_Object_Scalar_Properties |
2580.777332935154 ns/iter |
3743.415934902913 ns/iter |
0.69 |
JSON_Parse_Object_Array_Properties |
3459.091488319602 ns/iter |
4520.892816354344 ns/iter |
0.77 |
JSON_Parse_Object_Object_Properties |
3321.2133032420215 ns/iter |
5526.918828209068 ns/iter |
0.60 |
JSON_Parse_Nested_Containers |
25873.165793680822 ns/iter |
39491.35844155722 ns/iter |
0.66 |
JSON_From_String_Copy |
23.856944104330275 ns/iter |
31.520061404283304 ns/iter |
0.76 |
JSON_From_String_Temporary |
19.76805544040567 ns/iter |
26.520892991064688 ns/iter |
0.75 |
JSON_Number_To_Double |
32.67654859388151 ns/iter |
46.73209671016029 ns/iter |
0.70 |
JSON_Object_At_Last_Key/8 |
3.863238392713204 ns/iter |
5.2667789190271 ns/iter |
0.73 |
JSON_Object_At_Last_Key/32 |
12.201643903663388 ns/iter |
16.30371033847575 ns/iter |
0.75 |
JSON_Object_At_Last_Key/128 |
52.28768132627479 ns/iter |
74.44256244404822 ns/iter |
0.70 |
JSON_Object_At_Last_Key/512 |
182.29956114294924 ns/iter |
283.4830466716793 ns/iter |
0.64 |
JSON_Fast_Hash_Helm_Chart_Lock |
60.243706023401316 ns/iter |
90.45775580085854 ns/iter |
0.67 |
JSON_Equality_Helm_Chart_Lock |
159.62577170799008 ns/iter |
215.21191743732413 ns/iter |
0.74 |
JSON_Divisible_By_Decimal |
193.96700054792555 ns/iter |
237.5942209877618 ns/iter |
0.82 |
JSON_String_Equal/10 |
6.820402532887941 ns/iter |
9.055461338036098 ns/iter |
0.75 |
JSON_String_Equal/100 |
6.63917988269369 ns/iter |
9.487411724411476 ns/iter |
0.70 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7032120176376873 ns/iter |
1.0442121372638857 ns/iter |
0.67 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.0325959558813635 ns/iter |
4.464307194993741 ns/iter |
0.68 |
JSON_String_Fast_Hash/10 |
2.2227427787463547 ns/iter |
2.849195187619609 ns/iter |
0.78 |
JSON_String_Fast_Hash/100 |
1.8825942211672937 ns/iter |
2.477547809253231 ns/iter |
0.76 |
JSON_String_Key_Hash/10 |
1.2700359211713819 ns/iter |
1.7154938738331365 ns/iter |
0.74 |
JSON_String_Key_Hash/100 |
1.975026944250027 ns/iter |
2.598211794537651 ns/iter |
0.76 |
JSON_Object_Defines_Miss_Same_Length |
2.5221365674696417 ns/iter |
3.2221861859069243 ns/iter |
0.78 |
JSON_Object_Defines_Miss_Too_Small |
2.765953526800971 ns/iter |
3.4417274603240067 ns/iter |
0.80 |
JSON_Object_Defines_Miss_Too_Large |
2.732316993723706 ns/iter |
3.3996853580900432 ns/iter |
0.80 |
Pointer_Object_Traverse |
17.3058481180012 ns/iter |
20.857592303574044 ns/iter |
0.83 |
Pointer_Object_Try_Traverse |
25.88237141263542 ns/iter |
38.680622356951574 ns/iter |
0.67 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
144.6566820211763 ns/iter |
202.4861964473643 ns/iter |
0.71 |
Pointer_Walker_Schema_ISO_Language |
3179076.6991151082 ns/iter |
4888187.681416663 ns/iter |
0.65 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
817253.7746805669 ns/iter |
1091891.5078533867 ns/iter |
0.75 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1067631.1936935736 ns/iter |
1929468.036529645 ns/iter |
0.55 |
Pointer_Position_Tracker_Get_Deeply_Nested |
325.4451594570854 ns/iter |
493.2591166852817 ns/iter |
0.66 |
URITemplateRouter_Create |
21581.60757383918 ns/iter |
31512.753435343984 ns/iter |
0.68 |
URITemplateRouter_Match |
152.17574077639634 ns/iter |
206.56229637953686 ns/iter |
0.74 |
URITemplateRouter_Match_BasePath |
178.81412895597157 ns/iter |
248.4695435641639 ns/iter |
0.72 |
URITemplateRouterView_Restore |
9126.278407327798 ns/iter |
21164.64815571891 ns/iter |
0.43 |
URITemplateRouterView_Match |
123.07640807273619 ns/iter |
174.75111137976523 ns/iter |
0.70 |
URITemplateRouterView_Match_BasePath |
136.56870457829223 ns/iter |
215.8669935459971 ns/iter |
0.63 |
URITemplateRouterView_Arguments |
382.76821627690464 ns/iter |
495.8146725367691 ns/iter |
0.77 |
JSONL_Parse_Large |
11819879.770491453 ns/iter |
17741309.523809638 ns/iter |
0.67 |
JSONL_Parse_Large_GZIP |
12246880.842105001 ns/iter |
16958916.675674584 ns/iter |
0.72 |
HTML_Build_Table_100000 |
65773520.87501254 ns/iter |
89406364.62500606 ns/iter |
0.74 |
HTML_Render_Table_100000 |
2274293.007142855 ns/iter |
6053728.991597351 ns/iter |
0.38 |
GZIP_Compress_ISO_Language_Set_3_Locations |
27778093.319998335 ns/iter |
38245537.7142876 ns/iter |
0.73 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4747429.0687016025 ns/iter |
7447142.428571503 ns/iter |
0.64 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1494605.1847135138 ns/iter |
2631897.4264704725 ns/iter |
0.57 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
258663.96947407062 ns/iter |
346550.0749718472 ns/iter |
0.75 |
JOSE_VerifySignature_RS256 |
21096.149142261253 ns/iter |
29668.875244713876 ns/iter |
0.71 |
JOSE_VerifySignature_ES512 |
909591.8831168953 ns/iter |
1265379.9506398493 ns/iter |
0.72 |
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: ca9637b | Previous: 9690689 | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
22182.15361369176 ns/iter |
22213.538622062886 ns/iter |
1.00 |
JOSE_VerifySignature_ES512 |
575597.0739524196 ns/iter |
575856.5366859359 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36334865.94737023 ns/iter |
38799583.50000202 ns/iter |
0.94 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4199405.392856734 ns/iter |
4125966.9529408175 ns/iter |
1.02 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2039426.7784257154 ns/iter |
2086778.0686564823 ns/iter |
0.98 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
379307.1079019135 ns/iter |
380403.6599564965 ns/iter |
1.00 |
HTML_Build_Table_100000 |
59059096.99999749 ns/iter |
60134283.75000747 ns/iter |
0.98 |
HTML_Render_Table_100000 |
1793969.0257730712 ns/iter |
1909897.1065575008 ns/iter |
0.94 |
JSONL_Parse_Large |
12738469.21818321 ns/iter |
13142788.26415152 ns/iter |
0.97 |
JSONL_Parse_Large_GZIP |
14190473.53061262 ns/iter |
14567453.166667596 ns/iter |
0.97 |
URITemplateRouter_Create |
31323.95387297256 ns/iter |
30658.489166121806 ns/iter |
1.02 |
URITemplateRouter_Match |
158.58800371101697 ns/iter |
160.52693316128423 ns/iter |
0.99 |
URITemplateRouter_Match_BasePath |
185.94673409633626 ns/iter |
185.53490026702724 ns/iter |
1.00 |
URITemplateRouterView_Restore |
8223.975548972869 ns/iter |
8449.665494636738 ns/iter |
0.97 |
URITemplateRouterView_Match |
122.33597895313777 ns/iter |
122.26177110485355 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
141.29288443865843 ns/iter |
140.94072910889048 ns/iter |
1.00 |
URITemplateRouterView_Arguments |
466.3491694810153 ns/iter |
469.3215418950248 ns/iter |
0.99 |
Pointer_Object_Traverse |
33.043701841322154 ns/iter |
33.05406947172126 ns/iter |
1.00 |
Pointer_Object_Try_Traverse |
23.02321764120237 ns/iter |
23.0294465315737 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
158.3329692425968 ns/iter |
150.40293500030938 ns/iter |
1.05 |
Pointer_Walker_Schema_ISO_Language |
2762288.2140076756 ns/iter |
2726551.9806203977 ns/iter |
1.01 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1828487.7893332427 ns/iter |
1825313.7493332662 ns/iter |
1.00 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1676051.5441528978 ns/iter |
1688830.2915662916 ns/iter |
0.99 |
Pointer_Position_Tracker_Get_Deeply_Nested |
537.5129492288307 ns/iter |
559.5896915962916 ns/iter |
0.96 |
JSON_Array_Of_Objects_Unique |
486.30478586439875 ns/iter |
494.4790312453994 ns/iter |
0.98 |
JSON_Parse_1 |
9412.92334181898 ns/iter |
9434.41593634134 ns/iter |
1.00 |
JSON_Parse_Real |
7537.2287988628705 ns/iter |
7527.385057221667 ns/iter |
1.00 |
JSON_Parse_Decimal |
12466.032592644831 ns/iter |
12638.46902271908 ns/iter |
0.99 |
JSON_Parse_Schema_ISO_Language |
6331767.171171303 ns/iter |
6368248.642201911 ns/iter |
0.99 |
JSON_Parse_Integer |
5621.250902671998 ns/iter |
5646.955527668765 ns/iter |
1.00 |
JSON_Parse_String_NonSSO_Plain |
11850.007099271072 ns/iter |
11581.688044469282 ns/iter |
1.02 |
JSON_Parse_String_SSO_Plain |
4670.519253870718 ns/iter |
4665.901657605662 ns/iter |
1.00 |
JSON_Parse_String_Escape_Heavy |
24352.510032452272 ns/iter |
24546.57762044683 ns/iter |
0.99 |
JSON_Parse_Object_Short_Keys |
13124.627487456493 ns/iter |
13325.557612971195 ns/iter |
0.98 |
JSON_Parse_Object_Scalar_Properties |
6771.172869797943 ns/iter |
6819.640253749675 ns/iter |
0.99 |
JSON_Parse_Object_Array_Properties |
11295.097649068292 ns/iter |
11258.154872819656 ns/iter |
1.00 |
JSON_Parse_Object_Object_Properties |
11582.90632237036 ns/iter |
11418.406620351303 ns/iter |
1.01 |
JSON_Parse_Nested_Containers |
95092.68850903011 ns/iter |
94644.53667482769 ns/iter |
1.00 |
JSON_From_String_Copy |
18.347293503780744 ns/iter |
18.361049586999773 ns/iter |
1.00 |
JSON_From_String_Temporary |
15.348203274379985 ns/iter |
15.351339023052045 ns/iter |
1.00 |
JSON_Number_To_Double |
20.587394902011432 ns/iter |
20.824808119342922 ns/iter |
0.99 |
JSON_Object_At_Last_Key/8 |
3.741527121294421 ns/iter |
3.7457862471154217 ns/iter |
1.00 |
JSON_Object_At_Last_Key/32 |
11.904120717785009 ns/iter |
11.884342882493307 ns/iter |
1.00 |
JSON_Object_At_Last_Key/128 |
48.581328956685425 ns/iter |
48.63419757886589 ns/iter |
1.00 |
JSON_Object_At_Last_Key/512 |
356.40352381080174 ns/iter |
358.64163068353315 ns/iter |
0.99 |
JSON_Fast_Hash_Helm_Chart_Lock |
75.3596386529887 ns/iter |
75.46918112811922 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
162.30018502658584 ns/iter |
160.25938059965182 ns/iter |
1.01 |
JSON_Divisible_By_Decimal |
246.51197315745208 ns/iter |
245.96225696950043 ns/iter |
1.00 |
JSON_String_Equal/10 |
6.031462091983382 ns/iter |
6.003016478550043 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.622421864918341 ns/iter |
6.629936280154266 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.623325044489647 ns/iter |
0.623224725085604 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.191565233132046 ns/iter |
25.196313988262496 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.5678695995361336 ns/iter |
2.57542219783141 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.568265093316702 ns/iter |
2.5685050544685395 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.246812494123903 ns/iter |
1.2479497645521695 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
12.443904848128726 ns/iter |
12.448373846723074 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
2.8037563507126513 ns/iter |
2.8166721610545995 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.1166626444845464 ns/iter |
3.1173022931219245 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.115197168034948 ns/iter |
3.1142657371978206 ns/iter |
1.00 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.6276780173406334 ns/iter |
0.6229077153336328 ns/iter |
1.01 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.9348018471174275 ns/iter |
0.9353135389835 ns/iter |
1.00 |
Regex_Period_Asterisk |
0.9344795237613533 ns/iter |
0.9340282622272734 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
0.6255126108354111 ns/iter |
0.6229981120858729 ns/iter |
1.00 |
Regex_Period_Plus |
0.6232734928246245 ns/iter |
0.6233983091048458 ns/iter |
1.00 |
Regex_Period |
0.934937494882447 ns/iter |
0.9345724424085189 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
0.9351525453429897 ns/iter |
0.9341807138563061 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.6226531031935113 ns/iter |
0.6227151610045197 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
0.6234579750843525 ns/iter |
0.6233929874598133 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.9345502256305229 ns/iter |
0.942122663231795 ns/iter |
0.99 |
Regex_Caret_X_Hyphen |
4.054853933744969 ns/iter |
4.052417881884295 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
27.572304679181716 ns/iter |
29.561229930302225 ns/iter |
0.93 |
Regex_Caret_Slash_Period_Asterisk |
4.6962128670215755 ns/iter |
4.669534412471335 ns/iter |
1.01 |
Regex_Caret_Period_Range_Dollar |
1.5570163747048171 ns/iter |
1.5573809728339134 ns/iter |
1.00 |
Regex_Nested_Backtrack |
37.67368962985906 ns/iter |
38.24846401095692 ns/iter |
0.98 |
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: ca9637b | Previous: 9690689 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.4404969838835253 ns/iter |
5.014588999999887 ns/iter |
0.49 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.439815957098844 ns/iter |
4.954212411819413 ns/iter |
0.49 |
Regex_Period_Asterisk |
2.443540175842936 ns/iter |
4.956647999999859 ns/iter |
0.49 |
Regex_Group_Period_Asterisk_Group |
2.4454513365562014 ns/iter |
4.968906999999945 ns/iter |
0.49 |
Regex_Period_Plus |
2.6569249999998386 ns/iter |
4.766038951956947 ns/iter |
0.56 |
Regex_Period |
2.6468965824584907 ns/iter |
4.8424165286646135 ns/iter |
0.55 |
Regex_Caret_Period_Plus_Dollar |
2.662302073516354 ns/iter |
4.7499617740517674 ns/iter |
0.56 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.638193189607279 ns/iter |
4.662734374998934 ns/iter |
0.57 |
Regex_Caret_Period_Asterisk_Dollar |
2.4251631669355183 ns/iter |
5.0013625000003366 ns/iter |
0.48 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.444544640129561 ns/iter |
4.981852999999319 ns/iter |
0.49 |
Regex_Caret_X_Hyphen |
5.860069642855998 ns/iter |
8.002984821428884 ns/iter |
0.73 |
Regex_Period_Md_Dollar |
30.42406431466415 ns/iter |
60.92175892858011 ns/iter |
0.50 |
Regex_Caret_Slash_Period_Asterisk |
5.570968750000865 ns/iter |
7.539266741071669 ns/iter |
0.74 |
Regex_Caret_Period_Range_Dollar |
3.3055523489132006 ns/iter |
5.408995000000231 ns/iter |
0.61 |
Regex_Nested_Backtrack |
43.56172660896185 ns/iter |
84.76931919642843 ns/iter |
0.51 |
JSON_Array_Of_Objects_Unique |
514.1183000000638 ns/iter |
680.8550000000325 ns/iter |
0.76 |
JSON_Parse_1 |
8029.5167410732965 ns/iter |
9496.933049407005 ns/iter |
0.85 |
JSON_Parse_Real |
12180.653571428073 ns/iter |
17023.670747062446 ns/iter |
0.72 |
JSON_Parse_Decimal |
9418.457953310073 ns/iter |
11185.343750000242 ns/iter |
0.84 |
JSON_Parse_Schema_ISO_Language |
7685787.777775962 ns/iter |
8103038.888889892 ns/iter |
0.95 |
JSON_Parse_Integer |
4523.96500000134 ns/iter |
5973.933928570675 ns/iter |
0.76 |
JSON_Parse_String_NonSSO_Plain |
6680.008035715446 ns/iter |
8307.313616072573 ns/iter |
0.80 |
JSON_Parse_String_SSO_Plain |
2872.6047440711077 ns/iter |
3797.365361848554 ns/iter |
0.76 |
JSON_Parse_String_Escape_Heavy |
22877.543749999062 ns/iter |
22430.684374995733 ns/iter |
1.02 |
JSON_Parse_Object_Short_Keys |
9262.547042199183 ns/iter |
13509.825625778447 ns/iter |
0.69 |
JSON_Parse_Object_Scalar_Properties |
4871.075175066189 ns/iter |
6723.31249999912 ns/iter |
0.72 |
JSON_Parse_Object_Array_Properties |
8708.77343749957 ns/iter |
11910.892857140912 ns/iter |
0.73 |
JSON_Parse_Object_Object_Properties |
8826.29541832889 ns/iter |
11846.571875000933 ns/iter |
0.75 |
JSON_Parse_Nested_Containers |
66701.4955356799 ns/iter |
83120.98214286071 ns/iter |
0.80 |
JSON_From_String_Copy |
46.94126220851736 ns/iter |
63.798928571421655 ns/iter |
0.74 |
JSON_From_String_Temporary |
53.401455357158866 ns/iter |
86.14349615429767 ns/iter |
0.62 |
JSON_Number_To_Double |
91.27471467523826 ns/iter |
134.70851785716116 ns/iter |
0.68 |
JSON_Object_At_Last_Key/8 |
6.774173214284117 ns/iter |
7.13012723214287 ns/iter |
0.95 |
JSON_Object_At_Last_Key/32 |
20.900499999996214 ns/iter |
26.18302857142193 ns/iter |
0.80 |
JSON_Object_At_Last_Key/128 |
93.39137529502737 ns/iter |
113.2914375000027 ns/iter |
0.82 |
JSON_Object_At_Last_Key/512 |
319.1844196428357 ns/iter |
457.7089285715731 ns/iter |
0.70 |
JSON_Fast_Hash_Helm_Chart_Lock |
82.56998883925552 ns/iter |
123.73215519053437 ns/iter |
0.67 |
JSON_Equality_Helm_Chart_Lock |
206.22908900767075 ns/iter |
204.1456069577422 ns/iter |
1.01 |
JSON_Divisible_By_Decimal |
266.1657105430714 ns/iter |
372.94049879198616 ns/iter |
0.71 |
JSON_String_Equal/10 |
7.975608258930273 ns/iter |
10.086237008541953 ns/iter |
0.79 |
JSON_String_Equal/100 |
10.799692187504206 ns/iter |
11.41288750000058 ns/iter |
0.95 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.1686717857141307 ns/iter |
2.1783684374995005 ns/iter |
0.54 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
9.364506654624718 ns/iter |
21.225422382485384 ns/iter |
0.44 |
JSON_String_Fast_Hash/10 |
4.091179687498884 ns/iter |
6.6488392857146605 ns/iter |
0.62 |
JSON_String_Fast_Hash/100 |
4.095807284098763 ns/iter |
6.669091071429989 ns/iter |
0.61 |
JSON_String_Key_Hash/10 |
3.2241790178570033 ns/iter |
4.996951000000536 ns/iter |
0.65 |
JSON_String_Key_Hash/100 |
7.642925223214954 ns/iter |
11.077242187500502 ns/iter |
0.69 |
JSON_Object_Defines_Miss_Same_Length |
5.101079999999456 ns/iter |
4.715730814098661 ns/iter |
1.08 |
JSON_Object_Defines_Miss_Too_Small |
4.489526238978335 ns/iter |
4.6229779121043135 ns/iter |
0.97 |
JSON_Object_Defines_Miss_Too_Large |
4.9648374999995735 ns/iter |
4.6182394433038905 ns/iter |
1.08 |
Pointer_Object_Traverse |
46.422068000477445 ns/iter |
65.68578571428166 ns/iter |
0.71 |
Pointer_Object_Try_Traverse |
53.25020535715501 ns/iter |
69.27046428572226 ns/iter |
0.77 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
184.64002541430082 ns/iter |
172.1335115267591 ns/iter |
1.07 |
Pointer_Walker_Schema_ISO_Language |
11156820.312500315 ns/iter |
13601373.99999985 ns/iter |
0.82 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2115054.9999987334 ns/iter |
2447594.6969692525 ns/iter |
0.86 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3867022.4598936914 ns/iter |
3747784.3575428445 ns/iter |
1.03 |
Pointer_Position_Tracker_Get_Deeply_Nested |
510.0908277635483 ns/iter |
604.5641741072266 ns/iter |
0.84 |
URITemplateRouter_Create |
38562.62276783643 ns/iter |
37857.946428562376 ns/iter |
1.02 |
URITemplateRouter_Match |
252.5547499999448 ns/iter |
225.90609375001236 ns/iter |
1.12 |
URITemplateRouter_Match_BasePath |
286.7560507480904 ns/iter |
262.8266428571838 ns/iter |
1.09 |
URITemplateRouterView_Restore |
24195.617857133453 ns/iter |
24353.971428573524 ns/iter |
0.99 |
URITemplateRouterView_Match |
166.31404017855644 ns/iter |
172.65748477620514 ns/iter |
0.96 |
URITemplateRouterView_Match_BasePath |
184.49479325849603 ns/iter |
195.5092546647736 ns/iter |
0.94 |
URITemplateRouterView_Arguments |
446.8620454834 ns/iter |
610.4723999999351 ns/iter |
0.73 |
JSONL_Parse_Large |
27373020.00001364 ns/iter |
32764571.428569544 ns/iter |
0.84 |
JSONL_Parse_Large_GZIP |
27209287.99999456 ns/iter |
33350514.285714217 ns/iter |
0.82 |
HTML_Build_Table_100000 |
93395799.99998803 ns/iter |
92436014.2856975 ns/iter |
1.01 |
HTML_Render_Table_100000 |
12536758.928571803 ns/iter |
8218447.77777743 ns/iter |
1.53 |
GZIP_Compress_ISO_Language_Set_3_Locations |
33519229.99997896 ns/iter |
38005052.63158908 ns/iter |
0.88 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
11644198.43750153 ns/iter |
10805284.374999503 ns/iter |
1.08 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1981349.597854961 ns/iter |
2302826.6666668956 ns/iter |
0.86 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
675984.2857141913 ns/iter |
608427.1205357388 ns/iter |
1.11 |
JOSE_VerifySignature_RS256 |
19869.8885729197 ns/iter |
23719.949999994176 ns/iter |
0.84 |
JOSE_VerifySignature_ES512 |
1205213.125000171 ns/iter |
1520537.0535714533 ns/iter |
0.79 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com