Skip to content

Commit

Permalink
Implement a real dispatch table (#244)
Browse files Browse the repository at this point in the history
Signed-off-by: Juan Cruz Viotti <[email protected]>
  • Loading branch information
jviotti authored Nov 27, 2024
1 parent d060357 commit 1c2f087
Showing 1 changed file with 102 additions and 373 deletions.
Loading

5 comments on commit 1c2f087

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Benchmark suite Current: 1c2f087 Previous: d060357 Ratio
Compiler_Draft6_AdaptiveCard 32081570583.00003 ns/iter 32292590874.999973 ns/iter 0.99
Compiler_2019_09_OMC_JSON_V2 6549865292.00005 ns/iter 6984411625.000007 ns/iter 0.94
Evaluator_Draft4_Meta_1_No_Callback 201.1006124673587 ns/iter 238.6409157364969 ns/iter 0.84
Evaluator_Draft4_Required_Properties 299.65787805381524 ns/iter 313.0020841356546 ns/iter 0.96
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 18.03386143186965 ns/iter 20.271006098119862 ns/iter 0.89
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 9.377758019625734 ns/iter 10.175185178396037 ns/iter 0.92
Evaluator_Draft4_Items_Schema 283.70917430397424 ns/iter 335.7768593805089 ns/iter 0.84
Evaluator_Draft4_Nested_Object 2.5329834214345217 ns/iter 2.6563236946791395 ns/iter 0.95
Evaluator_Draft4_Properties_Triad_Optional 767.1531507726684 ns/iter 795.4104486971595 ns/iter 0.96
Evaluator_Draft4_Properties_Triad_Closed 639.1536427687699 ns/iter 666.389855952654 ns/iter 0.96
Evaluator_Draft4_Properties_Triad_Required 765.4552277710201 ns/iter 793.1053134009098 ns/iter 0.97
Evaluator_Draft4_Properties_Closed 71.4971562898708 ns/iter 77.41910698120518 ns/iter 0.92
Evaluator_Draft4_Non_Recursive_Ref 9.630369783080846 ns/iter 10.525189343946472 ns/iter 0.91
Evaluator_Draft4_Pattern_Properties_True 161.83822010575935 ns/iter 178.38258736761995 ns/iter 0.91
Evaluator_Draft4_Ref_To_Single_Property 10.678061878537147 ns/iter 11.963158007545568 ns/iter 0.89
Evaluator_Draft4_Additional_Properties_Type 20.091845607623217 ns/iter 20.87456964588315 ns/iter 0.96
Evaluator_Draft4_Nested_Oneof 59.01376525436063 ns/iter 78.82823484431576 ns/iter 0.75
Evaluator_Draft4_Long_Enum 27.447899373675952 ns/iter 28.30298454207913 ns/iter 0.97
Evaluator_Draft4_Type_Object 5.04969750854421 ns/iter 5.675697556068843 ns/iter 0.89
Evaluator_Draft6_Property_Names 100.20115818934025 ns/iter 118.78250122812292 ns/iter 0.84
Evaluator_Draft7_If_Then_Else 24.347704653402527 ns/iter 29.298330579746604 ns/iter 0.83
Evaluator_Draft7_Vercel_1 68787.71885262862 ns/iter 68575.7735239449 ns/iter 1.00
Evaluator_Draft7_Helm_Chart_Lock_1 224.97808898463498 ns/iter 247.64757711049052 ns/iter 0.91
Evaluator_2019_09_Unevaluated_Properties 137.93341997070266 ns/iter 148.77911894633678 ns/iter 0.93
Evaluator_2019_09_OMC_JSON_V2_1 2308.7841103315163 ns/iter 2498.1288705730094 ns/iter 0.92
Evaluator_2020_12_Dynamic_Ref 393.6232496247058 ns/iter 471.4252065988727 ns/iter 0.83

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Benchmark suite Current: 1c2f087 Previous: d060357 Ratio
Compiler_Draft6_AdaptiveCard 51508466315.00002 ns/iter 51518558316 ns/iter 1.00
Compiler_2019_09_OMC_JSON_V2 10566743364.999979 ns/iter 10662798236.000015 ns/iter 0.99
Evaluator_Draft4_Meta_1_No_Callback 321.3361014445341 ns/iter 342.67491608055553 ns/iter 0.94
Evaluator_Draft4_Required_Properties 719.2297705467419 ns/iter 716.2294012017019 ns/iter 1.00
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 35.89821464617248 ns/iter 36.49650084665632 ns/iter 0.98
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 21.34721497663218 ns/iter 22.224611174592265 ns/iter 0.96
Evaluator_Draft4_Items_Schema 648.3584663278896 ns/iter 714.2677899185765 ns/iter 0.91
Evaluator_Draft4_Nested_Object 5.257835597470521 ns/iter 4.333205527023695 ns/iter 1.21
Evaluator_Draft4_Properties_Triad_Optional 1159.967854987675 ns/iter 1198.8670136148444 ns/iter 0.97
Evaluator_Draft4_Properties_Triad_Closed 983.6511938385337 ns/iter 1020.0508564072833 ns/iter 0.96
Evaluator_Draft4_Properties_Triad_Required 1179.2684738699152 ns/iter 1226.6378389511738 ns/iter 0.96
Evaluator_Draft4_Properties_Closed 122.05004323005487 ns/iter 128.57498886497487 ns/iter 0.95
Evaluator_Draft4_Non_Recursive_Ref 27.540326226983773 ns/iter 31.6692103087691 ns/iter 0.87
Evaluator_Draft4_Pattern_Properties_True 231.9194065996041 ns/iter 264.8853850341552 ns/iter 0.88
Evaluator_Draft4_Ref_To_Single_Property 22.272892180958756 ns/iter 22.902488657126646 ns/iter 0.97
Evaluator_Draft4_Additional_Properties_Type 55.23319770049081 ns/iter 64.70203895410711 ns/iter 0.85
Evaluator_Draft4_Nested_Oneof 93.68177623893328 ns/iter 112.08176422990182 ns/iter 0.84
Evaluator_Draft4_Long_Enum 19.515783952826986 ns/iter 20.49382076966275 ns/iter 0.95
Evaluator_Draft4_Type_Object 9.276725020202079 ns/iter 10.517865529013356 ns/iter 0.88
Evaluator_Draft6_Property_Names 171.927423896906 ns/iter 282.9240514720375 ns/iter 0.61
Evaluator_Draft7_If_Then_Else 44.84377605713449 ns/iter 50.09347582190726 ns/iter 0.90
Evaluator_Draft7_Vercel_1 84570.17646340118 ns/iter 93465.60761904194 ns/iter 0.90
Evaluator_Draft7_Helm_Chart_Lock_1 301.4204357620705 ns/iter 330.40249596434677 ns/iter 0.91
Evaluator_2019_09_Unevaluated_Properties 193.17134229162326 ns/iter 182.24244020336792 ns/iter 1.06
Evaluator_2019_09_OMC_JSON_V2_1 3127.199353573494 ns/iter 3307.45067983211 ns/iter 0.95
Evaluator_2020_12_Dynamic_Ref 747.9436559832708 ns/iter 881.6520645353945 ns/iter 0.85

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Benchmark suite Current: 1c2f087 Previous: d060357 Ratio
Evaluator_2020_12_Dynamic_Ref 721.0054985881171 ns/iter 867.9527476742919 ns/iter 0.83
Evaluator_2019_09_Unevaluated_Properties 229.85301779121468 ns/iter 243.27644470648102 ns/iter 0.94
Evaluator_2019_09_OMC_JSON_V2_1 4615.2514058773495 ns/iter 5026.281276931526 ns/iter 0.92
Evaluator_Draft7_If_Then_Else 45.23030498255102 ns/iter 57.75691778587493 ns/iter 0.78
Evaluator_Draft7_Vercel_1 108805.35418320906 ns/iter 114237.51282050378 ns/iter 0.95
Evaluator_Draft7_Helm_Chart_Lock_1 441.7139519507152 ns/iter 504.41754700000274 ns/iter 0.88
Evaluator_Draft6_Property_Names 251.21448327461638 ns/iter 546.8555427022663 ns/iter 0.46
Evaluator_Draft4_Meta_1_No_Callback 448.90469912864256 ns/iter 437.3257354091823 ns/iter 1.03
Evaluator_Draft4_Required_Properties 1645.319922297541 ns/iter 1716.340592078195 ns/iter 0.96
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 36.00729310832493 ns/iter 38.16597431979347 ns/iter 0.94
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 32.30533023115188 ns/iter 34.494631340299776 ns/iter 0.94
Evaluator_Draft4_Items_Schema 555.7078730651826 ns/iter 597.297974346369 ns/iter 0.93
Evaluator_Draft4_Nested_Object 3.835086923276303 ns/iter 3.4884797760326682 ns/iter 1.10
Evaluator_Draft4_Properties_Triad_Optional 1281.3439370737162 ns/iter 1242.0159443831203 ns/iter 1.03
Evaluator_Draft4_Properties_Triad_Closed 1075.8736747778519 ns/iter 1025.0505373502715 ns/iter 1.05
Evaluator_Draft4_Properties_Triad_Required 1331.6700057719088 ns/iter 1347.0536089559243 ns/iter 0.99
Evaluator_Draft4_Properties_Closed 192.93129853541694 ns/iter 185.22079204507628 ns/iter 1.04
Evaluator_Draft4_Non_Recursive_Ref 47.9520076263019 ns/iter 56.57790792868215 ns/iter 0.85
Evaluator_Draft4_Pattern_Properties_True 309.7588589900513 ns/iter 322.8171322139346 ns/iter 0.96
Evaluator_Draft4_Ref_To_Single_Property 37.12411245190084 ns/iter 37.74779902963548 ns/iter 0.98
Evaluator_Draft4_Additional_Properties_Type 102.4660756245823 ns/iter 113.602699214122 ns/iter 0.90
Evaluator_Draft4_Nested_Oneof 113.22529296824034 ns/iter 122.06345622332056 ns/iter 0.93
Evaluator_Draft4_Long_Enum 17.518943661155408 ns/iter 19.63851463336759 ns/iter 0.89
Evaluator_Draft4_Type_Object 10.081424847664117 ns/iter 11.219727087517645 ns/iter 0.90
Compiler_2019_09_OMC_JSON_V2 11089704554.000036 ns/iter 10980103467.999926 ns/iter 1.01
Compiler_Draft6_AdaptiveCard 58944728473.99993 ns/iter 59080832822.000046 ns/iter 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/gcc)

