Add the concept of regex dialects to to_regex#2619
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
31aae49 to
25b09af
Compare
🤖 Augment PR SummarySummary: This PR adds an explicit “regex dialect” concept to the core regex API so callers can choose how patterns are interpreted. Changes:
Notes: The dialect argument is currently a no-op in the implementation (consistent with only one dialect existing today), but the API surface is now ready for additional dialects later. 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
Benchmark (macos/llvm)
Details
| Benchmark suite | Current: 25b09af | Previous: 367f6ef | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.8106176359464863 ns/iter |
1.7553658732721293 ns/iter |
1.03 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.20055580622388 ns/iter |
1.7455176477260252 ns/iter |
1.26 |
Regex_Period_Asterisk |
1.9858357327236327 ns/iter |
1.7499882987533069 ns/iter |
1.13 |
Regex_Group_Period_Asterisk_Group |
1.7012757165495305 ns/iter |
1.9281889463038555 ns/iter |
0.88 |
Regex_Period_Plus |
2.237159000673483 ns/iter |
2.394350964674121 ns/iter |
0.93 |
Regex_Period |
2.0418177744269412 ns/iter |
2.468625991734782 ns/iter |
0.83 |
Regex_Caret_Period_Plus_Dollar |
2.1667310695147983 ns/iter |
2.17588878753493 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.0765632851579485 ns/iter |
2.1818353553940466 ns/iter |
0.95 |
Regex_Caret_Period_Asterisk_Dollar |
1.7327508570005583 ns/iter |
1.7297925924959368 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.8036069155484638 ns/iter |
1.7497657721181354 ns/iter |
1.03 |
Regex_Caret_X_Hyphen |
6.013518737257748 ns/iter |
6.118001778910527 ns/iter |
0.98 |
Regex_Period_Md_Dollar |
17.098591042315192 ns/iter |
18.23489052223741 ns/iter |
0.94 |
Regex_Caret_Slash_Period_Asterisk |
4.840052155826586 ns/iter |
5.079958585967412 ns/iter |
0.95 |
Regex_Caret_Period_Range_Dollar |
2.1177981916662816 ns/iter |
2.2046778392783066 ns/iter |
0.96 |
Regex_Nested_Backtrack |
25.816517260393418 ns/iter |
33.63032972303279 ns/iter |
0.77 |
JSON_Array_Of_Objects_Unique |
348.03066316253 ns/iter |
507.3069229680822 ns/iter |
0.69 |
JSON_Parse_1 |
3681.960513337235 ns/iter |
9160.1693811483 ns/iter |
0.40 |
JSON_Parse_Real |
5179.224889092205 ns/iter |
9980.037838850069 ns/iter |
0.52 |
JSON_Parse_Decimal |
5985.1742067441555 ns/iter |
9856.776907920965 ns/iter |
0.61 |
JSON_Parse_Schema_ISO_Language |
3159122.0204080977 ns/iter |
4685469.6993027795 ns/iter |
0.67 |
JSON_Parse_Integer |
3038.202521160859 ns/iter |
5469.80000000076 ns/iter |
0.56 |
JSON_Parse_String_NonSSO_Plain |
3524.5398773006705 ns/iter |
8736.348263755344 ns/iter |
0.40 |
JSON_Parse_String_SSO_Plain |
1740.2845110255973 ns/iter |
3396.981979565658 ns/iter |
0.51 |
JSON_Parse_String_Escape_Heavy |
20195.225672350487 ns/iter |
26304.05945737086 ns/iter |
0.77 |
JSON_Parse_Object_Short_Keys |
5650.677570299578 ns/iter |
9847.523746317067 ns/iter |
0.57 |
JSON_Parse_Object_Scalar_Properties |
3104.5678912443127 ns/iter |
4950.379201798641 ns/iter |
0.63 |
JSON_Parse_Object_Array_Properties |
3807.6434987559064 ns/iter |
7972.4777721072605 ns/iter |
0.48 |
JSON_Parse_Object_Object_Properties |
3937.389942231189 ns/iter |
8863.847214963045 ns/iter |
0.44 |
JSON_Parse_Nested_Containers |
27926.31063369611 ns/iter |
77994.09220598517 ns/iter |
0.36 |
JSON_From_String_Copy |
28.35495267907283 ns/iter |
29.601501494971814 ns/iter |
0.96 |
JSON_From_String_Temporary |
29.896624993944602 ns/iter |
25.537032072667056 ns/iter |
1.17 |
JSON_Number_To_Double |
36.769363885178215 ns/iter |
51.52226250002059 ns/iter |
0.71 |
JSON_Object_At_Last_Key/8 |
4.462961848716961 ns/iter |
5.430922305387144 ns/iter |
0.82 |
JSON_Object_At_Last_Key/32 |
14.21509108409054 ns/iter |
14.523217435514384 ns/iter |
0.98 |
JSON_Object_At_Last_Key/128 |
59.542890974503344 ns/iter |
62.382372066555696 ns/iter |
0.95 |
JSON_Object_At_Last_Key/512 |
189.65164278591445 ns/iter |
214.63889754873063 ns/iter |
0.88 |
JSON_Fast_Hash_Helm_Chart_Lock |
66.78900874657045 ns/iter |
67.08826055653215 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
142.92608151996535 ns/iter |
157.93128660650925 ns/iter |
0.90 |
JSON_Divisible_By_Decimal |
201.77209505332107 ns/iter |
211.68079494862417 ns/iter |
0.95 |
JSON_String_Equal/10 |
6.991896991672346 ns/iter |
7.98946930991054 ns/iter |
0.88 |
JSON_String_Equal/100 |
7.035188171273516 ns/iter |
7.300503720053014 ns/iter |
0.96 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.8132479150685287 ns/iter |
0.3567602895460574 ns/iter |
2.28 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.891695783172489 ns/iter |
3.516589721354848 ns/iter |
1.11 |
JSON_String_Fast_Hash/10 |
2.625822786985299 ns/iter |
2.8079535054708322 ns/iter |
0.94 |
JSON_String_Fast_Hash/100 |
2.189888058969701 ns/iter |
2.7191383575513135 ns/iter |
0.81 |
JSON_String_Key_Hash/10 |
1.4304462641161555 ns/iter |
2.3325752807341367 ns/iter |
0.61 |
JSON_String_Key_Hash/100 |
2.016089835425265 ns/iter |
2.5740102491444663 ns/iter |
0.78 |
JSON_Object_Defines_Miss_Same_Length |
2.691388050946836 ns/iter |
3.202287634596945 ns/iter |
0.84 |
JSON_Object_Defines_Miss_Too_Small |
2.8954013321639964 ns/iter |
3.186580716900893 ns/iter |
0.91 |
JSON_Object_Defines_Miss_Too_Large |
2.705272036754779 ns/iter |
3.061484301407403 ns/iter |
0.88 |
Pointer_Object_Traverse |
19.520909859344833 ns/iter |
27.787158030801944 ns/iter |
0.70 |
Pointer_Object_Try_Traverse |
26.218783287948405 ns/iter |
30.072001516266916 ns/iter |
0.87 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
146.7709613205419 ns/iter |
166.8157475588646 ns/iter |
0.88 |
Pointer_Walker_Schema_ISO_Language |
3775291.8672986287 ns/iter |
2916311.8860760964 ns/iter |
1.29 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
821709.6290322823 ns/iter |
1366032.656964924 ns/iter |
0.60 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1153293.6217850756 ns/iter |
1161109.8169716492 ns/iter |
0.99 |
Pointer_Position_Tracker_Get_Deeply_Nested |
404.19694554108423 ns/iter |
494.02844242657164 ns/iter |
0.82 |
URITemplateRouter_Create |
22589.247962031008 ns/iter |
36370.793556529556 ns/iter |
0.62 |
URITemplateRouter_Match |
156.3741830231266 ns/iter |
192.03381668647023 ns/iter |
0.81 |
URITemplateRouter_Match_BasePath |
181.48842100030086 ns/iter |
202.41926966597634 ns/iter |
0.90 |
URITemplateRouterView_Restore |
9508.938194418084 ns/iter |
10506.22709420965 ns/iter |
0.91 |
URITemplateRouterView_Match |
123.42864096694507 ns/iter |
155.88828627228904 ns/iter |
0.79 |
URITemplateRouterView_Match_BasePath |
140.66346567576 ns/iter |
204.06518851544627 ns/iter |
0.69 |
URITemplateRouterView_Arguments |
373.74455848145135 ns/iter |
757.9622491325817 ns/iter |
0.49 |
JSONL_Parse_Large |
12083804.435482923 ns/iter |
16429561.111110363 ns/iter |
0.74 |
JSONL_Parse_Large_GZIP |
12211209.070175612 ns/iter |
14781056.437499275 ns/iter |
0.83 |
JSONLD_Catalog_Annotation_List_Populate |
852043.6219035336 ns/iter |
1030804.9295776406 ns/iter |
0.83 |
JSONLD_Catalog_Materialize |
2660733.8037738716 ns/iter |
5936457.702291105 ns/iter |
0.45 |
HTML_Build_Table_100000 |
61638303.090903305 ns/iter |
42673922.20002269 ns/iter |
1.44 |
HTML_Render_Table_100000 |
2284122.891696398 ns/iter |
2565435.91101837 ns/iter |
0.89 |
GZIP_Compress_ISO_Language_Set_3_Locations |
24800815.500002824 ns/iter |
36828397.90001254 ns/iter |
0.67 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4751638.485294219 ns/iter |
3933978.4482752755 ns/iter |
1.21 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1404123.31515145 ns/iter |
1858340.260546345 ns/iter |
0.76 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
257167.69188392363 ns/iter |
335674.9486617169 ns/iter |
0.77 |
JOSE_VerifySignature_RS256 |
21604.547370092198 ns/iter |
27111.60177600351 ns/iter |
0.80 |
JOSE_VerifySignature_ES512 |
1046650.630901429 ns/iter |
1319645.7555548274 ns/iter |
0.79 |
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: 25b09af | Previous: 367f6ef | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
22475.577397390996 ns/iter |
22013.63750039524 ns/iter |
1.02 |
JOSE_VerifySignature_ES512 |
578369.4089035506 ns/iter |
575361.1376752012 ns/iter |
1.01 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36487011.63158301 ns/iter |
36372614.10526542 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4376300.459119553 ns/iter |
4376195.425000163 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2025326.686956417 ns/iter |
2016153.3959537463 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
380986.01143168693 ns/iter |
380116.6735582033 ns/iter |
1.00 |
HTML_Build_Table_100000 |
76421252.88888717 ns/iter |
60279994.2499909 ns/iter |
1.27 |
HTML_Render_Table_100000 |
1822376.6057441721 ns/iter |
1835212.4999999348 ns/iter |
0.99 |
JSONLD_Catalog_Annotation_List_Populate |
1331836.4509432458 ns/iter |
1327621.022684227 ns/iter |
1.00 |
JSONLD_Catalog_Materialize |
6825067.345795173 ns/iter |
6768589.552380686 ns/iter |
1.01 |
JSONL_Parse_Large |
13736212.333333688 ns/iter |
13439489.961539354 ns/iter |
1.02 |
JSONL_Parse_Large_GZIP |
15069325.804349972 ns/iter |
14901535.021275526 ns/iter |
1.01 |
URITemplateRouter_Create |
30093.617308850295 ns/iter |
30298.207070923378 ns/iter |
0.99 |
URITemplateRouter_Match |
154.2327449445264 ns/iter |
159.63728333147264 ns/iter |
0.97 |
URITemplateRouter_Match_BasePath |
180.0372009541239 ns/iter |
188.55690299234755 ns/iter |
0.95 |
URITemplateRouterView_Restore |
8557.719459946698 ns/iter |
8339.320203870779 ns/iter |
1.03 |
URITemplateRouterView_Match |
122.72306615529214 ns/iter |
123.34460647902004 ns/iter |
0.99 |
URITemplateRouterView_Match_BasePath |
144.10801727390472 ns/iter |
142.1201820923303 ns/iter |
1.01 |
URITemplateRouterView_Arguments |
469.3328889485232 ns/iter |
484.3210048675189 ns/iter |
0.97 |
Pointer_Object_Traverse |
31.053133894798943 ns/iter |
30.81906562529856 ns/iter |
1.01 |
Pointer_Object_Try_Traverse |
22.72330266535975 ns/iter |
22.76022223372298 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
161.97323329011192 ns/iter |
167.65515119693222 ns/iter |
0.97 |
Pointer_Walker_Schema_ISO_Language |
2743097.1818183777 ns/iter |
2621693.7232475574 ns/iter |
1.05 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1807918.455497547 ns/iter |
1838584.0296495415 ns/iter |
0.98 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1719573.2933987086 ns/iter |
1742400.8391088536 ns/iter |
0.99 |
Pointer_Position_Tracker_Get_Deeply_Nested |
405.4282966733812 ns/iter |
534.918583165993 ns/iter |
0.76 |
JSON_Array_Of_Objects_Unique |
462.2646480283388 ns/iter |
429.2028185914142 ns/iter |
1.08 |
JSON_Parse_1 |
9616.13376841867 ns/iter |
9902.374395932782 ns/iter |
0.97 |
JSON_Parse_Real |
7658.84076265931 ns/iter |
7698.066364145704 ns/iter |
0.99 |
JSON_Parse_Decimal |
12449.075183168554 ns/iter |
12599.273522583891 ns/iter |
0.99 |
JSON_Parse_Schema_ISO_Language |
6603693.452830758 ns/iter |
6551507.351852488 ns/iter |
1.01 |
JSON_Parse_Integer |
5741.085468330369 ns/iter |
5675.640968092103 ns/iter |
1.01 |
JSON_Parse_String_NonSSO_Plain |
12449.704274901742 ns/iter |
12209.947688799795 ns/iter |
1.02 |
JSON_Parse_String_SSO_Plain |
5104.718969657569 ns/iter |
4689.69366834191 ns/iter |
1.09 |
JSON_Parse_String_Escape_Heavy |
26885.10817860858 ns/iter |
25910.55963234754 ns/iter |
1.04 |
JSON_Parse_Object_Short_Keys |
13430.423978681241 ns/iter |
13578.593026645462 ns/iter |
0.99 |
JSON_Parse_Object_Scalar_Properties |
6872.062232853542 ns/iter |
6946.64220511871 ns/iter |
0.99 |
JSON_Parse_Object_Array_Properties |
11392.280887166147 ns/iter |
12037.30346746371 ns/iter |
0.95 |
JSON_Parse_Object_Object_Properties |
11592.117188798293 ns/iter |
11956.846688518957 ns/iter |
0.97 |
JSON_Parse_Nested_Containers |
96962.91825462892 ns/iter |
99563.50366998333 ns/iter |
0.97 |
JSON_From_String_Copy |
17.46934005635359 ns/iter |
18.099708096759628 ns/iter |
0.97 |
JSON_From_String_Temporary |
15.213702470882742 ns/iter |
15.136113859765896 ns/iter |
1.01 |
JSON_Number_To_Double |
20.916956803224934 ns/iter |
20.901547091726254 ns/iter |
1.00 |
JSON_Object_At_Last_Key/8 |
5.926115514326993 ns/iter |
5.925029073301035 ns/iter |
1.00 |
JSON_Object_At_Last_Key/32 |
21.8577918877122 ns/iter |
21.815458723042852 ns/iter |
1.00 |
JSON_Object_At_Last_Key/128 |
87.56632972972143 ns/iter |
87.63039700416239 ns/iter |
1.00 |
JSON_Object_At_Last_Key/512 |
402.53577650796746 ns/iter |
401.0533082052509 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
61.88622706009027 ns/iter |
62.09062972731767 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
173.42106735858545 ns/iter |
170.67474493830582 ns/iter |
1.02 |
JSON_Divisible_By_Decimal |
248.07695818562357 ns/iter |
249.48762720002918 ns/iter |
0.99 |
JSON_String_Equal/10 |
6.179123166914751 ns/iter |
6.061898491445567 ns/iter |
1.02 |
JSON_String_Equal/100 |
6.668782602517245 ns/iter |
6.666381536209286 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7400058801976721 ns/iter |
0.7403617312843916 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.22545703275435 ns/iter |
25.195771310596786 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.263049459525028 ns/iter |
2.2947437146207212 ns/iter |
0.99 |
JSON_String_Fast_Hash/100 |
2.264141629410686 ns/iter |
2.2944004137337535 ns/iter |
0.99 |
JSON_String_Key_Hash/10 |
1.2828430326822748 ns/iter |
1.2465453797583173 ns/iter |
1.03 |
JSON_String_Key_Hash/100 |
12.454386110108338 ns/iter |
12.453298442064586 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.1211366960892417 ns/iter |
3.1133670917963006 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.117515204818906 ns/iter |
3.113964664262954 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.444322152946317 ns/iter |
3.423893350277841 ns/iter |
1.01 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.6231476326754379 ns/iter |
0.6250997092857805 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.9354030674439968 ns/iter |
0.935335767542576 ns/iter |
1.00 |
Regex_Period_Asterisk |
0.6232831763636437 ns/iter |
0.6225803106264897 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
0.9427046679093647 ns/iter |
0.941311407974191 ns/iter |
1.00 |
Regex_Period_Plus |
0.6230641463549423 ns/iter |
0.622198800126182 ns/iter |
1.00 |
Regex_Period |
0.9352931826993885 ns/iter |
0.9338258556531659 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
0.6231574343003894 ns/iter |
0.6226014454731402 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.9339288131743471 ns/iter |
0.9338326101069574 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
0.6233304617485476 ns/iter |
0.623189011459665 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.9347535615769261 ns/iter |
0.9346067952076762 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
3.741342372057354 ns/iter |
3.7458327782915113 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
28.637302270854168 ns/iter |
28.97201388514184 ns/iter |
0.99 |
Regex_Caret_Slash_Period_Asterisk |
4.046156954142047 ns/iter |
4.045633938912747 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
1.5577267887364055 ns/iter |
1.5566688459088052 ns/iter |
1.00 |
Regex_Nested_Backtrack |
37.790841932482074 ns/iter |
37.76689477911594 ns/iter |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: 25b09af | Previous: 367f6ef | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.1859092966380818 ns/iter |
2.1571118187046916 ns/iter |
1.01 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.18250827521468 ns/iter |
2.147680467130217 ns/iter |
1.02 |
Regex_Period_Asterisk |
2.2345069248856717 ns/iter |
2.1756663503778215 ns/iter |
1.03 |
Regex_Group_Period_Asterisk_Group |
2.1871251356891284 ns/iter |
2.1521530199733445 ns/iter |
1.02 |
Regex_Period_Plus |
2.490953987816554 ns/iter |
2.081437777680916 ns/iter |
1.20 |
Regex_Period |
2.4898032737616376 ns/iter |
2.100867740526169 ns/iter |
1.19 |
Regex_Caret_Period_Plus_Dollar |
2.8014713837491265 ns/iter |
2.175156603103565 ns/iter |
1.29 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.8023745164143548 ns/iter |
2.0631090001052197 ns/iter |
1.36 |
Regex_Caret_Period_Asterisk_Dollar |
3.110637756258779 ns/iter |
2.1141141827364622 ns/iter |
1.47 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.1103005776525956 ns/iter |
2.1523256374625284 ns/iter |
1.45 |
Regex_Caret_X_Hyphen |
6.8542480817842915 ns/iter |
4.03582076597308 ns/iter |
1.70 |
Regex_Period_Md_Dollar |
28.565549673475164 ns/iter |
24.631547226056288 ns/iter |
1.16 |
Regex_Caret_Slash_Period_Asterisk |
6.851932511019277 ns/iter |
3.7491786327976313 ns/iter |
1.83 |
Regex_Caret_Period_Range_Dollar |
4.0475309114564855 ns/iter |
2.315990513969119 ns/iter |
1.75 |
Regex_Nested_Backtrack |
38.586275488629965 ns/iter |
35.27756274491684 ns/iter |
1.09 |
JSON_Array_Of_Objects_Unique |
474.0369814029267 ns/iter |
375.27533554375265 ns/iter |
1.26 |
JSON_Parse_1 |
5007.367744742925 ns/iter |
4557.070754226518 ns/iter |
1.10 |
JSON_Parse_Real |
5304.669740304281 ns/iter |
4731.0369105310765 ns/iter |
1.12 |
JSON_Parse_Decimal |
9437.6575836596 ns/iter |
7517.840742218681 ns/iter |
1.26 |
JSON_Parse_Schema_ISO_Language |
3515365.9004976843 ns/iter |
3270186.9395348397 ns/iter |
1.07 |
JSON_Parse_Integer |
3859.8182615072906 ns/iter |
3764.3809942240887 ns/iter |
1.03 |
JSON_Parse_String_NonSSO_Plain |
4936.53808908721 ns/iter |
4570.9915134929415 ns/iter |
1.08 |
JSON_Parse_String_SSO_Plain |
2717.0135646563012 ns/iter |
2281.5847872328886 ns/iter |
1.19 |
JSON_Parse_String_Escape_Heavy |
14647.313252268406 ns/iter |
16489.029372148314 ns/iter |
0.89 |
JSON_Parse_Object_Short_Keys |
10595.224109412888 ns/iter |
7054.68708769207 ns/iter |
1.50 |
JSON_Parse_Object_Scalar_Properties |
4111.0856182646185 ns/iter |
3694.928385224159 ns/iter |
1.11 |
JSON_Parse_Object_Array_Properties |
5788.890787070062 ns/iter |
5029.718321936677 ns/iter |
1.15 |
JSON_Parse_Object_Object_Properties |
5693.304418771466 ns/iter |
4961.290919150957 ns/iter |
1.15 |
JSON_Parse_Nested_Containers |
45328.61354658874 ns/iter |
41406.99384032507 ns/iter |
1.09 |
JSON_From_String_Copy |
19.624873050727675 ns/iter |
15.528269009697299 ns/iter |
1.26 |
JSON_From_String_Temporary |
17.14559630816292 ns/iter |
15.734216059080643 ns/iter |
1.09 |
JSON_Number_To_Double |
23.30161318515311 ns/iter |
20.256317577154547 ns/iter |
1.15 |
JSON_Object_At_Last_Key/8 |
3.8453583961585056 ns/iter |
4.956812785293392 ns/iter |
0.78 |
JSON_Object_At_Last_Key/32 |
12.476822926908538 ns/iter |
17.986964540808035 ns/iter |
0.69 |
JSON_Object_At_Last_Key/128 |
54.488839848290496 ns/iter |
73.94416338131575 ns/iter |
0.74 |
JSON_Object_At_Last_Key/512 |
399.50129470409126 ns/iter |
306.35026732116125 ns/iter |
1.30 |
JSON_Fast_Hash_Helm_Chart_Lock |
64.97916130525614 ns/iter |
49.557280604043676 ns/iter |
1.31 |
JSON_Equality_Helm_Chart_Lock |
161.51734124057856 ns/iter |
126.65904219012721 ns/iter |
1.28 |
JSON_Divisible_By_Decimal |
253.92259871443625 ns/iter |
256.16048880671326 ns/iter |
0.99 |
JSON_String_Equal/10 |
6.239162425665412 ns/iter |
4.610587650474878 ns/iter |
1.35 |
JSON_String_Equal/100 |
6.855428920643847 ns/iter |
5.775159209483473 ns/iter |
1.19 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9360553694915599 ns/iter |
0.6935270150301667 ns/iter |
1.35 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
10.581986821462309 ns/iter |
9.798054238946758 ns/iter |
1.08 |
JSON_String_Fast_Hash/10 |
2.1866546783421965 ns/iter |
1.7404854354958008 ns/iter |
1.26 |
JSON_String_Fast_Hash/100 |
2.1802865263036506 ns/iter |
1.791508066734523 ns/iter |
1.22 |
JSON_String_Key_Hash/10 |
2.1820179398180284 ns/iter |
1.7302181578669045 ns/iter |
1.26 |
JSON_String_Key_Hash/100 |
6.539258362791366 ns/iter |
6.7462759230539024 ns/iter |
0.97 |
JSON_Object_Defines_Miss_Same_Length |
2.6433993800477684 ns/iter |
3.0272468332718008 ns/iter |
0.87 |
JSON_Object_Defines_Miss_Too_Small |
2.6227309097379288 ns/iter |
3.4625581094411872 ns/iter |
0.76 |
JSON_Object_Defines_Miss_Too_Large |
3.4257801043686205 ns/iter |
3.9518452719773274 ns/iter |
0.87 |
Pointer_Object_Traverse |
28.59921429235351 ns/iter |
29.81083927604788 ns/iter |
0.96 |
Pointer_Object_Try_Traverse |
30.918128114144363 ns/iter |
36.86705011570261 ns/iter |
0.84 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
168.7022297470326 ns/iter |
165.1233252451327 ns/iter |
1.02 |
Pointer_Walker_Schema_ISO_Language |
2667110.2137404415 ns/iter |
2677493.0426355707 ns/iter |
1.00 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1241030.8465607362 ns/iter |
1149639.5274192647 ns/iter |
1.08 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1604391.6589859908 ns/iter |
1947741.0027778635 ns/iter |
0.82 |
Pointer_Position_Tracker_Get_Deeply_Nested |
687.7397194233813 ns/iter |
699.4155418229304 ns/iter |
0.98 |
URITemplateRouter_Create |
31824.20687454466 ns/iter |
29311.690214194725 ns/iter |
1.09 |
URITemplateRouter_Match |
174.9516852574435 ns/iter |
144.05153417944274 ns/iter |
1.21 |
URITemplateRouter_Match_BasePath |
203.89883130092232 ns/iter |
159.8309906811015 ns/iter |
1.28 |
URITemplateRouterView_Restore |
8265.736329718386 ns/iter |
3828.9468741230585 ns/iter |
2.16 |
URITemplateRouterView_Match |
145.37796397441298 ns/iter |
127.54914162421476 ns/iter |
1.14 |
URITemplateRouterView_Match_BasePath |
164.32997934834094 ns/iter |
143.9316519961126 ns/iter |
1.14 |
URITemplateRouterView_Arguments |
429.7304835687215 ns/iter |
431.72849682186575 ns/iter |
1.00 |
JSONL_Parse_Large |
9423897.027026264 ns/iter |
8869366.392404221 ns/iter |
1.06 |
JSONL_Parse_Large_GZIP |
11023156.703124925 ns/iter |
10434271.647058574 ns/iter |
1.06 |
JSONLD_Catalog_Annotation_List_Populate |
1266587.7709090721 ns/iter |
1211881.5493934355 ns/iter |
1.05 |
JSONLD_Catalog_Materialize |
4190287.7844309662 ns/iter |
4061003.4399995646 ns/iter |
1.03 |
HTML_Build_Table_100000 |
67879938.59999232 ns/iter |
71109643.90000163 ns/iter |
0.95 |
HTML_Render_Table_100000 |
5174236.932836224 ns/iter |
10521420.680554962 ns/iter |
0.49 |
GZIP_Compress_ISO_Language_Set_3_Locations |
33076773.809528146 ns/iter |
30764368.34782192 ns/iter |
1.08 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4066826.656977027 ns/iter |
5876781.884297103 ns/iter |
0.69 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1877194.370967538 ns/iter |
1869955.1733334372 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
354143.0212443237 ns/iter |
333979.0473231407 ns/iter |
1.06 |
JOSE_VerifySignature_RS256 |
60351.79794224391 ns/iter |
49218.533473973264 ns/iter |
1.23 |
JOSE_VerifySignature_ES512 |
2460215.912587462 ns/iter |
2119170.763636579 ns/iter |
1.16 |
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: 25b09af | Previous: 367f6ef | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
5.015871273441115 ns/iter |
2.8765209362164033 ns/iter |
1.74 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
5.3846980000002995 ns/iter |
2.8577522506364232 ns/iter |
1.88 |
Regex_Period_Asterisk |
5.340118000001439 ns/iter |
2.9142363813263783 ns/iter |
1.83 |
Regex_Group_Period_Asterisk_Group |
5.331778571429271 ns/iter |
2.9203127665535615 ns/iter |
1.83 |
Regex_Period_Plus |
5.019161607143425 ns/iter |
2.923622677266509 ns/iter |
1.72 |
Regex_Period |
4.7765741082090525 ns/iter |
2.937245196958985 ns/iter |
1.63 |
Regex_Caret_Period_Plus_Dollar |
5.020659000001615 ns/iter |
2.8876170273822437 ns/iter |
1.74 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
4.78833473321125 ns/iter |
2.9497915585495185 ns/iter |
1.62 |
Regex_Caret_Period_Asterisk_Dollar |
5.017082000001665 ns/iter |
2.991316312957351 ns/iter |
1.68 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
5.380504000002019 ns/iter |
2.968066605817888 ns/iter |
1.81 |
Regex_Caret_X_Hyphen |
8.186588802738626 ns/iter |
6.6108044642853825 ns/iter |
1.24 |
Regex_Period_Md_Dollar |
44.650250940618356 ns/iter |
29.091439155839133 ns/iter |
1.53 |
Regex_Caret_Slash_Period_Asterisk |
8.156611607143459 ns/iter |
6.251236607141664 ns/iter |
1.30 |
Regex_Caret_Period_Range_Dollar |
5.65397399999938 ns/iter |
3.0631410714282277 ns/iter |
1.85 |
Regex_Nested_Backtrack |
58.959866071433 ns/iter |
40.23089285713409 ns/iter |
1.47 |
JSON_Array_Of_Objects_Unique |
609.5455357142653 ns/iter |
577.5458000000526 ns/iter |
1.06 |
JSON_Parse_1 |
9317.95304485267 ns/iter |
7325.392857142939 ns/iter |
1.27 |
JSON_Parse_Real |
16498.47098214252 ns/iter |
12539.143750000649 ns/iter |
1.32 |
JSON_Parse_Decimal |
11928.782812500316 ns/iter |
10019.990089328443 ns/iter |
1.19 |
JSON_Parse_Schema_ISO_Language |
7347132.222222779 ns/iter |
7973178.888889582 ns/iter |
0.92 |
JSON_Parse_Integer |
6145.11339285733 ns/iter |
4380.352500000129 ns/iter |
1.40 |
JSON_Parse_String_NonSSO_Plain |
7707.437500000326 ns/iter |
6814.875000001409 ns/iter |
1.13 |
JSON_Parse_String_SSO_Plain |
3596.2969047605957 ns/iter |
2778.109920487318 ns/iter |
1.29 |
JSON_Parse_String_Escape_Heavy |
22161.828125000226 ns/iter |
23279.201124981824 ns/iter |
0.95 |
JSON_Parse_Object_Short_Keys |
13366.501265618519 ns/iter |
10009.3218749997 ns/iter |
1.34 |
JSON_Parse_Object_Scalar_Properties |
6943.937500000377 ns/iter |
5174.455999999736 ns/iter |
1.34 |
JSON_Parse_Object_Array_Properties |
11369.523214284527 ns/iter |
9136.818139206083 ns/iter |
1.24 |
JSON_Parse_Object_Object_Properties |
11492.96071428856 ns/iter |
9296.77367511668 ns/iter |
1.24 |
JSON_Parse_Nested_Containers |
79725.56582296861 ns/iter |
63417.142857145685 ns/iter |
1.26 |
JSON_From_String_Copy |
64.39431249999319 ns/iter |
49.92557000000488 ns/iter |
1.29 |
JSON_From_String_Temporary |
58.510562500008035 ns/iter |
57.248624999987534 ns/iter |
1.02 |
JSON_Number_To_Double |
120.06389062499066 ns/iter |
94.95040625001393 ns/iter |
1.26 |
JSON_Object_At_Last_Key/8 |
7.262433035715483 ns/iter |
7.09604821428554 ns/iter |
1.02 |
JSON_Object_At_Last_Key/32 |
22.918154878150048 ns/iter |
22.32772812499917 ns/iter |
1.03 |
JSON_Object_At_Last_Key/128 |
89.58728171487573 ns/iter |
81.23311383929632 ns/iter |
1.10 |
JSON_Object_At_Last_Key/512 |
415.85280286369687 ns/iter |
281.60596957119515 ns/iter |
1.48 |
JSON_Fast_Hash_Helm_Chart_Lock |
111.0470625000204 ns/iter |
96.37038855487947 ns/iter |
1.15 |
JSON_Equality_Helm_Chart_Lock |
212.20018025896525 ns/iter |
244.98874999998017 ns/iter |
0.87 |
JSON_Divisible_By_Decimal |
300.4125289717947 ns/iter |
264.0670832172968 ns/iter |
1.14 |
JSON_String_Equal/10 |
10.721337005707415 ns/iter |
11.196328124999157 ns/iter |
0.96 |
JSON_String_Equal/100 |
11.969400000001684 ns/iter |
14.07408743717197 ns/iter |
0.85 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.513729126659037 ns/iter |
1.3118325000001667 ns/iter |
1.92 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.215063999039542 ns/iter |
10.593323437500857 ns/iter |
1.34 |
JSON_String_Fast_Hash/10 |
6.918268973214379 ns/iter |
4.497887042528142 ns/iter |
1.54 |
JSON_String_Fast_Hash/100 |
6.925667857144293 ns/iter |
4.503232622872352 ns/iter |
1.54 |
JSON_String_Key_Hash/10 |
5.386157142857379 ns/iter |
3.061689683399103 ns/iter |
1.76 |
JSON_String_Key_Hash/100 |
11.907224999999602 ns/iter |
8.705395943278013 ns/iter |
1.37 |
JSON_Object_Defines_Miss_Same_Length |
4.08781286444169 ns/iter |
4.156420980287364 ns/iter |
0.98 |
JSON_Object_Defines_Miss_Too_Small |
4.404429239105983 ns/iter |
4.404308124999545 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
4.080391257286108 ns/iter |
4.4178225649920035 ns/iter |
0.92 |
Pointer_Object_Traverse |
69.69549999999863 ns/iter |
40.020156249997996 ns/iter |
1.74 |
Pointer_Object_Try_Traverse |
73.80427455357464 ns/iter |
42.28271012252217 ns/iter |
1.75 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
184.40605217909112 ns/iter |
150.15185267855153 ns/iter |
1.23 |
Pointer_Walker_Schema_ISO_Language |
10254625.000001738 ns/iter |
10597689.333332406 ns/iter |
0.97 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2583482.2033899957 ns/iter |
2133754.2857143683 ns/iter |
1.21 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3990487.7094971975 ns/iter |
3793699.4413411403 ns/iter |
1.05 |
Pointer_Position_Tracker_Get_Deeply_Nested |
562.1104910714182 ns/iter |
542.0755059407809 ns/iter |
1.04 |
URITemplateRouter_Create |
40558.57289217711 ns/iter |
33815.86274785483 ns/iter |
1.20 |
URITemplateRouter_Match |
233.92279755329318 ns/iter |
239.67121209025933 ns/iter |
0.98 |
URITemplateRouter_Match_BasePath |
265.1579292480975 ns/iter |
275.9465367880846 ns/iter |
0.96 |
URITemplateRouterView_Restore |
32491.487366984922 ns/iter |
17568.5200892823 ns/iter |
1.85 |
URITemplateRouterView_Match |
181.04550096290342 ns/iter |
181.6222394305518 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
206.17703097428657 ns/iter |
203.39801993758195 ns/iter |
1.01 |
URITemplateRouterView_Arguments |
539.1591071429502 ns/iter |
441.58850000002303 ns/iter |
1.22 |
JSONL_Parse_Large |
34281055.00000811 ns/iter |
24488330.000000738 ns/iter |
1.40 |
JSONL_Parse_Large_GZIP |
34544440.000001945 ns/iter |
25575985.714283433 ns/iter |
1.35 |
JSONLD_Catalog_Annotation_List_Populate |
2635727.3092368 ns/iter |
2295172.187500327 ns/iter |
1.15 |
JSONLD_Catalog_Materialize |
7699160.000000423 ns/iter |
6536791.071429856 ns/iter |
1.18 |
HTML_Build_Table_100000 |
89035255.55554855 ns/iter |
98540400.00000925 ns/iter |
0.90 |
HTML_Render_Table_100000 |
7826806.250000523 ns/iter |
12623685.714284452 ns/iter |
0.62 |
GZIP_Compress_ISO_Language_Set_3_Locations |
35993142.105254315 ns/iter |
30929850.00000681 ns/iter |
1.16 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
10018174.666668832 ns/iter |
11779118.749998929 ns/iter |
0.85 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2140488.9855075716 ns/iter |
1962987.8260868439 ns/iter |
1.09 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
622567.6785713776 ns/iter |
619391.3392857147 ns/iter |
1.01 |
JOSE_VerifySignature_RS256 |
22220.912500003466 ns/iter |
19395.864248792986 ns/iter |
1.15 |
JOSE_VerifySignature_ES512 |
1548643.9732142237 ns/iter |
1067565.6249997444 ns/iter |
1.45 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com