Refactor JSON parser on a parser + construct pair of phases#2242
Refactor JSON parser on a parser + construct pair of phases#2242
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: Refactors the JSON parser into a two-phase scan (tape) + construct pipeline to separate syntax validation from value construction and keep callback/position tracking efficient. Changes:
Technical Notes: Callbacks continue to receive Pre/Post events with line/column derived from the scanner’s tape entries, while number/string construction is deferred to the construct phase. 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: fb368cd | Previous: 90aad0d | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
3.1435764413759566 ns/iter |
3.111218781248437 ns/iter |
1.01 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
3.106346402376424 ns/iter |
3.1210793915436024 ns/iter |
1.00 |
Regex_Period_Asterisk |
3.105639300520706 ns/iter |
3.128582703627345 ns/iter |
0.99 |
Regex_Group_Period_Asterisk_Group |
3.1056582301183373 ns/iter |
3.110395739424143 ns/iter |
1.00 |
Regex_Period_Plus |
2.8157134990858346 ns/iter |
2.8212738458953694 ns/iter |
1.00 |
Regex_Period |
3.033440179230443 ns/iter |
3.0253754031743867 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
2.8801553243146447 ns/iter |
2.8458505313057354 ns/iter |
1.01 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.8686939741507147 ns/iter |
2.8868485284383514 ns/iter |
0.99 |
Regex_Caret_Period_Asterisk_Dollar |
3.4160523090008916 ns/iter |
3.106283973144324 ns/iter |
1.10 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.1728454238771113 ns/iter |
3.4250249703586118 ns/iter |
0.93 |
Regex_Caret_X_Hyphen |
10.667168612172416 ns/iter |
10.65555229605117 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
27.531281728559392 ns/iter |
27.202238146271643 ns/iter |
1.01 |
Regex_Caret_Slash_Period_Asterisk |
6.848306643791794 ns/iter |
6.21405194297265 ns/iter |
1.10 |
Regex_Caret_Period_Range_Dollar |
4.038733642136853 ns/iter |
4.038349977675111 ns/iter |
1.00 |
Regex_Nested_Backtrack |
48.88610993018417 ns/iter |
48.91292045647278 ns/iter |
1.00 |
JSON_Array_Of_Objects_Unique |
447.36712031602156 ns/iter |
452.0396490003381 ns/iter |
0.99 |
JSON_Parse_1 |
8138.551287114303 ns/iter |
7889.679166805989 ns/iter |
1.03 |
JSON_Parse_Real |
11822.00251036018 ns/iter |
11885.87118117339 ns/iter |
0.99 |
JSON_Parse_Decimal |
80866.07142034304 ns/iter |
82877.94991140037 ns/iter |
0.98 |
JSON_Parse_Schema_ISO_Language |
7271951.536081454 ns/iter |
6173900.6607146915 ns/iter |
1.18 |
JSON_Fast_Hash_Helm_Chart_Lock |
62.513588944961256 ns/iter |
62.15889691786043 ns/iter |
1.01 |
JSON_Equality_Helm_Chart_Lock |
177.4284869501103 ns/iter |
167.13468577555244 ns/iter |
1.06 |
JSON_String_Equal/10 |
6.221176494000832 ns/iter |
6.80095185473676 ns/iter |
0.91 |
JSON_String_Equal/100 |
6.849554892493961 ns/iter |
6.844495852861562 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9365639350862174 ns/iter |
0.9347128743341107 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
10.259328167244373 ns/iter |
10.258075960242829 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.7994040108226548 ns/iter |
2.7968409317213663 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.7981151756334444 ns/iter |
2.7998231230792916 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
2.1792947786345818 ns/iter |
2.179045659596288 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
6.533540276315258 ns/iter |
6.529449625438438 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.7347481844560724 ns/iter |
3.7327360799856524 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.739586428131824 ns/iter |
3.7404956737745723 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.737038672713452 ns/iter |
3.733153169454817 ns/iter |
1.00 |
Pointer_Object_Traverse |
44.58540594272605 ns/iter |
46.0854331649469 ns/iter |
0.97 |
Pointer_Object_Try_Traverse |
53.59765451257583 ns/iter |
53.56740913845791 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
319.52592741146844 ns/iter |
299.6356444686593 ns/iter |
1.07 |
Pointer_Walker_Schema_ISO_Language |
3170814.3228697856 ns/iter |
3160641.166666644 ns/iter |
1.00 |
Schema_Frame_WoT_References |
4790643.013605397 ns/iter |
4773142.876712122 ns/iter |
1.00 |
Schema_Frame_OMC_References |
19937280.1714292 ns/iter |
19759897.485716596 ns/iter |
1.01 |
Schema_Frame_OMC_Locations |
18294400.02631755 ns/iter |
18150039.94871835 ns/iter |
1.01 |
Schema_Frame_ISO_Language_Locations |
100392925.1666591 ns/iter |
98823697.00000025 ns/iter |
1.02 |
Schema_Frame_KrakenD_References |
37441280.315785035 ns/iter |
37826306.52631269 ns/iter |
0.99 |
Schema_Frame_KrakenD_Reachable |
578052735.0000284 ns/iter |
590767005.9999646 ns/iter |
0.98 |
Schema_Iterator_ISO_Language |
2280065.88273609 ns/iter |
2282441.748366033 ns/iter |
1.00 |
Schema_Frame_ISO_Language_Locations_To_JSON |
130618312.2499931 ns/iter |
130881169.49998607 ns/iter |
1.00 |
Schema_Tracker_ISO_Language |
29253416.1739112 ns/iter |
29416729.791662987 ns/iter |
0.99 |
Schema_Tracker_ISO_Language_To_JSON |
23517659.419355605 ns/iter |
22860551.344827965 ns/iter |
1.03 |
Schema_Format_ISO_Language_To_JSON |
106933418.57144593 ns/iter |
104740110.49999869 ns/iter |
1.02 |
Schema_Bundle_Meta_2020_12 |
1664099.9452384957 ns/iter |
1666338.9355630735 ns/iter |
1.00 |
Schema_Frame_Many_Resources_References |
364092778.999975 ns/iter |
366845468.00000817 ns/iter |
0.99 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
216138592.9999824 ns/iter |
212707840.3333371 ns/iter |
1.02 |
Alterschema_Check_Readibility_OMC |
32463641.13636508 ns/iter |
31938650.045457385 ns/iter |
1.02 |
Alterschema_Apply_Readibility_KrakenD |
599692733.9999729 ns/iter |
610140499.9999431 ns/iter |
0.98 |
EditorSchema_ForEditor_EmbeddedResources |
13408172.499997417 ns/iter |
13330362.018864607 ns/iter |
1.01 |
URITemplateRouter_Create |
17478.525316772975 ns/iter |
17516.900074053814 ns/iter |
1.00 |
URITemplateRouter_Match |
172.6864785251815 ns/iter |
176.28645428891934 ns/iter |
0.98 |
URITemplateRouterView_Restore |
8220.558613970878 ns/iter |
8219.91890959596 ns/iter |
1.00 |
URITemplateRouterView_Match |
122.02643305589342 ns/iter |
138.01328588277013 ns/iter |
0.88 |
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: fb368cd | Previous: 90aad0d | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.489316839310458 ns/iter |
2.478275749494619 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.16249324911802 ns/iter |
2.177216248102214 ns/iter |
0.99 |
Regex_Period_Asterisk |
2.29949122967507 ns/iter |
2.2765974272357674 ns/iter |
1.01 |
Regex_Group_Period_Asterisk_Group |
2.2045794619369423 ns/iter |
2.1946187961702837 ns/iter |
1.00 |
Regex_Period_Plus |
2.5716883691034105 ns/iter |
2.643283214082268 ns/iter |
0.97 |
Regex_Period |
2.6847736399633773 ns/iter |
2.6399635946830875 ns/iter |
1.02 |
Regex_Caret_Period_Plus_Dollar |
2.869359972834698 ns/iter |
2.583564917807953 ns/iter |
1.11 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.5825853607243388 ns/iter |
2.335568088678983 ns/iter |
1.11 |
Regex_Caret_Period_Asterisk_Dollar |
2.1343283134135014 ns/iter |
1.9978391071446004 ns/iter |
1.07 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.207237851136272 ns/iter |
2.0417593345962315 ns/iter |
1.08 |
Regex_Caret_X_Hyphen |
7.930199525620628 ns/iter |
7.620169222395394 ns/iter |
1.04 |
Regex_Period_Md_Dollar |
25.09041170158277 ns/iter |
26.489707668344764 ns/iter |
0.95 |
Regex_Caret_Slash_Period_Asterisk |
6.843631732292426 ns/iter |
6.872856453936712 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
3.0599141026391785 ns/iter |
2.2074125716178123 ns/iter |
1.39 |
Regex_Nested_Backtrack |
46.81303796618643 ns/iter |
39.37949594588121 ns/iter |
1.19 |
JSON_Array_Of_Objects_Unique |
497.6138281000352 ns/iter |
453.9757465938689 ns/iter |
1.10 |
JSON_Parse_1 |
8005.543096042923 ns/iter |
8165.871139397865 ns/iter |
0.98 |
JSON_Parse_Real |
10568.887985313093 ns/iter |
9236.939214533839 ns/iter |
1.14 |
JSON_Parse_Decimal |
320896.35458558693 ns/iter |
314716.9970985642 ns/iter |
1.02 |
JSON_Parse_Schema_ISO_Language |
7618239.329267785 ns/iter |
8898902.923077572 ns/iter |
0.86 |
JSON_Fast_Hash_Helm_Chart_Lock |
72.06971849247778 ns/iter |
81.95856333992405 ns/iter |
0.88 |
JSON_Equality_Helm_Chart_Lock |
168.6723094191708 ns/iter |
163.67146203960448 ns/iter |
1.03 |
JSON_String_Equal/10 |
8.294567839252274 ns/iter |
7.340136311832031 ns/iter |
1.13 |
JSON_String_Equal/100 |
8.70991117704663 ns/iter |
7.821946132558705 ns/iter |
1.11 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9972431234257773 ns/iter |
0.3783718780458211 ns/iter |
2.64 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
4.360533013928678 ns/iter |
4.127663571778313 ns/iter |
1.06 |
JSON_String_Fast_Hash/10 |
2.867813805593401 ns/iter |
2.8157079331340618 ns/iter |
1.02 |
JSON_String_Fast_Hash/100 |
2.6708435719045407 ns/iter |
2.703662954259356 ns/iter |
0.99 |
JSON_String_Key_Hash/10 |
1.801498546188919 ns/iter |
1.7864374737254405 ns/iter |
1.01 |
JSON_String_Key_Hash/100 |
3.2124976238492113 ns/iter |
2.733630466209884 ns/iter |
1.18 |
JSON_Object_Defines_Miss_Same_Length |
2.91662499128684 ns/iter |
3.69331569903041 ns/iter |
0.79 |
JSON_Object_Defines_Miss_Too_Small |
3.312173518887066 ns/iter |
3.473265828436294 ns/iter |
0.95 |
JSON_Object_Defines_Miss_Too_Large |
3.3827434294152714 ns/iter |
3.6897338672937616 ns/iter |
0.92 |
Pointer_Object_Traverse |
22.582743568663137 ns/iter |
19.469830789491933 ns/iter |
1.16 |
Pointer_Object_Try_Traverse |
30.943839705456046 ns/iter |
28.309307519811668 ns/iter |
1.09 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
211.87183947043562 ns/iter |
210.81817009743787 ns/iter |
1.00 |
Pointer_Walker_Schema_ISO_Language |
5702944.438096546 ns/iter |
6675769.975206192 ns/iter |
0.85 |
Schema_Frame_WoT_References |
5864130.091603821 ns/iter |
6810588.749999625 ns/iter |
0.86 |
Schema_Frame_OMC_References |
31096494.791664023 ns/iter |
36064802.099997446 ns/iter |
0.86 |
Schema_Frame_OMC_Locations |
28519303.319999382 ns/iter |
31921282.60869377 ns/iter |
0.89 |
Schema_Frame_ISO_Language_Locations |
106216541.66667819 ns/iter |
104008374.999997 ns/iter |
1.02 |
Schema_Frame_KrakenD_References |
58312985.14286637 ns/iter |
66353225.666659914 ns/iter |
0.88 |
Schema_Frame_KrakenD_Reachable |
527243793.0000251 ns/iter |
617071166.9997218 ns/iter |
0.85 |
Schema_Iterator_ISO_Language |
2846980.050847733 ns/iter |
2750136.8243235387 ns/iter |
1.04 |
Schema_Frame_ISO_Language_Locations_To_JSON |
113583638.83334732 ns/iter |
117243951.33334535 ns/iter |
0.97 |
Schema_Tracker_ISO_Language |
43263564.83333408 ns/iter |
43721429.68750836 ns/iter |
0.99 |
Schema_Tracker_ISO_Language_To_JSON |
20318286.02702803 ns/iter |
22184172.60714237 ns/iter |
0.92 |
Schema_Format_ISO_Language_To_JSON |
106601196.71436925 ns/iter |
142662506.8333654 ns/iter |
0.75 |
Schema_Bundle_Meta_2020_12 |
1656216.534031703 ns/iter |
1960727.2617477411 ns/iter |
0.84 |
Schema_Frame_Many_Resources_References |
391775833.49999166 ns/iter |
600710334.0000412 ns/iter |
0.65 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
194926430.66663125 ns/iter |
251015041.66665712 ns/iter |
0.78 |
Alterschema_Check_Readibility_OMC |
39884566.17647737 ns/iter |
57040275.615376085 ns/iter |
0.70 |
Alterschema_Apply_Readibility_KrakenD |
695148916.9998695 ns/iter |
738420292.000228 ns/iter |
0.94 |
EditorSchema_ForEditor_EmbeddedResources |
14267375.844433952 ns/iter |
15151235.312501399 ns/iter |
0.94 |
URITemplateRouter_Create |
20447.556266630727 ns/iter |
22568.37732365854 ns/iter |
0.91 |
URITemplateRouter_Match |
212.4920003874133 ns/iter |
218.2702829027853 ns/iter |
0.97 |
URITemplateRouterView_Restore |
13865.104501659956 ns/iter |
14504.900356390084 ns/iter |
0.96 |
URITemplateRouterView_Match |
141.47218053892354 ns/iter |
202.01988512346824 ns/iter |
0.70 |
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: fb368cd | Previous: 90aad0d | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
4.457098125000414 ns/iter |
4.428734989126244 ns/iter |
1.01 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
4.1688487128017435 ns/iter |
4.0858646055106655 ns/iter |
1.02 |
Regex_Period_Asterisk |
3.825654636025723 ns/iter |
3.782783482142449 ns/iter |
1.01 |
Regex_Group_Period_Asterisk_Group |
3.781879814674327 ns/iter |
3.7701873146965896 ns/iter |
1.00 |
Regex_Period_Plus |
3.8063744419642678 ns/iter |
3.773701600404254 ns/iter |
1.01 |
Regex_Period |
3.7952912946424635 ns/iter |
3.7774858861124594 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
3.796259860139887 ns/iter |
3.7736089218325546 ns/iter |
1.01 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.8075641741069126 ns/iter |
3.7868030289528276 ns/iter |
1.01 |
Regex_Caret_Period_Asterisk_Dollar |
3.795891183036661 ns/iter |
3.7693301718407053 ns/iter |
1.01 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.8024683860667725 ns/iter |
3.7707107075514155 ns/iter |
1.01 |
Regex_Caret_X_Hyphen |
7.625376116069711 ns/iter |
7.548319196428414 ns/iter |
1.01 |
Regex_Period_Md_Dollar |
35.42457250758972 ns/iter |
35.056362233145215 ns/iter |
1.01 |
Regex_Caret_Slash_Period_Asterisk |
7.260828124999412 ns/iter |
7.215199999998439 ns/iter |
1.01 |
Regex_Caret_Period_Range_Dollar |
4.76347501063248 ns/iter |
4.718287188554182 ns/iter |
1.01 |
Regex_Nested_Backtrack |
108.7260312500149 ns/iter |
98.48090185351019 ns/iter |
1.10 |
JSON_Array_Of_Objects_Unique |
456.11284880899876 ns/iter |
509.9844999999732 ns/iter |
0.89 |
JSON_Parse_1 |
11607.134375001493 ns/iter |
12236.12321428342 ns/iter |
0.95 |
JSON_Parse_Real |
16634.852678575182 ns/iter |
21429.58125000405 ns/iter |
0.78 |
JSON_Parse_Decimal |
207312.0312500265 ns/iter |
211780.93749995242 ns/iter |
0.98 |
JSON_Parse_Schema_ISO_Language |
9481458.666668914 ns/iter |
9790956.000000127 ns/iter |
0.97 |
JSON_Fast_Hash_Helm_Chart_Lock |
61.39483928570095 ns/iter |
70.80601562500074 ns/iter |
0.87 |
JSON_Equality_Helm_Chart_Lock |
263.44325000000674 ns/iter |
264.1081792012611 ns/iter |
1.00 |
JSON_String_Equal/10 |
12.377314230457765 ns/iter |
13.0305876650444 ns/iter |
0.95 |
JSON_String_Equal/100 |
14.04364413373155 ns/iter |
14.17086556173722 ns/iter |
0.99 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.2123887499994055 ns/iter |
2.197237943976316 ns/iter |
1.01 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
12.627757142857782 ns/iter |
12.821733424902574 ns/iter |
0.98 |
JSON_String_Fast_Hash/10 |
3.459868788465045 ns/iter |
4.127524962727509 ns/iter |
0.84 |
JSON_String_Fast_Hash/100 |
3.516216378434711 ns/iter |
4.079216047286384 ns/iter |
0.86 |
JSON_String_Key_Hash/10 |
4.425810000000752 ns/iter |
4.401397777680952 ns/iter |
1.01 |
JSON_String_Key_Hash/100 |
16.76388694131143 ns/iter |
13.750657974330913 ns/iter |
1.22 |
JSON_Object_Defines_Miss_Same_Length |
3.8317516003001995 ns/iter |
3.76928571428538 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Small |
3.8127241003343464 ns/iter |
3.7689492187504516 ns/iter |
1.01 |
JSON_Object_Defines_Miss_Too_Large |
3.8452087053565873 ns/iter |
4.176296778255997 ns/iter |
0.92 |
Pointer_Object_Traverse |
54.57896428570815 ns/iter |
51.44845535714435 ns/iter |
1.06 |
Pointer_Object_Try_Traverse |
73.65632142856222 ns/iter |
81.48071428572783 ns/iter |
0.90 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
177.27502972828282 ns/iter |
163.09516012970096 ns/iter |
1.09 |
Pointer_Walker_Schema_ISO_Language |
12157167.857143998 ns/iter |
10780278.12500082 ns/iter |
1.13 |
Schema_Frame_WoT_References |
10060523.437498858 ns/iter |
10720651.999999972 ns/iter |
0.94 |
Schema_Frame_OMC_References |
46853353.33333569 ns/iter |
43879687.49999516 ns/iter |
1.07 |
Schema_Frame_OMC_Locations |
42735623.529404834 ns/iter |
41187441.17646897 ns/iter |
1.04 |
Schema_Frame_ISO_Language_Locations |
221562833.33333704 ns/iter |
201974899.9999441 ns/iter |
1.10 |
Schema_Frame_KrakenD_References |
102972885.71431246 ns/iter |
96232285.71428756 ns/iter |
1.07 |
Schema_Frame_KrakenD_Reachable |
595075899.9999834 ns/iter |
540049100.0000329 ns/iter |
1.10 |
Schema_Iterator_ISO_Language |
4921885.714285931 ns/iter |
4457033.750000505 ns/iter |
1.10 |
Schema_Frame_ISO_Language_Locations_To_JSON |
276892449.9999912 ns/iter |
263701866.66660324 ns/iter |
1.05 |
Schema_Tracker_ISO_Language |
53691818.181815416 ns/iter |
49840214.28570681 ns/iter |
1.08 |
Schema_Tracker_ISO_Language_To_JSON |
57082072.727284454 ns/iter |
56381099.9999987 ns/iter |
1.01 |
Schema_Format_ISO_Language_To_JSON |
215662000.00006577 ns/iter |
205323399.9999217 ns/iter |
1.05 |
Schema_Bundle_Meta_2020_12 |
2893848.30508498 ns/iter |
2880523.305072907 ns/iter |
1.00 |
Schema_Frame_Many_Resources_References |
1526513699.9998958 ns/iter |
1485673099.9999855 ns/iter |
1.03 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
351567449.9999477 ns/iter |
330250549.9999597 ns/iter |
1.06 |
Alterschema_Check_Readibility_OMC |
64985944.444439754 ns/iter |
60437790.90908753 ns/iter |
1.08 |
Alterschema_Apply_Readibility_KrakenD |
1096139600.000015 ns/iter |
1024458900.000127 ns/iter |
1.07 |
EditorSchema_ForEditor_EmbeddedResources |
29168291.666650247 ns/iter |
26928361.53847531 ns/iter |
1.08 |
URITemplateRouter_Create |
22997.92747848602 ns/iter |
22598.771219075188 ns/iter |
1.02 |
URITemplateRouter_Match |
208.85499999998558 ns/iter |
208.72224514629633 ns/iter |
1.00 |
URITemplateRouterView_Restore |
33107.2579061024 ns/iter |
31758.543102241136 ns/iter |
1.04 |
URITemplateRouterView_Match |
150.33082589285738 ns/iter |
143.40796234785319 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: fb368cd | Previous: 90aad0d | Ratio |
|---|---|---|---|
URITemplateRouter_Create |
14469.276213400462 ns/iter |
14763.69155568615 ns/iter |
0.98 |
URITemplateRouter_Match |
152.505896144305 ns/iter |
165.99372488923615 ns/iter |
0.92 |
URITemplateRouterView_Restore |
8234.689881054763 ns/iter |
8392.988386717878 ns/iter |
0.98 |
URITemplateRouterView_Match |
140.66143692316712 ns/iter |
124.20173912366239 ns/iter |
1.13 |
EditorSchema_ForEditor_EmbeddedResources |
14015441.720002854 ns/iter |
14093103.520026488 ns/iter |
0.99 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
215989508.66662863 ns/iter |
213776348.66666996 ns/iter |
1.01 |
Alterschema_Check_Readibility_OMC |
35491985.04999822 ns/iter |
34411712.00000781 ns/iter |
1.03 |
Alterschema_Apply_Readibility_KrakenD |
634380713.9999171 ns/iter |
604940760.0000905 ns/iter |
1.05 |
Schema_Frame_WoT_References |
5529111.153847366 ns/iter |
5383815.564885599 ns/iter |
1.03 |
Schema_Frame_OMC_References |
23126982.9666644 ns/iter |
22229248.677420754 ns/iter |
1.04 |
Schema_Frame_OMC_Locations |
21196981.818182833 ns/iter |
20599142.441175684 ns/iter |
1.03 |
Schema_Frame_ISO_Language_Locations |
107809128.16668813 ns/iter |
107056846.9999671 ns/iter |
1.01 |
Schema_Frame_KrakenD_References |
43754532.56248818 ns/iter |
43701780.74999842 ns/iter |
1.00 |
Schema_Frame_KrakenD_Reachable |
619559007.9996691 ns/iter |
632718553.9998937 ns/iter |
0.98 |
Schema_Iterator_ISO_Language |
2665052.0378785296 ns/iter |
2630808.6992478417 ns/iter |
1.01 |
Schema_Frame_ISO_Language_Locations_To_JSON |
303748131.00002027 ns/iter |
304461295.99999946 ns/iter |
1.00 |
Schema_Tracker_ISO_Language |
33739281.761903666 ns/iter |
35674687.400000945 ns/iter |
0.95 |
Schema_Tracker_ISO_Language_To_JSON |
32981516.428576253 ns/iter |
36458638.684220396 ns/iter |
0.90 |
Schema_Format_ISO_Language_To_JSON |
112497606.49999036 ns/iter |
114213762.00000091 ns/iter |
0.98 |
Schema_Bundle_Meta_2020_12 |
1894235.663955385 ns/iter |
1899181.6711892693 ns/iter |
1.00 |
Schema_Frame_Many_Resources_References |
400043393.50002736 ns/iter |
392903380.9999964 ns/iter |
1.02 |
Pointer_Object_Traverse |
47.87178131458114 ns/iter |
45.97311803736043 ns/iter |
1.04 |
Pointer_Object_Try_Traverse |
24.59448192635343 ns/iter |
24.825453875786984 ns/iter |
0.99 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
161.6884123071651 ns/iter |
171.5873920117916 ns/iter |
0.94 |
Pointer_Walker_Schema_ISO_Language |
3656250.4818646284 ns/iter |
3723098.6162162353 ns/iter |
0.98 |
JSON_Array_Of_Objects_Unique |
427.3648961564664 ns/iter |
429.4811429987105 ns/iter |
1.00 |
JSON_Parse_1 |
11779.086219329778 ns/iter |
11954.504202678629 ns/iter |
0.99 |
JSON_Parse_Real |
17621.125517995573 ns/iter |
17459.848640979904 ns/iter |
1.01 |
JSON_Parse_Decimal |
112835.23883464874 ns/iter |
112699.4187017715 ns/iter |
1.00 |
JSON_Parse_Schema_ISO_Language |
6747345.390476766 ns/iter |
6640253.943925298 ns/iter |
1.02 |
JSON_Fast_Hash_Helm_Chart_Lock |
67.1159887579994 ns/iter |
57.312178428180154 ns/iter |
1.17 |
JSON_Equality_Helm_Chart_Lock |
160.01262112294825 ns/iter |
159.37444118712438 ns/iter |
1.00 |
JSON_String_Equal/10 |
6.265111108266168 ns/iter |
6.654104580224471 ns/iter |
0.94 |
JSON_String_Equal/100 |
6.896098668026488 ns/iter |
7.3025728180151575 ns/iter |
0.94 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.6235692344880666 ns/iter |
0.6249062367376752 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
13.469283519232542 ns/iter |
14.939110032974426 ns/iter |
0.90 |
JSON_String_Fast_Hash/10 |
1.9444972802998213 ns/iter |
1.9454867389630843 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
1.9450509945519274 ns/iter |
1.9457024635454676 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.558928696786047 ns/iter |
1.558416196933939 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
12.432918924950636 ns/iter |
12.425136494086926 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
2.803916529617259 ns/iter |
2.4938147901088916 ns/iter |
1.12 |
JSON_Object_Defines_Miss_Too_Small |
2.8141082550214205 ns/iter |
2.487114467829665 ns/iter |
1.13 |
JSON_Object_Defines_Miss_Too_Large |
2.802933259404046 ns/iter |
2.486805676112308 ns/iter |
1.13 |
Regex_Lower_S_Or_Upper_S_Asterisk |
3.112186698213358 ns/iter |
3.1086265006861167 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
3.113611754829682 ns/iter |
3.1098202449102246 ns/iter |
1.00 |
Regex_Period_Asterisk |
3.1130846133371417 ns/iter |
3.1092664981260567 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
3.113887344463828 ns/iter |
3.1196045450907746 ns/iter |
1.00 |
Regex_Period_Plus |
3.423260751332568 ns/iter |
3.4220369446509786 ns/iter |
1.00 |
Regex_Period |
3.4263473863148466 ns/iter |
3.432509252836577 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
3.4214168569667622 ns/iter |
3.421761219306837 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.421795733396729 ns/iter |
3.4207067918650935 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
4.352750788129404 ns/iter |
4.351911722371848 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
4.3505535704111065 ns/iter |
4.349743204475743 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
13.683833691780064 ns/iter |
13.688804054121407 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
41.00355307355202 ns/iter |
35.31415055336722 ns/iter |
1.16 |
Regex_Caret_Slash_Period_Asterisk |
8.116520431086798 ns/iter |
9.326646924195964 ns/iter |
0.87 |
Regex_Caret_Period_Range_Dollar |
4.439758382688023 ns/iter |
4.354163313270895 ns/iter |
1.02 |
Regex_Nested_Backtrack |
64.23438590184287 ns/iter |
56.97391344219259 ns/iter |
1.13 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti jv@jviotti.com