Add some more text related misc utilities - #2736
Merged
Merged
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR adds two general-purpose text utilities to the core text module. Changes:
replace builds a new result and advances past each match, so replacement text is not reprocessed.
🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: 6eba6aa | Previous: 3e1d118 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.2249760865204067 ns/iter |
2.0943796831822947 ns/iter |
1.06 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.1956092545500643 ns/iter |
2.1506233254065417 ns/iter |
1.02 |
Regex_Period_Asterisk |
2.1960481150318416 ns/iter |
2.1214273287737693 ns/iter |
1.04 |
Regex_Group_Period_Asterisk_Group |
2.1945861677439527 ns/iter |
2.0973794152843 ns/iter |
1.05 |
Regex_Period_Plus |
2.4915351113076714 ns/iter |
2.079886787199638 ns/iter |
1.20 |
Regex_Period |
2.498355952527877 ns/iter |
2.0980421718820783 ns/iter |
1.19 |
Regex_Caret_Period_Plus_Dollar |
2.499919564245997 ns/iter |
2.078929371440862 ns/iter |
1.20 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.4903988102619916 ns/iter |
2.068902280065019 ns/iter |
1.20 |
Regex_Caret_Period_Asterisk_Dollar |
2.2317574889627045 ns/iter |
2.1428149690009 ns/iter |
1.04 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.193441291824907 ns/iter |
2.121360686008557 ns/iter |
1.03 |
Regex_Caret_X_Hyphen |
5.330274606678113 ns/iter |
4.048235373277673 ns/iter |
1.32 |
Regex_Period_Md_Dollar |
27.619535738298264 ns/iter |
24.710893702540524 ns/iter |
1.12 |
Regex_Caret_Slash_Period_Asterisk |
6.011744774798851 ns/iter |
3.747774884146645 ns/iter |
1.60 |
Regex_Caret_Period_Range_Dollar |
3.1120303543542613 ns/iter |
2.595284946652597 ns/iter |
1.20 |
Regex_Nested_Backtrack |
38.31337424528651 ns/iter |
35.844638943767116 ns/iter |
1.07 |
JSON_Array_Of_Objects_Unique |
433.2769177636991 ns/iter |
376.1713014490205 ns/iter |
1.15 |
JSON_Parse_1 |
4665.529906859585 ns/iter |
4228.441446352357 ns/iter |
1.10 |
JSON_Parse_Real |
5292.155563309692 ns/iter |
4757.448872824584 ns/iter |
1.11 |
JSON_Parse_Decimal |
7820.702444968762 ns/iter |
7356.491819814974 ns/iter |
1.06 |
JSON_Parse_Schema_ISO_Language |
3383964.444976352 ns/iter |
3357323.88151628 ns/iter |
1.01 |
JSON_Parse_Integer |
3881.3777204736807 ns/iter |
3628.4130746973924 ns/iter |
1.07 |
JSON_Parse_String_NonSSO_Plain |
3065.3498504241493 ns/iter |
2782.9030677286096 ns/iter |
1.10 |
JSON_Parse_String_SSO_Plain |
2744.1683244636715 ns/iter |
2307.8706693805552 ns/iter |
1.19 |
JSON_Parse_String_Escape_Heavy |
12231.842334798977 ns/iter |
14087.211857596665 ns/iter |
0.87 |
JSON_Parse_Object_Short_Keys |
8244.620289718037 ns/iter |
6817.855256109218 ns/iter |
1.21 |
JSON_Parse_Object_Scalar_Properties |
4256.977297724014 ns/iter |
3557.7856842762967 ns/iter |
1.20 |
JSON_Parse_Object_Array_Properties |
5699.449074378555 ns/iter |
4917.800273915879 ns/iter |
1.16 |
JSON_Parse_Object_Object_Properties |
5790.757786466055 ns/iter |
4882.791186790714 ns/iter |
1.19 |
JSON_Parse_Nested_Containers |
35614.74490780717 ns/iter |
31822.39754378404 ns/iter |
1.12 |
JSON_From_String_Copy |
11.449113273394307 ns/iter |
8.828710410613812 ns/iter |
1.30 |
JSON_From_String_Temporary |
10.108909174617905 ns/iter |
8.41426284142872 ns/iter |
1.20 |
JSON_Number_To_Double |
23.300051254076436 ns/iter |
21.73328996984484 ns/iter |
1.07 |
JSON_Object_At_Last_Key/8 |
5.849050137323842 ns/iter |
5.813973809296038 ns/iter |
1.01 |
JSON_Object_At_Last_Key/32 |
21.814912762243207 ns/iter |
19.62079718174821 ns/iter |
1.11 |
JSON_Object_At_Last_Key/128 |
90.43901135758466 ns/iter |
75.4027239484618 ns/iter |
1.20 |
JSON_Object_At_Last_Key/512 |
396.45761296150744 ns/iter |
304.2148198672903 ns/iter |
1.30 |
JSON_Fast_Hash_Helm_Chart_Lock |
59.825865333118834 ns/iter |
54.77125880535911 ns/iter |
1.09 |
JSON_Equality_Helm_Chart_Lock |
170.0507287134031 ns/iter |
142.24031584893302 ns/iter |
1.20 |
JSON_Divisible_By_Decimal |
244.7246464740263 ns/iter |
254.75203499242042 ns/iter |
0.96 |
JSON_String_Equal/10 |
5.934887937866287 ns/iter |
4.325690295423628 ns/iter |
1.37 |
JSON_String_Equal/100 |
6.543515924289126 ns/iter |
5.483453606202525 ns/iter |
1.19 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9355778970419653 ns/iter |
0.6916532219474825 ns/iter |
1.35 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
10.27128931052275 ns/iter |
9.511940530222896 ns/iter |
1.08 |
JSON_String_Fast_Hash/10 |
2.5107092752993565 ns/iter |
2.0264674484935994 ns/iter |
1.24 |
JSON_String_Fast_Hash/100 |
2.496970118565113 ns/iter |
2.020412543836115 ns/iter |
1.24 |
JSON_String_Key_Hash/10 |
2.49348672868799 ns/iter |
2.017400941349533 ns/iter |
1.24 |
JSON_String_Key_Hash/100 |
6.534543610444851 ns/iter |
6.632584977695258 ns/iter |
0.99 |
JSON_Object_Defines_Miss_Same_Length |
2.6994735213736365 ns/iter |
3.4679442391910373 ns/iter |
0.78 |
JSON_Object_Defines_Miss_Too_Small |
2.9203890825061904 ns/iter |
3.0262226213009416 ns/iter |
0.97 |
JSON_Object_Defines_Miss_Too_Large |
3.234673254960861 ns/iter |
3.4588483629613873 ns/iter |
0.94 |
Pointer_Object_Traverse |
29.44454665600448 ns/iter |
29.97079789204014 ns/iter |
0.98 |
Pointer_Object_Try_Traverse |
30.878740376181373 ns/iter |
39.070394184337964 ns/iter |
0.79 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
148.47404409441026 ns/iter |
142.60584925113952 ns/iter |
1.04 |
Pointer_Walker_Schema_ISO_Language |
1530438.698876352 ns/iter |
1942483.1264367294 ns/iter |
0.79 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1223054.5596490595 ns/iter |
1137770.5048700322 ns/iter |
1.07 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1611131.3669725421 ns/iter |
2014772.1983002343 ns/iter |
0.80 |
Pointer_Position_Tracker_Get_Deeply_Nested |
644.1863634457012 ns/iter |
696.0436555155467 ns/iter |
0.93 |
JSONPath_Descendant_Filter_Nested |
1495.447382832084 ns/iter |
1375.6372306089067 ns/iter |
1.09 |
URITemplateRouter_Create |
23308.792023744285 ns/iter |
20230.157401244895 ns/iter |
1.15 |
URITemplateRouter_Match |
182.40169831408713 ns/iter |
155.1787175189985 ns/iter |
1.18 |
URITemplateRouter_Match_BasePath |
203.82123730663884 ns/iter |
173.2700837432371 ns/iter |
1.18 |
URITemplateRouterView_Restore |
8537.912274896886 ns/iter |
3732.563660710216 ns/iter |
2.29 |
URITemplateRouterView_Match |
160.58210120046374 ns/iter |
142.25609013880398 ns/iter |
1.13 |
URITemplateRouterView_Match_BasePath |
184.13690485586022 ns/iter |
159.5652786959523 ns/iter |
1.15 |
URITemplateRouterView_Arguments |
445.4289820474684 ns/iter |
428.94197988826676 ns/iter |
1.04 |
JSONL_Parse_Large |
9219725.6052636 ns/iter |
8395537.25301171 ns/iter |
1.10 |
JSONL_Parse_Large_GZIP |
10760421.83076949 ns/iter |
9855448.619718323 ns/iter |
1.09 |
JSONLD_Catalog_Annotation_List_Populate |
601223.8339040274 ns/iter |
671612.798486277 ns/iter |
0.90 |
JSONLD_Catalog_Materialize |
3491706.1200002306 ns/iter |
3617665.1709844633 ns/iter |
0.97 |
HTML_Build_Table_100000 |
56785581.63636312 ns/iter |
59664265.666659355 ns/iter |
0.95 |
HTML_Render_Table_100000 |
1785488.3634020237 ns/iter |
3524833.4670050703 ns/iter |
0.51 |
GZIP_Compress_ISO_Language_Set_3_Locations |
32425694.31818187 ns/iter |
31022096.91303909 ns/iter |
1.05 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4133717.6374264606 ns/iter |
4964928.089552373 ns/iter |
0.83 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1855346.1489362724 ns/iter |
1862696.2284945762 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
358746.0241025535 ns/iter |
340010.81589151063 ns/iter |
1.06 |
JOSE_VerifySignature_RS256 |
60390.30315299332 ns/iter |
49221.84342012706 ns/iter |
1.23 |
JOSE_VerifySignature_ES512 |
2435281.4999997937 ns/iter |
2108015.5421688813 ns/iter |
1.16 |
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: 6eba6aa | Previous: 3e1d118 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.882815369706174 ns/iter |
1.868143424877922 ns/iter |
1.01 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.701093937530567 ns/iter |
2.2580766707778217 ns/iter |
0.75 |
Regex_Period_Asterisk |
1.7020288305521352 ns/iter |
1.787528595540095 ns/iter |
0.95 |
Regex_Group_Period_Asterisk_Group |
1.7641127424187941 ns/iter |
1.8446062102550262 ns/iter |
0.96 |
Regex_Period_Plus |
2.380029993786785 ns/iter |
2.4034381630774053 ns/iter |
0.99 |
Regex_Period |
2.243605836307915 ns/iter |
2.1626874932896687 ns/iter |
1.04 |
Regex_Caret_Period_Plus_Dollar |
2.1959442226595898 ns/iter |
2.202504473735838 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.0899985388836946 ns/iter |
2.055102067784934 ns/iter |
1.02 |
Regex_Caret_Period_Asterisk_Dollar |
1.6968008181731769 ns/iter |
1.782146651301697 ns/iter |
0.95 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.6910155307796841 ns/iter |
1.8529442196767445 ns/iter |
0.91 |
Regex_Caret_X_Hyphen |
6.08589151781797 ns/iter |
6.522971040108916 ns/iter |
0.93 |
Regex_Period_Md_Dollar |
17.766798226956077 ns/iter |
17.263617775183967 ns/iter |
1.03 |
Regex_Caret_Slash_Period_Asterisk |
4.973898816772421 ns/iter |
5.065924900811986 ns/iter |
0.98 |
Regex_Caret_Period_Range_Dollar |
2.0446715699288576 ns/iter |
2.9408047933410697 ns/iter |
0.70 |
Regex_Nested_Backtrack |
26.47541981329714 ns/iter |
28.01045652768125 ns/iter |
0.95 |
JSON_Array_Of_Objects_Unique |
353.13450377721495 ns/iter |
397.42592498420845 ns/iter |
0.89 |
JSON_Parse_1 |
3091.001751770624 ns/iter |
3144.7779434624217 ns/iter |
0.98 |
JSON_Parse_Real |
5025.637421918242 ns/iter |
5240.181728212203 ns/iter |
0.96 |
JSON_Parse_Decimal |
5570.975735341507 ns/iter |
5845.891665062545 ns/iter |
0.95 |
JSON_Parse_Schema_ISO_Language |
2339171.8241046467 ns/iter |
2302835.1151318224 ns/iter |
1.02 |
JSON_Parse_Integer |
3053.990555340972 ns/iter |
3316.329788609883 ns/iter |
0.92 |
JSON_Parse_String_NonSSO_Plain |
2983.5852584067848 ns/iter |
3169.6869318158874 ns/iter |
0.94 |
JSON_Parse_String_SSO_Plain |
1678.3206171366353 ns/iter |
1804.6337390163744 ns/iter |
0.93 |
JSON_Parse_String_Escape_Heavy |
17308.619564959234 ns/iter |
17632.58628607189 ns/iter |
0.98 |
JSON_Parse_Object_Short_Keys |
5667.569551810399 ns/iter |
5693.908461373438 ns/iter |
1.00 |
JSON_Parse_Object_Scalar_Properties |
2660.940731564081 ns/iter |
2803.3237044861066 ns/iter |
0.95 |
JSON_Parse_Object_Array_Properties |
3301.917896541034 ns/iter |
3732.0947755142115 ns/iter |
0.88 |
JSON_Parse_Object_Object_Properties |
3376.5407547284044 ns/iter |
3726.63825277851 ns/iter |
0.91 |
JSON_Parse_Nested_Containers |
27157.080059857046 ns/iter |
25879.68694907584 ns/iter |
1.05 |
JSON_From_String_Copy |
12.143583642290443 ns/iter |
11.082411438320724 ns/iter |
1.10 |
JSON_From_String_Temporary |
7.542069244662543 ns/iter |
6.748603100057906 ns/iter |
1.12 |
JSON_Number_To_Double |
37.88551769990094 ns/iter |
34.83491269748545 ns/iter |
1.09 |
JSON_Object_At_Last_Key/8 |
4.50569137845355 ns/iter |
4.234703042921326 ns/iter |
1.06 |
JSON_Object_At_Last_Key/32 |
12.173974591464521 ns/iter |
12.776145574655306 ns/iter |
0.95 |
JSON_Object_At_Last_Key/128 |
54.56391464767862 ns/iter |
56.94222220977404 ns/iter |
0.96 |
JSON_Object_At_Last_Key/512 |
198.97937527638314 ns/iter |
200.55775220414196 ns/iter |
0.99 |
JSON_Fast_Hash_Helm_Chart_Lock |
58.953382937129774 ns/iter |
61.411084520874006 ns/iter |
0.96 |
JSON_Equality_Helm_Chart_Lock |
141.69449303663234 ns/iter |
154.1364276972294 ns/iter |
0.92 |
JSON_Divisible_By_Decimal |
175.88055400320593 ns/iter |
195.52060480319645 ns/iter |
0.90 |
JSON_String_Equal/10 |
7.109640173729667 ns/iter |
7.426577140374459 ns/iter |
0.96 |
JSON_String_Equal/100 |
6.808534387072753 ns/iter |
7.2283031582439135 ns/iter |
0.94 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.3389290363020107 ns/iter |
0.3520226711945682 ns/iter |
0.96 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.3687970207223414 ns/iter |
3.3663789447876478 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.3725620008059694 ns/iter |
2.4638133943692107 ns/iter |
0.96 |
JSON_String_Fast_Hash/100 |
2.0300127175978764 ns/iter |
2.1718386097666604 ns/iter |
0.93 |
JSON_String_Key_Hash/10 |
1.7007041971346086 ns/iter |
1.7401142870940456 ns/iter |
0.98 |
JSON_String_Key_Hash/100 |
2.1432217674286145 ns/iter |
2.2083027902362624 ns/iter |
0.97 |
JSON_Object_Defines_Miss_Same_Length |
2.8257678876338193 ns/iter |
2.81049696825084 ns/iter |
1.01 |
JSON_Object_Defines_Miss_Too_Small |
2.702873272295767 ns/iter |
2.7622945159002956 ns/iter |
0.98 |
JSON_Object_Defines_Miss_Too_Large |
2.696686790095124 ns/iter |
3.6088322761155145 ns/iter |
0.75 |
Pointer_Object_Traverse |
19.479346048073655 ns/iter |
19.965211144923373 ns/iter |
0.98 |
Pointer_Object_Try_Traverse |
21.906243022117366 ns/iter |
24.333243628441544 ns/iter |
0.90 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
139.55106974333466 ns/iter |
148.28377026630568 ns/iter |
0.94 |
Pointer_Walker_Schema_ISO_Language |
1330874.7115717623 ns/iter |
1376223.3727811151 ns/iter |
0.97 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
854699.050632859 ns/iter |
902076.290652975 ns/iter |
0.95 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1032754.4709387427 ns/iter |
1187770.698052021 ns/iter |
0.87 |
Pointer_Position_Tracker_Get_Deeply_Nested |
345.89757671530504 ns/iter |
403.2724670981848 ns/iter |
0.86 |
JSONPath_Descendant_Filter_Nested |
1322.645684018758 ns/iter |
1230.6775588878556 ns/iter |
1.07 |
URITemplateRouter_Create |
18373.369952446148 ns/iter |
18855.950062689033 ns/iter |
0.97 |
URITemplateRouter_Match |
173.66478474819547 ns/iter |
183.44147147054684 ns/iter |
0.95 |
URITemplateRouter_Match_BasePath |
199.13496190354792 ns/iter |
239.81510733933243 ns/iter |
0.83 |
URITemplateRouterView_Restore |
10386.196753135004 ns/iter |
11083.809938453245 ns/iter |
0.94 |
URITemplateRouterView_Match |
140.35213770313032 ns/iter |
146.35830408193226 ns/iter |
0.96 |
URITemplateRouterView_Match_BasePath |
158.94917899572505 ns/iter |
169.43063824178702 ns/iter |
0.94 |
URITemplateRouterView_Arguments |
549.0727741164048 ns/iter |
579.8310923353538 ns/iter |
0.95 |
JSONL_Parse_Large |
6988341.17821603 ns/iter |
6598446.315315249 ns/iter |
1.06 |
JSONL_Parse_Large_GZIP |
7475060.188890994 ns/iter |
7704164.835164133 ns/iter |
0.97 |
JSONLD_Catalog_Annotation_List_Populate |
487604.2674018606 ns/iter |
556112.1670000375 ns/iter |
0.88 |
JSONLD_Catalog_Materialize |
2129314.345565166 ns/iter |
2506085.793358019 ns/iter |
0.85 |
HTML_Build_Table_100000 |
37428412.263161115 ns/iter |
41020147.05882298 ns/iter |
0.91 |
HTML_Render_Table_100000 |
1725261.462882384 ns/iter |
1966947.6960486234 ns/iter |
0.88 |
GZIP_Compress_ISO_Language_Set_3_Locations |
27326093.320007205 ns/iter |
28538121.500001047 ns/iter |
0.96 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
3376674.1111121695 ns/iter |
3975062.9516124865 ns/iter |
0.85 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1526988.2127193725 ns/iter |
1640259.3333335365 ns/iter |
0.93 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
278542.342563256 ns/iter |
292111.0996745661 ns/iter |
0.95 |
JOSE_VerifySignature_RS256 |
21664.239104615295 ns/iter |
22259.124734231915 ns/iter |
0.97 |
JOSE_VerifySignature_ES512 |
1077113.5455821375 ns/iter |
1024923.0905232576 ns/iter |
1.05 |
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: 6eba6aa | Previous: 3e1d118 | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
24470.261923188136 ns/iter |
22101.53720930166 ns/iter |
1.11 |
JOSE_VerifySignature_ES512 |
641042.2857143511 ns/iter |
576968.7041905654 ns/iter |
1.11 |
GZIP_Compress_ISO_Language_Set_3_Locations |
39257888.99999816 ns/iter |
36316672.63158234 ns/iter |
1.08 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4023281.6954022152 ns/iter |
4161923.886904956 ns/iter |
0.97 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2293743.1213114127 ns/iter |
2021862.5635836513 ns/iter |
1.13 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
280023.60518961225 ns/iter |
386395.26269801345 ns/iter |
0.72 |
HTML_Build_Table_100000 |
60168554.6363652 ns/iter |
56435371.54544861 ns/iter |
1.07 |
HTML_Render_Table_100000 |
1878003.4359674165 ns/iter |
1792061.7621483617 ns/iter |
1.05 |
JSONLD_Catalog_Annotation_List_Populate |
683543.2270057991 ns/iter |
681361.1267056442 ns/iter |
1.00 |
JSONLD_Catalog_Materialize |
3664723.126903851 ns/iter |
3499838.727272866 ns/iter |
1.05 |
JSONL_Parse_Large |
9177782.552632451 ns/iter |
9820948.267606005 ns/iter |
0.93 |
JSONL_Parse_Large_GZIP |
10648139.384616464 ns/iter |
11205630.968252731 ns/iter |
0.95 |
URITemplateRouter_Create |
20155.218600772085 ns/iter |
21016.46062166891 ns/iter |
0.96 |
URITemplateRouter_Match |
163.02159190255884 ns/iter |
164.87117392571722 ns/iter |
0.99 |
URITemplateRouter_Match_BasePath |
187.82307835879095 ns/iter |
185.43352057601237 ns/iter |
1.01 |
URITemplateRouterView_Restore |
10088.183956104567 ns/iter |
8394.31779691524 ns/iter |
1.20 |
URITemplateRouterView_Match |
126.84736488142276 ns/iter |
127.36728231578856 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
144.31147873746298 ns/iter |
144.87936165921144 ns/iter |
1.00 |
URITemplateRouterView_Arguments |
462.4011478208739 ns/iter |
470.935384176182 ns/iter |
0.98 |
JSONPath_Descendant_Filter_Nested |
1684.7251167714205 ns/iter |
1612.474267705516 ns/iter |
1.04 |
Pointer_Object_Traverse |
24.38096427439236 ns/iter |
23.19325641885472 ns/iter |
1.05 |
Pointer_Object_Try_Traverse |
25.344768975908423 ns/iter |
22.744842791922096 ns/iter |
1.11 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
134.5971992422181 ns/iter |
132.26060561480196 ns/iter |
1.02 |
Pointer_Walker_Schema_ISO_Language |
1350064.7358120522 ns/iter |
1408135.31160891 ns/iter |
0.96 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1234595.282456116 ns/iter |
1208688.61063465 ns/iter |
1.02 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1649914.0520096826 ns/iter |
1722650.3931205398 ns/iter |
0.96 |
Pointer_Position_Tracker_Get_Deeply_Nested |
678.4023101162536 ns/iter |
599.277775030408 ns/iter |
1.13 |
JSON_Array_Of_Objects_Unique |
417.3363887980089 ns/iter |
444.1995594437962 ns/iter |
0.94 |
JSON_Parse_1 |
5046.053630576901 ns/iter |
5249.098796381818 ns/iter |
0.96 |
JSON_Parse_Real |
5325.404181475258 ns/iter |
5639.794278062028 ns/iter |
0.94 |
JSON_Parse_Decimal |
8428.935524531256 ns/iter |
10213.540378370813 ns/iter |
0.83 |
JSON_Parse_Schema_ISO_Language |
3525841.218273863 ns/iter |
3601621.481865847 ns/iter |
0.98 |
JSON_Parse_Integer |
3724.4862256966785 ns/iter |
3682.149235981534 ns/iter |
1.01 |
JSON_Parse_String_NonSSO_Plain |
3428.1990182581717 ns/iter |
3268.1126063047323 ns/iter |
1.05 |
JSON_Parse_String_SSO_Plain |
2782.773898059334 ns/iter |
3014.7198011116825 ns/iter |
0.92 |
JSON_Parse_String_Escape_Heavy |
16208.535228182209 ns/iter |
16648.717567599706 ns/iter |
0.97 |
JSON_Parse_Object_Short_Keys |
8640.134996903867 ns/iter |
8379.323650659393 ns/iter |
1.03 |
JSON_Parse_Object_Scalar_Properties |
4364.88718070267 ns/iter |
4253.195059744302 ns/iter |
1.03 |
JSON_Parse_Object_Array_Properties |
6715.616222668361 ns/iter |
6392.622313362967 ns/iter |
1.05 |
JSON_Parse_Object_Object_Properties |
6552.472978156367 ns/iter |
6591.551761119188 ns/iter |
0.99 |
JSON_Parse_Nested_Containers |
39326.22317621301 ns/iter |
38786.33619344216 ns/iter |
1.01 |
JSON_From_String_Copy |
9.804713075141125 ns/iter |
8.692148675840231 ns/iter |
1.13 |
JSON_From_String_Temporary |
8.532480641325936 ns/iter |
7.398876177322743 ns/iter |
1.15 |
JSON_Number_To_Double |
19.711895990672026 ns/iter |
21.187564406867164 ns/iter |
0.93 |
JSON_Object_At_Last_Key/8 |
4.195771825071639 ns/iter |
3.7472406751109237 ns/iter |
1.12 |
JSON_Object_At_Last_Key/32 |
13.3755809145127 ns/iter |
11.840434535447505 ns/iter |
1.13 |
JSON_Object_At_Last_Key/128 |
47.41315144162491 ns/iter |
48.593308623270836 ns/iter |
0.98 |
JSON_Object_At_Last_Key/512 |
289.55855819377456 ns/iter |
360.66574949198844 ns/iter |
0.80 |
JSON_Fast_Hash_Helm_Chart_Lock |
71.96106838757515 ns/iter |
61.21684197824709 ns/iter |
1.18 |
JSON_Equality_Helm_Chart_Lock |
170.79782185783782 ns/iter |
147.6973751437302 ns/iter |
1.16 |
JSON_Divisible_By_Decimal |
255.75492629031766 ns/iter |
266.82155116814897 ns/iter |
0.96 |
JSON_String_Equal/10 |
5.7222807624834156 ns/iter |
5.383067169617077 ns/iter |
1.06 |
JSON_String_Equal/100 |
6.4202162311421205 ns/iter |
6.027594028105579 ns/iter |
1.07 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.711371895123882 ns/iter |
0.6262743049105542 ns/iter |
1.14 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
22.03013557084572 ns/iter |
25.191046211621053 ns/iter |
0.87 |
JSON_String_Fast_Hash/10 |
2.462019895406923 ns/iter |
2.2642719033122307 ns/iter |
1.09 |
JSON_String_Fast_Hash/100 |
2.4708357950304682 ns/iter |
2.2571210985156624 ns/iter |
1.09 |
JSON_String_Key_Hash/10 |
1.0855836655876314 ns/iter |
1.2463032554881113 ns/iter |
0.87 |
JSON_String_Key_Hash/100 |
14.755346297324053 ns/iter |
12.44066967900533 ns/iter |
1.19 |
JSON_Object_Defines_Miss_Same_Length |
3.1667304864202652 ns/iter |
3.113368885108315 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Small |
3.5204642809203808 ns/iter |
3.112489518284147 ns/iter |
1.13 |
JSON_Object_Defines_Miss_Too_Large |
3.16813166305643 ns/iter |
3.1225383151483173 ns/iter |
1.01 |
Regex_Lower_S_Or_Upper_S_Asterisk |
1.0551986986083364 ns/iter |
0.9345701875181324 ns/iter |
1.13 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.7029612749932556 ns/iter |
0.6228135543831659 ns/iter |
1.13 |
Regex_Period_Asterisk |
1.055629486618167 ns/iter |
0.9336394320079977 ns/iter |
1.13 |
Regex_Group_Period_Asterisk_Group |
0.7035619939680683 ns/iter |
0.6224510929740247 ns/iter |
1.13 |
Regex_Period_Plus |
1.0551218570221972 ns/iter |
0.9346429238473781 ns/iter |
1.13 |
Regex_Period |
0.7035876656553339 ns/iter |
0.622906331131836 ns/iter |
1.13 |
Regex_Caret_Period_Plus_Dollar |
1.0557969298289929 ns/iter |
0.9343967308518903 ns/iter |
1.13 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.7032434236972402 ns/iter |
0.6246915147986264 ns/iter |
1.13 |
Regex_Caret_Period_Asterisk_Dollar |
1.0546780450931663 ns/iter |
0.9337307497682605 ns/iter |
1.13 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.703563345683892 ns/iter |
0.622694739284461 ns/iter |
1.13 |
Regex_Caret_X_Hyphen |
4.219771656870443 ns/iter |
4.368118029665147 ns/iter |
0.97 |
Regex_Period_Md_Dollar |
32.8025711973364 ns/iter |
29.425825261233133 ns/iter |
1.11 |
Regex_Caret_Slash_Period_Asterisk |
4.570561579843679 ns/iter |
4.673294088474014 ns/iter |
0.98 |
Regex_Caret_Period_Range_Dollar |
1.4091076472230322 ns/iter |
1.24814614420334 ns/iter |
1.13 |
Regex_Nested_Backtrack |
40.45576190334287 ns/iter |
38.03832628801116 ns/iter |
1.06 |
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: 6eba6aa | Previous: 3e1d118 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
5.091056999999637 ns/iter |
2.9776652665278633 ns/iter |
1.71 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
5.227975999998762 ns/iter |
2.957495888896274 ns/iter |
1.77 |
Regex_Period_Asterisk |
5.148542857142502 ns/iter |
2.9165402862726313 ns/iter |
1.77 |
Regex_Group_Period_Asterisk_Group |
5.022146999999677 ns/iter |
2.935413478211579 ns/iter |
1.71 |
Regex_Period_Plus |
5.168777999999747 ns/iter |
3.0060845718671407 ns/iter |
1.72 |
Regex_Period |
5.029253999998673 ns/iter |
2.9263006880456066 ns/iter |
1.72 |
Regex_Caret_Period_Plus_Dollar |
5.018488999999136 ns/iter |
2.9340241058324295 ns/iter |
1.71 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
5.061101785713618 ns/iter |
2.9076959559266164 ns/iter |
1.74 |
Regex_Caret_Period_Asterisk_Dollar |
5.081491964284218 ns/iter |
3.0064946834731328 ns/iter |
1.69 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
5.572068750000524 ns/iter |
2.945267183555622 ns/iter |
1.89 |
Regex_Caret_X_Hyphen |
8.764874960871259 ns/iter |
6.1490553571417195 ns/iter |
1.43 |
Regex_Period_Md_Dollar |
46.02834477742895 ns/iter |
28.449787372992386 ns/iter |
1.62 |
Regex_Caret_Slash_Period_Asterisk |
7.981739955358337 ns/iter |
6.187823214286173 ns/iter |
1.29 |
Regex_Caret_Period_Range_Dollar |
5.73311300000114 ns/iter |
3.1602060986883393 ns/iter |
1.81 |
Regex_Nested_Backtrack |
58.972642857152586 ns/iter |
38.99767299107332 ns/iter |
1.51 |
JSON_Array_Of_Objects_Unique |
629.4617857142676 ns/iter |
536.0658928572499 ns/iter |
1.17 |
JSON_Parse_1 |
9016.984745601369 ns/iter |
7778.414062501935 ns/iter |
1.16 |
JSON_Parse_Real |
15969.347116162275 ns/iter |
12057.712499999494 ns/iter |
1.32 |
JSON_Parse_Decimal |
11965.173437499034 ns/iter |
9478.465721136641 ns/iter |
1.26 |
JSON_Parse_Schema_ISO_Language |
7593808.888888513 ns/iter |
7881426.666666711 ns/iter |
0.96 |
JSON_Parse_Integer |
6221.239285713816 ns/iter |
4457.204352582859 ns/iter |
1.40 |
JSON_Parse_String_NonSSO_Plain |
7903.166057295654 ns/iter |
6370.942857143648 ns/iter |
1.24 |
JSON_Parse_String_SSO_Plain |
3879.010044643496 ns/iter |
2811.295798529232 ns/iter |
1.38 |
JSON_Parse_String_Escape_Heavy |
21915.303124998787 ns/iter |
23197.723239696243 ns/iter |
0.94 |
JSON_Parse_Object_Short_Keys |
13594.143999359849 ns/iter |
10398.467187499706 ns/iter |
1.31 |
JSON_Parse_Object_Scalar_Properties |
6855.484821429059 ns/iter |
5327.933035713629 ns/iter |
1.29 |
JSON_Parse_Object_Array_Properties |
11660.937499998778 ns/iter |
9417.622242759146 ns/iter |
1.24 |
JSON_Parse_Object_Object_Properties |
12205.15625000118 ns/iter |
9436.17796348908 ns/iter |
1.29 |
JSON_Parse_Nested_Containers |
80591.3058035758 ns/iter |
63425.0669643066 ns/iter |
1.27 |
JSON_From_String_Copy |
65.86193750000088 ns/iter |
48.99904944867711 ns/iter |
1.34 |
JSON_From_String_Temporary |
60.966090000010816 ns/iter |
56.09431999998833 ns/iter |
1.09 |
JSON_Number_To_Double |
120.23578571427963 ns/iter |
89.67931742503959 ns/iter |
1.34 |
JSON_Object_At_Last_Key/8 |
7.758065848213797 ns/iter |
7.6287232142848085 ns/iter |
1.02 |
JSON_Object_At_Last_Key/32 |
23.489015624996057 ns/iter |
18.916896597471155 ns/iter |
1.24 |
JSON_Object_At_Last_Key/128 |
91.89791294644019 ns/iter |
91.59088169644139 ns/iter |
1.00 |
JSON_Object_At_Last_Key/512 |
432.3038778153936 ns/iter |
324.1121428570994 ns/iter |
1.33 |
JSON_Fast_Hash_Helm_Chart_Lock |
105.2758750000038 ns/iter |
87.09739955357065 ns/iter |
1.21 |
JSON_Equality_Helm_Chart_Lock |
216.65700372068812 ns/iter |
199.28488396053226 ns/iter |
1.09 |
JSON_Divisible_By_Decimal |
312.8582142857843 ns/iter |
255.92389312164784 ns/iter |
1.22 |
JSON_String_Equal/10 |
10.775793701893484 ns/iter |
8.817167410715143 ns/iter |
1.22 |
JSON_String_Equal/100 |
11.892632142856234 ns/iter |
11.861587500000326 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.5228696428574233 ns/iter |
1.2940823214287482 ns/iter |
1.95 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.383978730429847 ns/iter |
10.107518750000821 ns/iter |
1.42 |
JSON_String_Fast_Hash/10 |
6.790119642857917 ns/iter |
4.187808124999037 ns/iter |
1.62 |
JSON_String_Fast_Hash/100 |
6.7928660714271825 ns/iter |
4.140939337750452 ns/iter |
1.64 |
JSON_String_Key_Hash/10 |
5.41019910714218 ns/iter |
3.1439392857147856 ns/iter |
1.72 |
JSON_String_Key_Hash/100 |
11.893826785715028 ns/iter |
8.332004427090625 ns/iter |
1.43 |
JSON_Object_Defines_Miss_Same_Length |
4.731170769489274 ns/iter |
4.7880787500005795 ns/iter |
0.99 |
JSON_Object_Defines_Miss_Too_Small |
4.735976394622174 ns/iter |
5.294893000000229 ns/iter |
0.89 |
JSON_Object_Defines_Miss_Too_Large |
4.774523448156121 ns/iter |
5.243456000000606 ns/iter |
0.91 |
Pointer_Object_Traverse |
68.66880580356545 ns/iter |
41.97925223214938 ns/iter |
1.64 |
Pointer_Object_Try_Traverse |
72.13138392858453 ns/iter |
45.6150576284414 ns/iter |
1.58 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
187.63401171276266 ns/iter |
147.7447321428928 ns/iter |
1.27 |
Pointer_Walker_Schema_ISO_Language |
10607015.625001991 ns/iter |
10628518.749999927 ns/iter |
1.00 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2468922.088353676 ns/iter |
2181684.062500011 ns/iter |
1.13 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3632451.3368981574 ns/iter |
3772322.4598930706 ns/iter |
0.96 |
Pointer_Position_Tracker_Get_Deeply_Nested |
535.4281341108031 ns/iter |
573.7636160714844 ns/iter |
0.93 |
JSONPath_Descendant_Filter_Nested |
2410.5100329129773 ns/iter |
1754.8537096908562 ns/iter |
1.37 |
URITemplateRouter_Create |
40692.24888392549 ns/iter |
36993.9118303567 ns/iter |
1.10 |
URITemplateRouter_Match |
237.68920338282808 ns/iter |
249.79457033542934 ns/iter |
0.95 |
URITemplateRouter_Match_BasePath |
266.9343534346242 ns/iter |
282.8069528116642 ns/iter |
0.94 |
URITemplateRouterView_Restore |
34219.53311770039 ns/iter |
20525.523608418076 ns/iter |
1.67 |
URITemplateRouterView_Match |
181.87646266755493 ns/iter |
179.61486247416633 ns/iter |
1.01 |
URITemplateRouterView_Match_BasePath |
213.6523498369163 ns/iter |
198.49800676352848 ns/iter |
1.08 |
URITemplateRouterView_Arguments |
544.0763999999945 ns/iter |
450.1229263062773 ns/iter |
1.21 |
JSONL_Parse_Large |
33161623.80951937 ns/iter |
25440271.428570736 ns/iter |
1.30 |
JSONL_Parse_Large_GZIP |
33950040.00000199 ns/iter |
25949246.153843958 ns/iter |
1.31 |
JSONLD_Catalog_Annotation_List_Populate |
3132855.8685449953 ns/iter |
3016982.6271181763 ns/iter |
1.04 |
JSONLD_Catalog_Materialize |
8083992.18750111 ns/iter |
7417498.888887368 ns/iter |
1.09 |
HTML_Build_Table_100000 |
91784171.42857143 ns/iter |
103776616.66666426 ns/iter |
0.88 |
HTML_Render_Table_100000 |
7791645.555557301 ns/iter |
13216244.000000188 ns/iter |
0.59 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36334684.21052337 ns/iter |
31546690.909088038 ns/iter |
1.15 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
9947505.333332932 ns/iter |
12510262.50000109 ns/iter |
0.80 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2118086.086956401 ns/iter |
2118452.1739126905 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
637700.8928570913 ns/iter |
659012.5892858265 ns/iter |
0.97 |
JOSE_VerifySignature_RS256 |
22616.424999995386 ns/iter |
20297.019905981222 ns/iter |
1.11 |
JOSE_VerifySignature_ES512 |
1401818.1249998207 ns/iter |
1066923.750000066 ns/iter |
1.31 |
This comment was automatically generated by workflow using github-action-benchmark.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com