-
-
Notifications
You must be signed in to change notification settings - Fork 9
Optimise schema framing when dealing with big schemas #2188
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: bc5e4cd | Previous: 36c0734 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
3.109320034352683 ns/iter |
2.0237745411952215 ns/iter |
1.54 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
3.108863220065973 ns/iter |
2.0172831994082925 ns/iter |
1.54 |
Regex_Period_Asterisk |
3.1100365771302605 ns/iter |
2.022203800377977 ns/iter |
1.54 |
Regex_Group_Period_Asterisk_Group |
3.1100553477119606 ns/iter |
2.017819851140491 ns/iter |
1.54 |
Regex_Period_Plus |
2.892361134023031 ns/iter |
2.304589580516515 ns/iter |
1.26 |
Regex_Period |
3.108322258852897 ns/iter |
2.3042071980151406 ns/iter |
1.35 |
Regex_Caret_Period_Plus_Dollar |
3.1084018892215375 ns/iter |
2.3042112070054808 ns/iter |
1.35 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.108411797227925 ns/iter |
2.3062400346891296 ns/iter |
1.35 |
Regex_Caret_Period_Asterisk_Dollar |
3.108052165809499 ns/iter |
2.0176531736062406 ns/iter |
1.54 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.107604515460083 ns/iter |
2.018861913163977 ns/iter |
1.54 |
Regex_Caret_X_Hyphen |
13.060947872758002 ns/iter |
8.932730009655085 ns/iter |
1.46 |
Regex_Period_Md_Dollar |
27.513397932785107 ns/iter |
25.328888939479747 ns/iter |
1.09 |
Regex_Caret_Slash_Period_Asterisk |
6.220066961986852 ns/iter |
8.323591996477722 ns/iter |
0.75 |
Regex_Caret_Period_Range_Dollar |
3.7297467562845004 ns/iter |
2.3384356434453384 ns/iter |
1.59 |
Regex_Nested_Backtrack |
49.944166734023625 ns/iter |
43.81233508263429 ns/iter |
1.14 |
JSON_Array_Of_Objects_Unique |
433.6365636063879 ns/iter |
346.2663455710912 ns/iter |
1.25 |
JSON_Parse_1 |
29385.454176873096 ns/iter |
27207.837373070804 ns/iter |
1.08 |
JSON_Parse_Real |
38218.04487986453 ns/iter |
36852.511261974854 ns/iter |
1.04 |
JSON_Parse_Decimal |
130303.55081111216 ns/iter |
123355.0423131037 ns/iter |
1.06 |
JSON_Fast_Hash_Helm_Chart_Lock |
61.86479578050958 ns/iter |
46.30199446766456 ns/iter |
1.34 |
JSON_Equality_Helm_Chart_Lock |
172.69430867826554 ns/iter |
137.18873015108426 ns/iter |
1.26 |
JSON_String_Equal/10 |
7.160054737763616 ns/iter |
4.896853154668813 ns/iter |
1.46 |
JSON_String_Equal/100 |
7.783967542878528 ns/iter |
6.050066010047542 ns/iter |
1.29 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9388866999540654 ns/iter |
0.6927978112065694 ns/iter |
1.36 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.619460094026346 ns/iter |
9.556708295718272 ns/iter |
1.53 |
JSON_String_Fast_Hash/10 |
2.493921970192601 ns/iter |
2.0166697938354115 ns/iter |
1.24 |
JSON_String_Fast_Hash/100 |
2.4873514359286593 ns/iter |
2.024155200570148 ns/iter |
1.23 |
JSON_String_Key_Hash/10 |
2.65460413321714 ns/iter |
2.0164706291647643 ns/iter |
1.32 |
JSON_String_Key_Hash/100 |
9.02017932480939 ns/iter |
6.620443595171297 ns/iter |
1.36 |
JSON_Object_Defines_Miss_Same_Length |
3.7365159477639494 ns/iter |
3.4206817336422386 ns/iter |
1.09 |
JSON_Object_Defines_Miss_Too_Small |
3.7345765569081353 ns/iter |
3.8542321537062154 ns/iter |
0.97 |
JSON_Object_Defines_Miss_Too_Large |
3.7421736559081187 ns/iter |
3.4241340070944353 ns/iter |
1.09 |
Pointer_Object_Traverse |
46.080582883109685 ns/iter |
41.83723222138581 ns/iter |
1.10 |
Pointer_Object_Try_Traverse |
53.82552152640131 ns/iter |
45.79486821392742 ns/iter |
1.18 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
289.5551810111974 ns/iter |
220.04617950495117 ns/iter |
1.32 |
Pointer_Walker_Schema_ISO_Language |
3221286.9128439175 ns/iter |
3049278.283842736 ns/iter |
1.06 |
Schema_Frame_WoT_References |
5784888.487603194 ns/iter |
4474933.94230783 ns/iter |
1.29 |
Schema_Frame_OMC_References |
27662670.919999074 ns/iter |
19266274.944445487 ns/iter |
1.44 |
Schema_Frame_OMC_Locations |
25695107.22222461 ns/iter |
17584350.049997963 ns/iter |
1.46 |
Schema_Frame_ISO_Language_Locations |
125380425.20000091 ns/iter |
100022897.33334161 ns/iter |
1.25 |
Schema_Iterator_ISO_Language |
2341509.722407675 ns/iter |
2191943.0031250184 ns/iter |
1.07 |
Schema_Frame_ISO_Language_Locations_To_JSON |
133301189.25000533 ns/iter |
130899060.79999308 ns/iter |
1.02 |
Schema_Tracker_ISO_Language |
47185461.73333683 ns/iter |
43837975.75000159 ns/iter |
1.08 |
Schema_Tracker_ISO_Language_To_JSON |
25109549.357141856 ns/iter |
23737275.750002187 ns/iter |
1.06 |
Schema_Format_ISO_Language_To_JSON |
133122727.20002055 ns/iter |
107301799.42855297 ns/iter |
1.24 |
Schema_Bundle_Meta_2020_12 |
2169533.3167708977 ns/iter |
1952247.382684539 ns/iter |
1.11 |
Schema_Frame_Many_Resources_References |
254175276.6666529 ns/iter |
2539599517.999932 ns/iter |
0.10 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
235511108.33329856 ns/iter |
196278109.99998018 ns/iter |
1.20 |
Alterschema_Check_Readibility_OMC |
33629096.47619073 ns/iter |
23563030.034481395 ns/iter |
1.43 |
EditorSchema_ForEditor_EmbeddedResources |
14225282.612252548 ns/iter |
17857694.76923167 ns/iter |
0.80 |
URITemplateRouter_Create |
16768.2817580202 ns/iter |
12695.894851065135 ns/iter |
1.32 |
URITemplateRouter_Match |
175.52623560304596 ns/iter |
153.65184059461703 ns/iter |
1.14 |
URITemplateRouterView_Restore |
8152.236863517451 ns/iter |
3483.4791889375633 ns/iter |
2.34 |
URITemplateRouterView_Match |
136.38566033531615 ns/iter |
110.16956690744681 ns/iter |
1.24 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (windows/msvc)
Details
| Benchmark suite | Current: bc5e4cd | Previous: 36c0734 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
3.790820350373401 ns/iter |
3.7983526785710455 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
3.775150669642307 ns/iter |
3.7659481191156576 ns/iter |
1.00 |
Regex_Period_Asterisk |
4.43830812500039 ns/iter |
4.393606249999493 ns/iter |
1.01 |
Regex_Group_Period_Asterisk_Group |
4.106596703762478 ns/iter |
4.081825900146413 ns/iter |
1.01 |
Regex_Period_Plus |
4.4435306249994255 ns/iter |
4.396121640992396 ns/iter |
1.01 |
Regex_Period |
4.440296149812391 ns/iter |
4.390314999999134 ns/iter |
1.01 |
Regex_Caret_Period_Plus_Dollar |
4.086799560869559 ns/iter |
4.143378578828061 ns/iter |
0.99 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.7791053503949077 ns/iter |
3.7620739218540167 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
4.0971339285711394 ns/iter |
4.122608757362321 ns/iter |
0.99 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.7972943467454283 ns/iter |
3.88832868303522 ns/iter |
0.98 |
Regex_Caret_X_Hyphen |
7.554638392858034 ns/iter |
8.232845982141562 ns/iter |
0.92 |
Regex_Period_Md_Dollar |
35.222427861115136 ns/iter |
35.510864955361804 ns/iter |
0.99 |
Regex_Caret_Slash_Period_Asterisk |
7.345374107144056 ns/iter |
7.2270125000000816 ns/iter |
1.02 |
Regex_Caret_Period_Range_Dollar |
4.1181376859246495 ns/iter |
4.0953784001696505 ns/iter |
1.01 |
Regex_Nested_Backtrack |
99.32809377999644 ns/iter |
100.33283927085743 ns/iter |
0.99 |
JSON_Array_Of_Objects_Unique |
492.06231965673544 ns/iter |
505.67520000004146 ns/iter |
0.97 |
JSON_Parse_1 |
73271.47321427267 ns/iter |
74318.18080357391 ns/iter |
0.99 |
JSON_Parse_Real |
93283.17932234585 ns/iter |
94771.25000000086 ns/iter |
0.98 |
JSON_Parse_Decimal |
336417.5834970594 ns/iter |
351058.11462231644 ns/iter |
0.96 |
JSON_Fast_Hash_Helm_Chart_Lock |
69.87745999999788 ns/iter |
69.58704464285655 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
266.25055876115505 ns/iter |
264.3667857142873 ns/iter |
1.01 |
JSON_String_Equal/10 |
12.271006249999774 ns/iter |
12.219810714287046 ns/iter |
1.00 |
JSON_String_Equal/100 |
13.976742794745775 ns/iter |
13.818983643664565 ns/iter |
1.01 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.208583125000274 ns/iter |
2.1944181249999417 ns/iter |
1.01 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
12.847073214284624 ns/iter |
12.58064464285472 ns/iter |
1.02 |
JSON_String_Fast_Hash/10 |
3.7711093749998827 ns/iter |
3.7580212432893987 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
3.7884464285716946 ns/iter |
3.7610614218553358 ns/iter |
1.01 |
JSON_String_Key_Hash/10 |
3.7765221361133854 ns/iter |
3.7699119575538234 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
13.764971590333138 ns/iter |
16.30510714285549 ns/iter |
0.84 |
JSON_Object_Defines_Miss_Same_Length |
4.732335447484562 ns/iter |
4.7552678677570315 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.783911243242115 ns/iter |
3.7684521361281944 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
4.740338849866345 ns/iter |
4.72542121590415 ns/iter |
1.00 |
Pointer_Object_Traverse |
50.98358999998709 ns/iter |
51.67548214284271 ns/iter |
0.99 |
Pointer_Object_Try_Traverse |
69.4700267857229 ns/iter |
69.02901785714732 ns/iter |
1.01 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
147.1027032543553 ns/iter |
178.8195231352356 ns/iter |
0.82 |
Pointer_Walker_Schema_ISO_Language |
11164534.375001978 ns/iter |
9677401.562498745 ns/iter |
1.15 |
Schema_Frame_WoT_References |
10928540.624998817 ns/iter |
11083508.928570447 ns/iter |
0.99 |
Schema_Frame_OMC_References |
54647754.545468085 ns/iter |
50254963.636358626 ns/iter |
1.09 |
Schema_Frame_OMC_Locations |
50979460.00000775 ns/iter |
46853364.28571775 ns/iter |
1.09 |
Schema_Frame_ISO_Language_Locations |
235679433.33334064 ns/iter |
203966000.00003672 ns/iter |
1.16 |
Schema_Iterator_ISO_Language |
4185298.1927705915 ns/iter |
4256930.722891707 ns/iter |
0.98 |
Schema_Frame_ISO_Language_Locations_To_JSON |
245138500.00001487 ns/iter |
239516433.33331656 ns/iter |
1.02 |
Schema_Tracker_ISO_Language |
99727533.33333154 ns/iter |
98991000.00000414 ns/iter |
1.01 |
Schema_Tracker_ISO_Language_To_JSON |
53532860.00001845 ns/iter |
52106272.727273375 ns/iter |
1.03 |
Schema_Format_ISO_Language_To_JSON |
239277500.00007108 ns/iter |
206371733.33337462 ns/iter |
1.16 |
Schema_Bundle_Meta_2020_12 |
4198333.139533832 ns/iter |
4113584.3373453952 ns/iter |
1.02 |
Schema_Frame_Many_Resources_References |
501316399.9999506 ns/iter |
2605139999.999892 ns/iter |
0.19 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
354270649.99998945 ns/iter |
322562050.0001014 ns/iter |
1.10 |
Alterschema_Check_Readibility_OMC |
63166063.63634492 ns/iter |
57206372.727271385 ns/iter |
1.10 |
EditorSchema_ForEditor_EmbeddedResources |
24260959.37499184 ns/iter |
35842721.05266744 ns/iter |
0.68 |
URITemplateRouter_Create |
22743.321874997946 ns/iter |
22223.696875002475 ns/iter |
1.02 |
URITemplateRouter_Match |
207.62087499996085 ns/iter |
207.70615624996935 ns/iter |
1.00 |
URITemplateRouterView_Restore |
31902.32589286016 ns/iter |
29209.34821428237 ns/iter |
1.09 |
URITemplateRouterView_Match |
146.98475906317697 ns/iter |
140.64883970319195 ns/iter |
1.05 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (macos/llvm)
Details
| Benchmark suite | Current: bc5e4cd | Previous: 36c0734 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.016055330907933 ns/iter |
1.9731503139677145 ns/iter |
1.02 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.3977214967810516 ns/iter |
2.0788688838703804 ns/iter |
1.15 |
Regex_Period_Asterisk |
2.3835672798489824 ns/iter |
2.3485382742023133 ns/iter |
1.01 |
Regex_Group_Period_Asterisk_Group |
2.470624097206267 ns/iter |
2.0191872049683868 ns/iter |
1.22 |
Regex_Period_Plus |
2.7603449161622624 ns/iter |
2.434667917888323 ns/iter |
1.13 |
Regex_Period |
2.760728537471305 ns/iter |
2.468950514653725 ns/iter |
1.12 |
Regex_Caret_Period_Plus_Dollar |
2.858203920533926 ns/iter |
2.713185467396239 ns/iter |
1.05 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.1257296576573137 ns/iter |
2.7291039604105714 ns/iter |
1.15 |
Regex_Caret_Period_Asterisk_Dollar |
2.33869565681804 ns/iter |
2.2928960019446505 ns/iter |
1.02 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.201619765111868 ns/iter |
2.110482432815641 ns/iter |
1.04 |
Regex_Caret_X_Hyphen |
8.296425670372754 ns/iter |
8.69176971810415 ns/iter |
0.95 |
Regex_Period_Md_Dollar |
36.134819001907104 ns/iter |
28.690201253937914 ns/iter |
1.26 |
Regex_Caret_Slash_Period_Asterisk |
7.239032507084441 ns/iter |
6.976440921232846 ns/iter |
1.04 |
Regex_Caret_Period_Range_Dollar |
2.142786119998792 ns/iter |
2.694915874656469 ns/iter |
0.80 |
Regex_Nested_Backtrack |
47.88007962765147 ns/iter |
34.94888957635304 ns/iter |
1.37 |
JSON_Array_Of_Objects_Unique |
623.3809999999949 ns/iter |
463.4987064624597 ns/iter |
1.34 |
JSON_Parse_1 |
30187.61800219284 ns/iter |
25575.849442889936 ns/iter |
1.18 |
JSON_Parse_Real |
34208.581241194996 ns/iter |
30443.677452280976 ns/iter |
1.12 |
JSON_Parse_Decimal |
355130.7611392099 ns/iter |
400969.52009929775 ns/iter |
0.89 |
JSON_Fast_Hash_Helm_Chart_Lock |
80.2884187359613 ns/iter |
95.01652097228278 ns/iter |
0.84 |
JSON_Equality_Helm_Chart_Lock |
174.19433551385904 ns/iter |
188.94448305912235 ns/iter |
0.92 |
JSON_String_Equal/10 |
9.256192668909781 ns/iter |
9.34623254604511 ns/iter |
0.99 |
JSON_String_Equal/100 |
9.503759712854464 ns/iter |
9.014468641590591 ns/iter |
1.05 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.42148206490945767 ns/iter |
0.4798609817684165 ns/iter |
0.88 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
5.023819189242011 ns/iter |
5.883585420000372 ns/iter |
0.85 |
JSON_String_Fast_Hash/10 |
2.8987138364550393 ns/iter |
3.431413546754656 ns/iter |
0.84 |
JSON_String_Fast_Hash/100 |
2.8464002427573054 ns/iter |
3.1173795367864954 ns/iter |
0.91 |
JSON_String_Key_Hash/10 |
2.0613033815839494 ns/iter |
3.0760610439445157 ns/iter |
0.67 |
JSON_String_Key_Hash/100 |
2.817880217839424 ns/iter |
3.65208043886365 ns/iter |
0.77 |
JSON_Object_Defines_Miss_Same_Length |
3.136140935856416 ns/iter |
3.9343445210657366 ns/iter |
0.80 |
JSON_Object_Defines_Miss_Too_Small |
2.8976429010721754 ns/iter |
3.6931723191991868 ns/iter |
0.78 |
JSON_Object_Defines_Miss_Too_Large |
3.0812733992365806 ns/iter |
3.343405161360382 ns/iter |
0.92 |
Pointer_Object_Traverse |
19.46509134798312 ns/iter |
19.410096261485794 ns/iter |
1.00 |
Pointer_Object_Try_Traverse |
24.348602773307135 ns/iter |
24.709850482415504 ns/iter |
0.99 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
182.92411699655509 ns/iter |
180.6996345686554 ns/iter |
1.01 |
Pointer_Walker_Schema_ISO_Language |
6341780.099998889 ns/iter |
5188306.519379899 ns/iter |
1.22 |
Schema_Frame_WoT_References |
6396371.9357799925 ns/iter |
5887665.999999627 ns/iter |
1.09 |
Schema_Frame_OMC_References |
40576548.61111359 ns/iter |
35738664.86956574 ns/iter |
1.14 |
Schema_Frame_OMC_Locations |
38806638.888887495 ns/iter |
31624916.695650626 ns/iter |
1.23 |
Schema_Frame_ISO_Language_Locations |
141106725.00000873 ns/iter |
122755840.16667078 ns/iter |
1.15 |
Schema_Iterator_ISO_Language |
3030036.1756095607 ns/iter |
3214995.3224637867 ns/iter |
0.94 |
Schema_Frame_ISO_Language_Locations_To_JSON |
139150591.80001208 ns/iter |
137058583.33332798 ns/iter |
1.02 |
Schema_Tracker_ISO_Language |
61228462.09090808 ns/iter |
55753499.99999575 ns/iter |
1.10 |
Schema_Tracker_ISO_Language_To_JSON |
20673315.870967157 ns/iter |
23435358.870969024 ns/iter |
0.88 |
Schema_Format_ISO_Language_To_JSON |
135185194.1666761 ns/iter |
152445316.60005122 ns/iter |
0.89 |
Schema_Bundle_Meta_2020_12 |
2487682.46483249 ns/iter |
2406143.235688056 ns/iter |
1.03 |
Schema_Frame_Many_Resources_References |
319432354.5000088 ns/iter |
1864676874.9999864 ns/iter |
0.17 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
236032750.00001153 ns/iter |
251256027.6666515 ns/iter |
0.94 |
Alterschema_Check_Readibility_OMC |
49229486.93749873 ns/iter |
46848008.92856954 ns/iter |
1.05 |
EditorSchema_ForEditor_EmbeddedResources |
17430504.125002243 ns/iter |
26197758.857145052 ns/iter |
0.67 |
URITemplateRouter_Create |
22232.848900163044 ns/iter |
19351.01776642889 ns/iter |
1.15 |
URITemplateRouter_Match |
207.34793893293724 ns/iter |
213.08606003422227 ns/iter |
0.97 |
URITemplateRouterView_Restore |
12162.169608249964 ns/iter |
15163.705858393148 ns/iter |
0.80 |
URITemplateRouterView_Match |
144.99430626738575 ns/iter |
138.73392840577918 ns/iter |
1.05 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (linux/gcc)
Details
| Benchmark suite | Current: bc5e4cd | Previous: 36c0734 | Ratio |
|---|---|---|---|
URITemplateRouter_Create |
14294.45315003051 ns/iter |
14540.255989604604 ns/iter |
0.98 |
URITemplateRouter_Match |
178.89508810035727 ns/iter |
179.62860981244583 ns/iter |
1.00 |
URITemplateRouterView_Restore |
8247.726316733299 ns/iter |
8241.760404635457 ns/iter |
1.00 |
URITemplateRouterView_Match |
116.60756619538803 ns/iter |
119.22209528203537 ns/iter |
0.98 |
EditorSchema_ForEditor_EmbeddedResources |
14992771.173910035 ns/iter |
21210640.696953114 ns/iter |
0.71 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
230433051.66667473 ns/iter |
223795649.333321 ns/iter |
1.03 |
Alterschema_Check_Readibility_OMC |
34586710.29999892 ns/iter |
31610345.727275755 ns/iter |
1.09 |
Schema_Frame_WoT_References |
6329934.018182567 ns/iter |
5566784.519998692 ns/iter |
1.14 |
Schema_Frame_OMC_References |
28564501.000000745 ns/iter |
24827139.392860837 ns/iter |
1.15 |
Schema_Frame_OMC_Locations |
27484462.153845124 ns/iter |
21865807.22580754 ns/iter |
1.26 |
Schema_Frame_ISO_Language_Locations |
125178477.40000434 ns/iter |
114063186.99998035 ns/iter |
1.10 |
Schema_Iterator_ISO_Language |
2545128.3054545373 ns/iter |
2517229.8392858137 ns/iter |
1.01 |
Schema_Frame_ISO_Language_Locations_To_JSON |
290317239.00000846 ns/iter |
295263271.66665095 ns/iter |
0.98 |
Schema_Tracker_ISO_Language |
48837148.42857704 ns/iter |
49447454.42857571 ns/iter |
0.99 |
Schema_Tracker_ISO_Language_To_JSON |
33560063.99999697 ns/iter |
37103945.00000121 ns/iter |
0.90 |
Schema_Format_ISO_Language_To_JSON |
133394495.19996834 ns/iter |
125616123.66672157 ns/iter |
1.06 |
Schema_Bundle_Meta_2020_12 |
2373422.1220331043 ns/iter |
2319211.5747483256 ns/iter |
1.02 |
Schema_Frame_Many_Resources_References |
270848519.50002074 ns/iter |
1751648345.9999108 ns/iter |
0.15 |
Pointer_Object_Traverse |
46.3408454139726 ns/iter |
47.059762372006126 ns/iter |
0.98 |
Pointer_Object_Try_Traverse |
22.754324187439757 ns/iter |
22.7228518355172 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
169.96946471870643 ns/iter |
152.17563346387908 ns/iter |
1.12 |
Pointer_Walker_Schema_ISO_Language |
3435749.4117645556 ns/iter |
3564505.3181814076 ns/iter |
0.96 |
JSON_Array_Of_Objects_Unique |
419.51138845369536 ns/iter |
416.2191685519219 ns/iter |
1.01 |
JSON_Parse_1 |
33206.09563900992 ns/iter |
33364.23275121259 ns/iter |
1.00 |
JSON_Parse_Real |
44539.027180140045 ns/iter |
43926.12789969203 ns/iter |
1.01 |
JSON_Parse_Decimal |
157558.32214463328 ns/iter |
156138.7930728169 ns/iter |
1.01 |
JSON_Fast_Hash_Helm_Chart_Lock |
60.365712502557244 ns/iter |
63.48597954330574 ns/iter |
0.95 |
JSON_Equality_Helm_Chart_Lock |
159.7384442185068 ns/iter |
156.3953231836497 ns/iter |
1.02 |
JSON_String_Equal/10 |
7.583389787265846 ns/iter |
6.340843918152353 ns/iter |
1.20 |
JSON_String_Equal/100 |
8.20827545787102 ns/iter |
6.972036656545373 ns/iter |
1.18 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.6229071746533762 ns/iter |
0.6276604280548674 ns/iter |
0.99 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
19.56764149983964 ns/iter |
19.57088976560261 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.3343835859920428 ns/iter |
1.9432868310795497 ns/iter |
1.20 |
JSON_String_Fast_Hash/100 |
2.3329016014385076 ns/iter |
1.9419766345574212 ns/iter |
1.20 |
JSON_String_Key_Hash/10 |
1.2466162315196152 ns/iter |
1.2453164413557545 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
12.4311799400546 ns/iter |
12.428218018469183 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
2.4904209065361056 ns/iter |
2.800337358308202 ns/iter |
0.89 |
JSON_Object_Defines_Miss_Too_Small |
2.799263794976581 ns/iter |
2.489094187100286 ns/iter |
1.12 |
JSON_Object_Defines_Miss_Too_Large |
2.798343049305548 ns/iter |
2.493519751338225 ns/iter |
1.12 |
Regex_Lower_S_Or_Upper_S_Asterisk |
3.109143053557097 ns/iter |
3.1115776619976727 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
3.109171128032553 ns/iter |
3.1101275047064805 ns/iter |
1.00 |
Regex_Period_Asterisk |
3.1101576156596975 ns/iter |
3.112807243268439 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
3.108139643288131 ns/iter |
3.118713203797744 ns/iter |
1.00 |
Regex_Period_Plus |
2.8018513174437905 ns/iter |
2.797850707630282 ns/iter |
1.00 |
Regex_Period |
2.7970833485317717 ns/iter |
2.79689726276798 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
2.800868392455239 ns/iter |
2.7969411621572435 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.7997535104875917 ns/iter |
2.7992860175714607 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
4.0390287491802095 ns/iter |
4.057986012480271 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
4.039595094255668 ns/iter |
3.8804340810136417 ns/iter |
1.04 |
Regex_Caret_X_Hyphen |
13.67772819575659 ns/iter |
13.05834342865626 ns/iter |
1.05 |
Regex_Period_Md_Dollar |
39.06125169975443 ns/iter |
35.78383932866701 ns/iter |
1.09 |
Regex_Caret_Slash_Period_Asterisk |
7.770572035461489 ns/iter |
8.70272020227653 ns/iter |
0.89 |
Regex_Caret_Period_Range_Dollar |
3.1083619808982044 ns/iter |
4.043915246543896 ns/iter |
0.77 |
Regex_Nested_Backtrack |
60.33484537447477 ns/iter |
60.67557505405929 ns/iter |
0.99 |
This comment was automatically generated by workflow using github-action-benchmark.
61c7db1 to
b74941e
Compare
Signed-off-by: Juan Cruz Viotti <[email protected]>
b74941e to
bc5e4cd
Compare
🤖 Augment PR SummarySummary: This PR optimises JSON Schema framing for large schemas by reducing repeated ancestor-walks and lookups while computing pointer/resource locations. Changes:
Technical Notes: The new combined walk avoids repeating 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review completed. No suggestions at this time.
Comment augment review to trigger a new review at any time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (macos/gcc)
Details
| Benchmark suite | Current: bc5e4cd | Previous: 36c0734 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
3.6227507716666483 ns/iter |
2.609843721108945 ns/iter |
1.39 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
3.4826132959108596 ns/iter |
2.8026423803714806 ns/iter |
1.24 |
Regex_Period_Asterisk |
2.6816372596001785 ns/iter |
2.7639993255878794 ns/iter |
0.97 |
Regex_Group_Period_Asterisk_Group |
2.7522668688408376 ns/iter |
2.6199046613722756 ns/iter |
1.05 |
Regex_Period_Plus |
2.978012027380983 ns/iter |
2.756400757985226 ns/iter |
1.08 |
Regex_Period |
3.2673990967982216 ns/iter |
2.905836190092928 ns/iter |
1.12 |
Regex_Caret_Period_Plus_Dollar |
3.029786321012568 ns/iter |
2.557916291640005 ns/iter |
1.18 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.3231934617002907 ns/iter |
2.508673756396921 ns/iter |
1.32 |
Regex_Caret_Period_Asterisk_Dollar |
2.6388489226348497 ns/iter |
2.863966331442909 ns/iter |
0.92 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.8603721927746633 ns/iter |
2.4364402143441186 ns/iter |
1.17 |
Regex_Caret_X_Hyphen |
8.578752277307125 ns/iter |
7.466720301666052 ns/iter |
1.15 |
Regex_Period_Md_Dollar |
34.73243063249721 ns/iter |
26.388341980355065 ns/iter |
1.32 |
Regex_Caret_Slash_Period_Asterisk |
6.252743640578396 ns/iter |
5.672333840493194 ns/iter |
1.10 |
Regex_Caret_Period_Range_Dollar |
2.897696973834241 ns/iter |
2.6524802395358615 ns/iter |
1.09 |
Regex_Nested_Backtrack |
71.19912825020798 ns/iter |
59.87144173915612 ns/iter |
1.19 |
JSON_Array_Of_Objects_Unique |
336.28932674446577 ns/iter |
411.8886744178746 ns/iter |
0.82 |
JSON_Parse_1 |
31615.95638448746 ns/iter |
33427.95527327289 ns/iter |
0.95 |
JSON_Parse_Real |
36394.087076409414 ns/iter |
32730.10707604783 ns/iter |
1.11 |
JSON_Parse_Decimal |
352356.91639759974 ns/iter |
341215.9076377527 ns/iter |
1.03 |
JSON_Fast_Hash_Helm_Chart_Lock |
41.8275076898295 ns/iter |
43.75204703033942 ns/iter |
0.96 |
JSON_Equality_Helm_Chart_Lock |
179.26100040883173 ns/iter |
165.1154803188316 ns/iter |
1.09 |
JSON_String_Equal/10 |
8.721928102809768 ns/iter |
7.4021001049131465 ns/iter |
1.18 |
JSON_String_Equal/100 |
7.601222241647531 ns/iter |
7.456570297640169 ns/iter |
1.02 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.0646470511967925 ns/iter |
1.0701749465329617 ns/iter |
0.99 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
4.728460718417373 ns/iter |
4.283703166018718 ns/iter |
1.10 |
JSON_String_Fast_Hash/10 |
2.2588322814000428 ns/iter |
2.0513310827178413 ns/iter |
1.10 |
JSON_String_Fast_Hash/100 |
2.2331606793241603 ns/iter |
2.204743450207123 ns/iter |
1.01 |
JSON_String_Key_Hash/10 |
1.9091301013351611 ns/iter |
1.867879911776799 ns/iter |
1.02 |
JSON_String_Key_Hash/100 |
3.9598970095325376 ns/iter |
3.352887327550248 ns/iter |
1.18 |
JSON_Object_Defines_Miss_Same_Length |
2.7206801219010956 ns/iter |
2.3697497772497194 ns/iter |
1.15 |
JSON_Object_Defines_Miss_Too_Small |
2.88457623671738 ns/iter |
2.6515899827213 ns/iter |
1.09 |
JSON_Object_Defines_Miss_Too_Large |
2.757408782719943 ns/iter |
2.2676481604424947 ns/iter |
1.22 |
Pointer_Object_Traverse |
81.90490308683727 ns/iter |
78.04758855556005 ns/iter |
1.05 |
Pointer_Object_Try_Traverse |
54.60641384124756 ns/iter |
53.87251377105713 ns/iter |
1.01 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
208.42894875331822 ns/iter |
222.66593810759227 ns/iter |
0.94 |
Pointer_Walker_Schema_ISO_Language |
7257471.913876741 ns/iter |
5839872.360229492 ns/iter |
1.24 |
Schema_Frame_WoT_References |
7980480.426695289 ns/iter |
7265547.53645411 ns/iter |
1.10 |
Schema_Frame_OMC_References |
38073301.31530762 ns/iter |
34550775.18116344 ns/iter |
1.10 |
Schema_Frame_OMC_Locations |
43651707.03214758 ns/iter |
35824418.06793213 ns/iter |
1.22 |
Schema_Frame_ISO_Language_Locations |
152067780.49468994 ns/iter |
126823016.57540457 ns/iter |
1.20 |
Schema_Iterator_ISO_Language |
2690277.847589231 ns/iter |
2618420.6008911133 ns/iter |
1.03 |
Schema_Frame_ISO_Language_Locations_To_JSON |
391201257.7056885 ns/iter |
192873239.5172119 ns/iter |
2.03 |
Schema_Tracker_ISO_Language |
58120727.5390625 ns/iter |
55792790.19282414 ns/iter |
1.04 |
Schema_Tracker_ISO_Language_To_JSON |
32834005.35583496 ns/iter |
31565666.19873047 ns/iter |
1.04 |
Schema_Format_ISO_Language_To_JSON |
164167761.80267334 ns/iter |
119672639.02936663 ns/iter |
1.37 |
Schema_Bundle_Meta_2020_12 |
2187395.8905537925 ns/iter |
1927757.107862044 ns/iter |
1.13 |
Schema_Frame_Many_Resources_References |
373120546.3409424 ns/iter |
1895576953.8879395 ns/iter |
0.20 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
277596712.11242676 ns/iter |
208838522.43423462 ns/iter |
1.33 |
Alterschema_Check_Readibility_OMC |
52896295.27500697 ns/iter |
36391448.974609375 ns/iter |
1.45 |
EditorSchema_ForEditor_EmbeddedResources |
17283099.038260322 ns/iter |
21055987.386992484 ns/iter |
0.82 |
URITemplateRouter_Create |
22567.280196902964 ns/iter |
20395.553877723167 ns/iter |
1.11 |
URITemplateRouter_Match |
290.518317170791 ns/iter |
226.13175727975064 ns/iter |
1.28 |
URITemplateRouterView_Restore |
15166.278997184825 ns/iter |
13593.458491564877 ns/iter |
1.12 |
URITemplateRouterView_Match |
152.87637678018143 ns/iter |
135.75313324311458 ns/iter |
1.13 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti [email protected]