Benchmark suite Current: 1c2f087 Previous: d060357 Ratio
Compiler_Draft6_AdaptiveCard 39342597961.42578 ns/iter 40468281745.910645 ns/iter 0.97
Compiler_2019_09_OMC_JSON_V2 7652248144.14978 ns/iter 8849446058.273315 ns/iter 0.86
Evaluator_Draft4_Meta_1_No_Callback 235.7005655794868 ns/iter 290.6825368738293 ns/iter 0.81
Evaluator_Draft4_Required_Properties 410.7537439180634 ns/iter 617.3903655442276 ns/iter 0.67
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 21.280746499018047 ns/iter 31.02111468415324 ns/iter 0.69
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 12.02825052903073 ns/iter 17.807991570214174 ns/iter 0.68
Evaluator_Draft4_Items_Schema 466.0668599834931 ns/iter 542.953370967993 ns/iter 0.86
Evaluator_Draft4_Nested_Object 2.021240630087257 ns/iter 2.255824944565546 ns/iter 0.90
Evaluator_Draft4_Properties_Triad_Optional 821.5444503957405 ns/iter 901.6918241206835 ns/iter 0.91
Evaluator_Draft4_Properties_Triad_Closed 685.2907305399292 ns/iter 794.3971605552247 ns/iter 0.86
Evaluator_Draft4_Properties_Triad_Required 799.5887489270958 ns/iter 922.1753220783385 ns/iter 0.87
Evaluator_Draft4_Properties_Closed 115.09688901228193 ns/iter 109.87602269595399 ns/iter 1.05
Evaluator_Draft4_Non_Recursive_Ref 17.630572102894217 ns/iter 20.026154070102535 ns/iter 0.88
Evaluator_Draft4_Pattern_Properties_True 172.69151985495552 ns/iter 203.56921465139044 ns/iter 0.85
Evaluator_Draft4_Ref_To_Single_Property 11.538610538914618 ns/iter 15.845065896538658 ns/iter 0.73
Evaluator_Draft4_Additional_Properties_Type 34.71090308991882 ns/iter 38.14638480943821 ns/iter 0.91
Evaluator_Draft4_Nested_Oneof 58.3253934738794 ns/iter 88.03346158518814 ns/iter 0.66
Evaluator_Draft4_Long_Enum 9.233987898039448 ns/iter 12.834581884288903 ns/iter 0.72
Evaluator_Draft4_Type_Object 4.736759992965691 ns/iter 6.179373359258729 ns/iter 0.77
Evaluator_Draft6_Property_Names 135.12181684481925 ns/iter 218.4243597254116 ns/iter 0.62
Evaluator_Draft7_If_Then_Else 25.412125899258374 ns/iter 37.593244341485146 ns/iter 0.68
Evaluator_Draft7_Vercel_1 74418.67770198284 ns/iter 86123.88100743717 ns/iter 0.86
Evaluator_Draft7_Helm_Chart_Lock_1 216.3157471990911 ns/iter 253.92385423228333 ns/iter 0.85
Evaluator_2019_09_Unevaluated_Properties 138.89492009808717 ns/iter 157.46093343088577 ns/iter 0.88
Evaluator_2019_09_OMC_JSON_V2_1 2109.306656594996 ns/iter 2557.1470118454235 ns/iter 0.82
Evaluator_2020_12_Dynamic_Ref 499.0597968657355 ns/iter 592.0419015412338 ns/iter 0.84

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Benchmark suite Current: 1c2f087 Previous: d060357 Ratio
Compiler_Draft6_AdaptiveCard 117011329800 ns/iter 118243675000.00017 ns/iter 0.99
Compiler_2019_09_OMC_JSON_V2 25184433099.999977 ns/iter 25283875200.00001 ns/iter 1.00
Evaluator_Draft4_Meta_1_No_Callback 306.66825892856156 ns/iter 384.5367745535709 ns/iter 0.80
Evaluator_Draft4_Required_Properties 533.4541071429198 ns/iter 665.4527678571347 ns/iter 0.80
Evaluator_Draft4_Many_Optional_Properties_Minimal_Match 27.836742732871357 ns/iter 35.42071851280737 ns/iter 0.79
Evaluator_Draft4_Few_Optional_Properties_Minimal_Match 17.66599497098445 ns/iter 21.430375000001334 ns/iter 0.82
Evaluator_Draft4_Items_Schema 281.50263029006277 ns/iter 537.5788000001194 ns/iter 0.52
Evaluator_Draft4_Nested_Object 4.024859933035505 ns/iter 3.781427671818646 ns/iter 1.06
Evaluator_Draft4_Properties_Triad_Optional 1643.8265624998394 ns/iter 1683.78728764253 ns/iter 0.98
Evaluator_Draft4_Properties_Triad_Closed 1377.2850547834555 ns/iter 1393.2005833927906 ns/iter 0.99
Evaluator_Draft4_Properties_Triad_Required 1662.3743778742146 ns/iter 1704.3884568827539 ns/iter 0.98
Evaluator_Draft4_Properties_Closed 109.24059375000185 ns/iter 126.24578571429116 ns/iter 0.87
Evaluator_Draft4_Non_Recursive_Ref 12.212440624999488 ns/iter 15.990870535717809 ns/iter 0.76
Evaluator_Draft4_Pattern_Properties_True 190.14991785047354 ns/iter 229.02482934989084 ns/iter 0.83
Evaluator_Draft4_Ref_To_Single_Property 18.590271594557308 ns/iter 22.039009374999807 ns/iter 0.84
Evaluator_Draft4_Additional_Properties_Type 26.109017857139957 ns/iter 32.510401785716326 ns/iter 0.80
Evaluator_Draft4_Nested_Oneof 80.04018973214296 ns/iter 147.50380591501715 ns/iter 0.54
Evaluator_Draft4_Long_Enum 19.8083846402909 ns/iter 22.40723077670827 ns/iter 0.88
Evaluator_Draft4_Type_Object 6.830114285713355 ns/iter 9.656307546174208 ns/iter 0.71
Evaluator_Draft6_Property_Names 390.6531250000051 ns/iter 294.17030868639415 ns/iter 1.33
Evaluator_Draft7_If_Then_Else 32.55748175870756 ns/iter 44.45827482626072 ns/iter 0.73
Evaluator_Draft7_Vercel_1 94707.03125000313 ns/iter 109306.67187498244 ns/iter 0.87
Evaluator_Draft7_Helm_Chart_Lock_1 241.80653571428527 ns/iter 291.2603125000349 ns/iter 0.83
Evaluator_2019_09_Unevaluated_Properties 293.7406881985561 ns/iter 317.8490184140076 ns/iter 0.92
Evaluator_2019_09_OMC_JSON_V2_1 3223.38456778768 ns/iter 3990.606584821167 ns/iter 0.81
Evaluator_2020_12_Dynamic_Ref 867.0218450794209 ns/iter 1196.7587500001691 ns/iter 0.72

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.