-
Notifications
You must be signed in to change notification settings - Fork 18k
cmd/compile: sparse conditional constant propagation #59575
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
This PR (HEAD: 3383b28) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/483875 to see it. Tip: You can toggle comments from me using the |
Message from Keith Randall: Patch Set 1: (5 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Yi Yang: Patch Set 1: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Keith Randall: Patch Set 1: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
This PR (HEAD: 2227f13) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/483875 to see it. Tip: You can toggle comments from me using the |
Message from Yi Yang: Patch Set 2: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
This PR (HEAD: 3ed13b4) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/483875 to see it. Tip: You can toggle comments from me using the |
Message from Keith Randall: Patch Set 3: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Keith Randall: Patch Set 3: (2 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Yi Yang: Patch Set 3: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
This PR (HEAD: cf9787f) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/483875 to see it. Tip: You can toggle comments from me using the |
Message from Gopher Robot: Patch Set 4: Congratulations on opening your first change. Thank you for your contribution! Next steps: Most changes in the Go project go through a few rounds of revision. This can be During May-July and Nov-Jan the Go project is in a code freeze, during which Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
This PR (HEAD: 211d014) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/483875 to see it. Tip: You can toggle comments from me using the |
Message from Yi Yang: Patch Set 5: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Yi Yang: Patch Set 5: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
This PR (HEAD: e601521) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/483875 to see it. Tip: You can toggle comments from me using the |
Message from Yi Yang: Patch Set 6: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Keith Randall: Patch Set 6: (3 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Yi Yang: Patch Set 6: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Yi Yang: Patch Set 6: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Yi Yang: Patch Set 6: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Keith Randall: Patch Set 6: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Yi Yang: Patch Set 6: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
This PR (HEAD: 24baed7) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/483875 to see it. Tip: You can toggle comments from me using the |
Message from [email protected]: Patch Set 7: (2 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
This PR (HEAD: 5600637) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/483875 to see it. Tip: You can toggle comments from me using the |
Message from Keith Randall: Patch Set 8: (14 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Yi Yang: Patch Set 8: (13 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
This PR (HEAD: 0db0609) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/483875 to see it. Tip: You can toggle comments from me using the |
This PR (HEAD: 29d55a3) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/483875 to see it. Tip: You can toggle comments from me using the |
Message from Keith Randall: Patch Set 15: Code-Review+2 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
sparse conditional constant propagation can discover optimization opportunities that cannot be found by just combining constant folding and constant propagation and dead code elimination separately. Updates golang#59399
before: befoe_early_deadcode: 294839 constants 67689 dce, after_prove: 92576 constants 1303 dce before_lower: 422 constants 160 dce after: befoe_early_deadcode: 301885 constants 67692 dce after_prove: 92603 constants 1314 dce before_lower: 422 constants 171 dce
The crash happens when performing sccp after phiopt. b28: ← b26 b27 v107 (115) = Phi <*ir.Name> v106 v43 (n[*ir.Name]) v108 (115) = Copy <bool> v105 (ok[bool]) If v108 → b30 b29 (115) When fistly processes edge b26->b28, all values of b28 is evaluated, but v108 is not visited because v105 is never possibleConst, later during propagate(b28), sccp founds v108 is Top, and it ignores further control flows, this leads to a crash, actually v108 should be Bottom and all of b28 successors should be append to worklist. I removed fast fail in visitValue to always evaluate such case and added a comment to reflect this.(Another approach is to check such case in possibleConst, which is relatively complex)
I ran some gin http benchmarks for sccp to observe its performance. base vs sccp_v1 ``` goos: linux goarch: amd64 pkg: github.com/julienschmidt/go-http-routing-benchmark cpu: Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz │ old.log │ new1.log │ │ sec/op │ sec/op vs base │ Ace_Param 78.73n ± 1% 79.03n ± 3% ~ (p=0.565 n=10) Aero_Param 45.50n ± 0% 45.41n ± 0% -0.19% (p=0.000 n=10) Bear_Param 618.1n ± 1% 618.9n ± 1% ~ (p=0.393 n=10) Beego_Param 798.8n ± 1% 796.9n ± 1% ~ (p=0.565 n=10) Bone_Param 899.8n ± 1% 916.7n ± 0% +1.88% (p=0.000 n=10) Chi_Param 491.5n ± 1% 494.4n ± 0% +0.60% (p=0.000 n=10) Denco_Param 109.6n ± 1% 115.6n ± 3% +5.52% (p=0.000 n=10) Echo_Param 66.89n ± 4% 66.63n ± 5% ~ (p=0.190 n=10) Gin_Param 59.11n ± 0% 58.30n ± 2% -1.37% (p=0.018 n=10) GocraftWeb_Param 878.1n ± 1% 890.5n ± 1% +1.41% (p=0.000 n=10) Goji_Param 450.8n ± 1% 454.9n ± 1% +0.93% (p=0.037 n=10) Gojiv2_Param 1.131µ ± 0% 1.140µ ± 1% +0.84% (p=0.002 n=10) GoJsonRest_Param 1.062µ ± 1% 1.064µ ± 1% ~ (p=0.922 n=10) GoRestful_Param 3.590µ ± 0% 3.612µ ± 1% +0.60% (p=0.008 n=10) GorillaMux_Param 1.512µ ± 0% 1.517µ ± 1% +0.33% (p=0.012 n=10) GowwwRouter_Param 307.9n ± 1% 310.9n ± 2% +0.97% (p=0.001 n=10) HttpRouter_Param 42.08n ± 0% 39.33n ± 1% -6.54% (p=0.000 n=10) HttpTreeMux_Param 428.8n ± 0% 432.7n ± 0% +0.90% (p=0.000 n=10) Kocha_Param 222.6n ± 2% 219.4n ± 1% -1.44% (p=0.022 n=10) LARS_Param 50.02n ± 2% 51.43n ± 2% +2.83% (p=0.001 n=10) Macaron_Param 1.839µ ± 1% 1.834µ ± 1% ~ (p=0.323 n=10) Martini_Param 3.670µ ± 0% 3.960µ ± 1% +7.92% (p=0.000 n=10) Pat_Param 1.041µ ± 0% 1.048µ ± 1% +0.72% (p=0.002 n=10) Possum_Param 774.8n ± 1% 774.0n ± 1% ~ (p=0.591 n=10) R2router_Param 437.6n ± 1% 438.8n ± 0% +0.26% (p=0.004 n=10) Rivet_Param 129.1n ± 0% 126.8n ± 0% -1.74% (p=0.000 n=10) Tango_Param 703.5n ± 0% 702.6n ± 0% ~ (p=0.781 n=10) TigerTonic_Param 1.584µ ± 0% 1.586µ ± 1% ~ (p=0.321 n=10) Traffic_Param 2.632µ ± 0% 2.622µ ± 1% ~ (p=0.117 n=10) Vulcan_Param 390.1n ± 1% 388.9n ± 0% ~ (p=0.343 n=10) Ace_Param5 124.3n ± 1% 121.7n ± 3% -2.09% (p=0.023 n=10) Aero_Param5 65.62n ± 4% 66.59n ± 2% +1.49% (p=0.022 n=10) Bear_Param5 870.9n ± 1% 861.0n ± 0% -1.13% (p=0.000 n=10) Beego_Param5 993.9n ± 1% 974.4n ± 1% -1.97% (p=0.000 n=10) Bone_Param5 1.235µ ± 1% 1.243µ ± 0% +0.69% (p=0.001 n=10) Chi_Param5 716.8n ± 1% 718.7n ± 1% ~ (p=0.644 n=10) Denco_Param5 268.3n ± 1% 274.8n ± 1% +2.42% (p=0.000 n=10) Echo_Param5 168.6n ± 0% 166.4n ± 0% -1.28% (p=0.000 n=10) Gin_Param5 107.0n ± 1% 106.3n ± 2% ~ (p=0.516 n=10) GocraftWeb_Param5 1.425µ ± 0% 1.417µ ± 0% -0.56% (p=0.000 n=10) Goji_Param5 635.3n ± 0% 630.7n ± 1% -0.73% (p=0.000 n=10) Gojiv2_Param5 1.356µ ± 1% 1.359µ ± 0% ~ (p=0.382 n=10) GoJsonRest_Param5 2.007µ ± 0% 1.995µ ± 0% -0.60% (p=0.000 n=10) GoRestful_Param5 3.968µ ± 0% 3.949µ ± 2% ~ (p=0.225 n=10) GorillaMux_Param5 2.361µ ± 0% 2.355µ ± 0% -0.23% (p=0.022 n=10) GowwwRouter_Param5 386.1n ± 0% 383.0n ± 1% -0.80% (p=0.001 n=10) HttpRouter_Param5 85.30n ± 2% 83.62n ± 2% -1.96% (p=0.003 n=10) HttpTreeMux_Param5 1.000µ ± 0% 1.003µ ± 0% ~ (p=0.168 n=10) Kocha_Param5 868.8n ± 1% 863.0n ± 0% -0.66% (p=0.004 n=10) LARS_Param5 91.59n ± 0% 93.49n ± 1% +2.07% (p=0.000 n=10) Macaron_Param5 2.079µ ± 0% 2.077µ ± 1% ~ (p=0.926 n=10) Martini_Param5 4.302µ ± 1% 4.625µ ± 1% +7.51% (p=0.000 n=10) Pat_Param5 2.585µ ± 1% 2.583µ ± 0% ~ (p=0.492 n=10) Possum_Param5 775.9n ± 0% 772.2n ± 1% ~ (p=0.055 n=10) R2router_Param5 567.8n ± 1% 566.2n ± 1% ~ (p=0.542 n=10) Rivet_Param5 400.2n ± 1% 398.8n ± 1% ~ (p=0.197 n=10) Tango_Param5 866.1n ± 1% 862.1n ± 1% -0.47% (p=0.024 n=10) TigerTonic_Param5 5.319µ ± 0% 5.311µ ± 1% ~ (p=0.986 n=10) Traffic_Param5 4.222µ ± 0% 4.203µ ± 0% -0.46% (p=0.003 n=10) Vulcan_Param5 524.1n ± 1% 528.4n ± 0% +0.82% (p=0.005 n=10) Ace_Param20 289.9n ± 1% 284.5n ± 1% -1.86% (p=0.000 n=10) Aero_Param20 28.46n ± 0% 28.38n ± 0% -0.30% (p=0.000 n=10) Bear_Param20 2.635µ ± 1% 2.618µ ± 1% -0.65% (p=0.017 n=10) Beego_Param20 2.428µ ± 0% 2.434µ ± 0% +0.25% (p=0.013 n=10) Bone_Param20 3.344µ ± 1% 3.342µ ± 1% ~ (p=0.779 n=10) Chi_Param20 1.543µ ± 1% 1.560µ ± 1% +1.13% (p=0.006 n=10) Denco_Param20 911.0n ± 1% 917.9n ± 0% +0.76% (p=0.000 n=10) Echo_Param20 499.4n ± 0% 498.9n ± 1% ~ (p=0.867 n=10) Gin_Param20 269.2n ± 0% 269.4n ± 2% ~ (p=0.148 n=10) GocraftWeb_Param20 5.279µ ± 1% 5.216µ ± 1% -1.19% (p=0.000 n=10) Goji_Param20 1.983µ ± 1% 1.971µ ± 1% -0.58% (p=0.003 n=10) Gojiv2_Param20 1.819µ ± 0% 1.816µ ± 0% ~ (p=0.306 n=10) GoJsonRest_Param20 6.890µ ± 1% 6.894µ ± 1% ~ (p=0.739 n=10) GoRestful_Param20 8.066µ ± 1% 7.990µ ± 0% -0.94% (p=0.006 n=10) GorillaMux_Param20 5.520µ ± 1% 5.533µ ± 0% ~ (p=0.343 n=10) GowwwRouter_Param20 799.1n ± 2% 774.6n ± 1% -3.07% (p=0.000 n=10) HttpRouter_Param20 251.4n ± 1% 253.4n ± 3% ~ (p=0.383 n=10) HttpTreeMux_Param20 4.810µ ± 1% 4.814µ ± 0% ~ (p=0.986 n=10) Kocha_Param20 2.651µ ± 1% 2.653µ ± 0% ~ (p=0.670 n=10) LARS_Param20 244.8n ± 1% 246.8n ± 1% +0.82% (p=0.002 n=10) Macaron_Param20 5.386µ ± 0% 5.356µ ± 0% -0.57% (p=0.001 n=10) Martini_Param20 7.842µ ± 1% 8.155µ ± 1% +4.00% (p=0.000 n=10) Pat_Param20 11.31µ ± 1% 11.29µ ± 0% ~ (p=0.123 n=10) Possum_Param20 773.1n ± 1% 772.6n ± 0% ~ (p=0.698 n=10) R2router_Param20 3.230µ ± 1% 3.254µ ± 1% ~ (p=0.118 n=10) Rivet_Param20 1.543µ ± 0% 1.541µ ± 0% -0.10% (p=0.042 n=10) Tango_Param20 1.724µ ± 0% 1.712µ ± 0% -0.67% (p=0.002 n=10) TigerTonic_Param20 21.92µ ± 0% 21.78µ ± 0% -0.64% (p=0.002 n=10) Traffic_Param20 15.07µ ± 1% 15.10µ ± 0% ~ (p=0.684 n=10) Vulcan_Param20 981.9n ± 0% 983.4n ± 0% ~ (p=0.091 n=10) Ace_ParamWrite 153.2n ± 0% 151.5n ± 0% -1.08% (p=0.000 n=10) Aero_ParamWrite 71.80n ± 0% 71.30n ± 1% -0.71% (p=0.011 n=10) Bear_ParamWrite 658.6n ± 0% 661.2n ± 0% +0.38% (p=0.014 n=10) Beego_ParamWrite 854.8n ± 1% 844.9n ± 1% -1.16% (p=0.001 n=10) Bone_ParamWrite 925.0n ± 1% 946.0n ± 1% +2.28% (p=0.000 n=10) Chi_ParamWrite 544.0n ± 1% 544.6n ± 1% ~ (p=0.812 n=10) Denco_ParamWrite 139.1n ± 1% 141.4n ± 2% ~ (p=0.101 n=10) Echo_ParamWrite 148.5n ± 1% 139.8n ± 1% -5.86% (p=0.000 n=10) Gin_ParamWrite 101.8n ± 1% 100.5n ± 0% -1.28% (p=0.000 n=10) GocraftWeb_ParamWrite 969.5n ± 0% 965.5n ± 0% -0.41% (p=0.003 n=10) Goji_ParamWrite 489.7n ± 1% 490.1n ± 0% ~ (p=0.698 n=10) Gojiv2_ParamWrite 1.305µ ± 0% 1.305µ ± 0% ~ (p=0.926 n=10) GoJsonRest_ParamWrite 1.621µ ± 0% 1.619µ ± 0% ~ (p=0.838 n=10) GoRestful_ParamWrite 3.684µ ± 1% 3.686µ ± 1% ~ (p=0.986 n=10) GorillaMux_ParamWrite 1.575µ ± 0% 1.573µ ± 0% ~ (p=0.563 n=10) GowwwRouter_ParamWrite 979.5n ± 1% 983.0n ± 1% ~ (p=0.225 n=10) HttpRouter_ParamWrite 66.87n ± 0% 63.93n ± 0% -4.40% (p=0.000 n=10) HttpTreeMux_ParamWrite 453.3n ± 0% 452.3n ± 1% ~ (p=0.869 n=10) Kocha_ParamWrite 250.2n ± 2% 249.1n ± 1% ~ (p=0.392 n=10) LARS_ParamWrite 87.43n ± 1% 86.28n ± 1% -1.31% (p=0.019 n=10) Macaron_ParamWrite 2.131µ ± 0% 2.140µ ± 0% ~ (p=0.054 n=10) Martini_ParamWrite 4.147µ ± 0% 4.460µ ± 0% +7.54% (p=0.000 n=10) Pat_ParamWrite 1.611µ ± 0% 1.615µ ± 0% ~ (p=0.210 n=10) Possum_ParamWrite 773.0n ± 1% 769.4n ± 1% ~ (p=0.063 n=10) R2router_ParamWrite 490.2n ± 1% 488.5n ± 1% -0.36% (p=0.018 n=10) Rivet_ParamWrite 240.8n ± 0% 242.7n ± 0% +0.77% (p=0.000 n=10) Tango_ParamWrite 352.6n ± 1% 349.5n ± 0% -0.87% (p=0.000 n=10) TigerTonic_ParamWrite 2.270µ ± 0% 2.270µ ± 1% ~ (p=0.954 n=10) Traffic_ParamWrite 3.195µ ± 0% 3.165µ ± 1% -0.92% (p=0.000 n=10) Vulcan_ParamWrite 387.6n ± 1% 389.6n ± 1% +0.52% (p=0.020 n=10) Ace_GithubStatic 70.67n ± 6% 71.80n ± 0% +1.58% (p=0.022 n=10) Aero_GithubStatic 40.14n ± 0% 40.50n ± 0% +0.90% (p=0.000 n=10) Bear_GithubStatic 354.3n ± 0% 352.6n ± 0% -0.48% (p=0.041 n=10) Beego_GithubStatic 819.9n ± 1% 815.7n ± 1% -0.51% (p=0.003 n=10) Bone_GithubStatic 9.862µ ± 0% 9.913µ ± 0% +0.53% (p=0.004 n=10) Chi_GithubStatic 482.8n ± 1% 484.9n ± 0% +0.46% (p=0.012 n=10) Denco_GithubStatic 23.07n ± 0% 29.70n ± 0% +28.72% (p=0.000 n=10) Echo_GithubStatic 97.74n ± 0% 104.70n ± 2% +7.12% (p=0.000 n=10) Gin_GithubStatic 69.01n ± 1% 67.78n ± 0% -1.79% (p=0.000 n=10) GocraftWeb_GithubStatic 550.7n ± 0% 549.0n ± 1% ~ (p=0.137 n=10) Goji_GithubStatic 180.0n ± 0% 176.7n ± 0% -1.83% (p=0.000 n=10) Gojiv2_GithubStatic 1.110µ ± 0% 1.109µ ± 0% ~ (p=0.752 n=10) GoRestful_GithubStatic 7.372µ ± 1% 7.343µ ± 1% -0.39% (p=0.035 n=10) GoJsonRest_GithubStatic 850.9n ± 1% 853.4n ± 0% ~ (p=0.403 n=10) GorillaMux_GithubStatic 3.863µ ± 0% 3.887µ ± 0% +0.61% (p=0.000 n=10) GowwwRouter_GithubStatic 65.62n ± 0% 65.84n ± 0% +0.34% (p=0.000 n=10) HttpRouter_GithubStatic 37.39n ± 0% 37.18n ± 0% -0.53% (p=0.000 n=10) HttpTreeMux_GithubStatic 48.31n ± 0% 48.07n ± 0% -0.50% (p=0.000 n=10) Kocha_GithubStatic 40.75n ± 0% 43.84n ± 0% +7.58% (p=0.000 n=10) LARS_GithubStatic 63.60n ± 1% 64.61n ± 0% +1.59% (p=0.000 n=10) Macaron_GithubStatic 1.377µ ± 0% 1.380µ ± 1% ~ (p=0.341 n=10) Martini_GithubStatic 6.483µ ± 0% 6.828µ ± 0% +5.33% (p=0.000 n=10) Pat_GithubStatic 8.537µ ± 1% 8.320µ ± 1% -2.54% (p=0.000 n=10) Possum_GithubStatic 577.1n ± 1% 573.6n ± 1% ~ (p=0.055 n=10) R2router_GithubStatic 233.9n ± 0% 236.2n ± 0% +0.98% (p=0.000 n=10) Rivet_GithubStatic 81.53n ± 0% 80.14n ± 0% -1.70% (p=0.000 n=10) Tango_GithubStatic 849.4n ± 0% 847.8n ± 1% ~ (p=0.280 n=10) TigerTonic_GithubStatic 197.3n ± 0% 200.3n ± 0% +1.55% (p=0.000 n=10) Traffic_GithubStatic 8.654µ ± 1% 8.648µ ± 0% ~ (p=0.393 n=10) Vulcan_GithubStatic 579.8n ± 1% 578.8n ± 0% ~ (p=0.072 n=10) Ace_GithubParam 143.5n ± 1% 141.8n ± 0% -1.15% (p=0.000 n=10) Aero_GithubParam 91.52n ± 0% 91.03n ± 0% -0.53% (p=0.000 n=10) Bear_GithubParam 777.0n ± 0% 768.5n ± 1% -1.09% (p=0.000 n=10) Beego_GithubParam 939.4n ± 1% 933.5n ± 1% -0.63% (p=0.005 n=10) Bone_GithubParam 5.337µ ± 0% 5.263µ ± 0% -1.38% (p=0.000 n=10) Chi_GithubParam 692.6n ± 0% 694.0n ± 0% ~ (p=0.342 n=10) Denco_GithubParam 240.6n ± 0% 251.8n ± 1% +4.66% (p=0.000 n=10) Echo_GithubParam 178.3n ± 0% 182.4n ± 0% +2.30% (p=0.000 n=10) Gin_GithubParam 125.3n ± 0% 118.2n ± 1% -5.63% (p=0.000 n=10) GocraftWeb_GithubParam 1.085µ ± 0% 1.084µ ± 0% ~ (p=0.340 n=10) Goji_GithubParam 776.6n ± 1% 769.4n ± 0% -0.94% (p=0.000 n=10) Gojiv2_GithubParam 1.634µ ± 0% 1.630µ ± 0% ~ (p=0.116 n=10) GoJsonRest_GithubParam 1.493µ ± 0% 1.482µ ± 0% -0.74% (p=0.000 n=10) GoRestful_GithubParam 9.507µ ± 0% 9.543µ ± 0% +0.38% (p=0.003 n=10) GorillaMux_GithubParam 5.821µ ± 0% 5.823µ ± 0% ~ (p=0.837 n=10) GowwwRouter_GithubParam 396.8n ± 0% 403.6n ± 0% +1.73% (p=0.000 n=10) HttpRouter_GithubParam 102.70n ± 0% 99.49n ± 0% -3.13% (p=0.000 n=10) HttpTreeMux_GithubParam 658.0n ± 1% 660.6n ± 0% +0.40% (p=0.012 n=10) Kocha_GithubParam 446.9n ± 1% 449.5n ± 0% +0.59% (p=0.000 n=10) LARS_GithubParam 107.9n ± 1% 108.4n ± 0% ~ (p=0.055 n=10) Macaron_GithubParam 2.049µ ± 1% 2.040µ ± 1% ~ (p=0.305 n=10) Martini_GithubParam 8.170µ ± 0% 8.520µ ± 0% +4.28% (p=0.000 n=10) Pat_GithubParam 6.791µ ± 1% 6.775µ ± 1% ~ (p=0.516 n=10) Possum_GithubParam 786.8n ± 1% 785.0n ± 3% ~ (p=0.542 n=10) R2router_GithubParam 509.5n ± 1% 505.0n ± 1% -0.88% (p=0.050 n=10) Rivet_GithubParam 313.8n ± 1% 311.8n ± 1% -0.65% (p=0.013 n=10) Tango_GithubParam 981.3n ± 0% 972.4n ± 0% -0.90% (p=0.000 n=10) TigerTonic_GithubParam 2.501µ ± 0% 2.496µ ± 0% ~ (p=0.070 n=10) Traffic_GithubParam 7.520µ ± 0% 7.531µ ± 0% ~ (p=0.196 n=10) Vulcan_GithubParam 926.2n ± 1% 937.9n ± 0% +1.25% (p=0.000 n=10) Ace_GithubAll 29.14µ ± 0% 28.70µ ± 0% -1.50% (p=0.000 n=10) Aero_GithubAll 20.23µ ± 0% 19.69µ ± 0% -2.68% (p=0.000 n=10) Bear_GithubAll 164.7µ ± 0% 165.2µ ± 0% ~ (p=0.075 n=10) Beego_GithubAll 199.7µ ± 1% 199.6µ ± 1% ~ (p=0.481 n=10) Bone_GithubAll 2.204m ± 1% 2.200m ± 1% ~ (p=0.052 n=10) Chi_GithubAll 145.4µ ± 0% 144.7µ ± 0% -0.48% (p=0.000 n=10) Denco_GithubAll 48.80µ ± 0% 49.91µ ± 1% +2.26% (p=0.000 n=10) Echo_GithubAll 38.63µ ± 0% 39.11µ ± 0% +1.27% (p=0.000 n=10) Gin_GithubAll 25.94µ ± 0% 25.24µ ± 0% -2.71% (p=0.000 n=10) GocraftWeb_GithubAll 226.6µ ± 0% 227.2µ ± 1% ~ (p=0.247 n=10) Goji_GithubAll 360.0µ ± 0% 361.3µ ± 0% +0.38% (p=0.002 n=10) Gojiv2_GithubAll 539.5µ ± 1% 546.8µ ± 0% +1.34% (p=0.000 n=10) GoJsonRest_GithubAll 299.4µ ± 0% 299.2µ ± 0% ~ (p=0.579 n=10) GoRestful_GithubAll 1.760m ± 1% 1.772m ± 1% +0.67% (p=0.015 n=10) GorillaMux_GithubAll 2.745m ± 1% 2.730m ± 1% -0.55% (p=0.035 n=10) GowwwRouter_GithubAll 79.18µ ± 1% 80.14µ ± 1% +1.21% (p=0.000 n=10) HttpRouter_GithubAll 20.40µ ± 0% 19.94µ ± 0% -2.29% (p=0.000 n=10) HttpTreeMux_GithubAll 122.4µ ± 1% 120.8µ ± 0% -1.31% (p=0.000 n=10) Kocha_GithubAll 93.18µ ± 1% 91.89µ ± 0% -1.38% (p=0.000 n=10) LARS_GithubAll 22.19µ ± 0% 22.76µ ± 0% +2.56% (p=0.000 n=10) Macaron_GithubAll 288.8µ ± 1% 287.9µ ± 0% ~ (p=0.063 n=10) Martini_GithubAll 2.983m ± 0% 3.045m ± 0% +2.08% (p=0.000 n=10) Pat_GithubAll 3.212m ± 0% 3.188m ± 0% -0.76% (p=0.000 n=10) Possum_GithubAll 124.2µ ± 0% 123.5µ ± 0% -0.55% (p=0.003 n=10) R2router_GithubAll 109.2µ ± 0% 109.1µ ± 0% ~ (p=0.105 n=10) Rivet_GithubAll 64.97µ ± 1% 65.20µ ± 0% +0.36% (p=0.034 n=10) Tango_GithubAll 205.8µ ± 0% 203.5µ ± 0% -1.11% (p=0.000 n=10) TigerTonic_GithubAll 506.6µ ± 1% 505.1µ ± 1% ~ (p=0.436 n=10) Traffic_GithubAll 2.628m ± 1% 2.629m ± 0% ~ (p=0.739 n=10) Vulcan_GithubAll 158.5µ ± 0% 157.9µ ± 0% -0.35% (p=0.009 n=10) Ace_GPlusStatic 54.17n ± 0% 55.37n ± 1% +2.22% (p=0.000 n=10) Aero_GPlusStatic 31.36n ± 0% 31.24n ± 0% -0.38% (p=0.000 n=10) Bear_GPlusStatic 276.4n ± 0% 275.2n ± 0% -0.45% (p=0.000 n=10) Beego_GPlusStatic 737.4n ± 0% 733.4n ± 1% -0.55% (p=0.001 n=10) Bone_GPlusStatic 149.7n ± 0% 149.8n ± 1% ~ (p=0.098 n=10) Chi_GPlusStatic 443.3n ± 1% 445.8n ± 1% ~ (p=0.085 n=10) Denco_GPlusStatic 17.45n ± 0% 19.02n ± 0% +9.03% (p=0.000 n=10) Echo_GPlusStatic 62.58n ± 1% 62.78n ± 0% ~ (p=0.091 n=10) Gin_GPlusStatic 54.36n ± 1% 51.84n ± 0% -4.63% (p=0.000 n=10) GocraftWeb_GPlusStatic 500.0n ± 1% 499.8n ± 1% ~ (p=0.271 n=10) Goji_GPlusStatic 123.7n ± 0% 122.4n ± 0% -1.05% (p=0.000 n=10) Gojiv2_GPlusStatic 1.036µ ± 1% 1.040µ ± 1% ~ (p=0.361 n=10) GoJsonRest_GPlusStatic 719.9n ± 1% 723.5n ± 0% +0.50% (p=0.023 n=10) GoRestful_GPlusStatic 3.462µ ± 1% 3.451µ ± 0% -0.32% (p=0.041 n=10) GorillaMux_GPlusStatic 1.029µ ± 0% 1.034µ ± 0% +0.44% (p=0.000 n=10) GowwwRouter_GPlusStatic 24.53n ± 0% 24.46n ± 0% -0.27% (p=0.000 n=10) HttpRouter_GPlusStatic 21.18n ± 0% 21.12n ± 0% -0.24% (p=0.012 n=10) HttpTreeMux_GPlusStatic 30.80n ± 0% 30.75n ± 0% -0.15% (p=0.000 n=10) Kocha_GPlusStatic 27.50n ± 0% 27.50n ± 0% ~ (p=0.237 n=10) LARS_GPlusStatic 48.70n ± 1% 47.20n ± 1% -3.07% (p=0.000 n=10) Macaron_GPlusStatic 1.378µ ± 1% 1.380µ ± 0% ~ (p=0.538 n=10) Martini_GPlusStatic 3.286µ ± 0% 3.559µ ± 0% +8.32% (p=0.000 n=10) Pat_GPlusStatic 240.3n ± 0% 232.5n ± 0% -3.29% (p=0.000 n=10) Possum_GPlusStatic 573.8n ± 1% 570.9n ± 0% -0.49% (p=0.004 n=10) R2router_GPlusStatic 205.8n ± 0% 208.9n ± 1% +1.53% (p=0.000 n=10) Rivet_GPlusStatic 50.21n ± 0% 47.50n ± 0% -5.39% (p=0.000 n=10) Tango_GPlusStatic 630.2n ± 0% 630.8n ± 0% ~ (p=0.469 n=10) TigerTonic_GPlusStatic 128.0n ± 0% 128.4n ± 0% +0.35% (p=0.000 n=10) Traffic_GPlusStatic 1.601µ ± 1% 1.592µ ± 1% ~ (p=0.108 n=10) Vulcan_GPlusStatic 348.9n ± 0% 350.3n ± 0% +0.39% (p=0.003 n=10) Ace_GPlusParam 105.0n ± 0% 106.6n ± 0% +1.52% (p=0.000 n=10) Aero_GPlusParam 64.23n ± 1% 64.34n ± 1% ~ (p=0.796 n=10) Bear_GPlusParam 626.5n ± 1% 624.7n ± 1% ~ (p=0.127 n=10) Beego_GPlusParam 848.4n ± 1% 840.0n ± 1% -0.98% (p=0.005 n=10) Bone_GPlusParam 988.8n ± 1% 987.1n ± 0% ~ (p=0.403 n=10) Chi_GPlusParam 544.9n ± 0% 546.5n ± 0% +0.30% (p=0.027 n=10) Denco_GPlusParam 155.2n ± 1% 160.2n ± 0% +3.22% (p=0.000 n=10) Echo_GPlusParam 95.56n ± 0% 95.06n ± 0% -0.52% (p=0.000 n=10) Gin_GPlusParam 85.82n ± 0% 84.92n ± 0% -1.04% (p=0.000 n=10) GocraftWeb_GPlusParam 876.0n ± 1% 875.9n ± 1% ~ (p=0.436 n=10) Goji_GPlusParam 507.7n ± 0% 510.9n ± 0% +0.64% (p=0.001 n=10) Gojiv2_GPlusParam 1.263µ ± 0% 1.266µ ± 0% +0.24% (p=0.007 n=10) GoJsonRest_GPlusParam 1.158µ ± 0% 1.155µ ± 0% ~ (p=0.106 n=10) GoRestful_GPlusParam 3.879µ ± 1% 3.873µ ± 1% ~ (p=0.956 n=10) GorillaMux_GPlusParam 2.131µ ± 0% 2.122µ ± 0% -0.45% (p=0.003 n=10) GowwwRouter_GPlusParam 324.9n ± 1% 327.1n ± 1% +0.69% (p=0.001 n=10) HttpRouter_GPlusParam 68.80n ± 1% 65.15n ± 0% -5.30% (p=0.000 n=10) HttpTreeMux_GPlusParam 447.6n ± 1% 453.2n ± 1% +1.25% (p=0.000 n=10) Kocha_GPlusParam 254.7n ± 0% 245.7n ± 0% -3.55% (p=0.000 n=10) LARS_GPlusParam 68.36n ± 1% 75.42n ± 0% +10.33% (p=0.000 n=10) Macaron_GPlusParam 1.941µ ± 0% 1.940µ ± 0% ~ (p=1.000 n=10) Martini_GPlusParam 3.941µ ± 0% 4.263µ ± 0% +8.16% (p=0.000 n=10) Pat_GPlusParam 1.263µ ± 0% 1.276µ ± 1% +1.03% (p=0.000 n=10) Possum_GPlusParam 795.2n ± 1% 789.3n ± 1% -0.75% (p=0.022 n=10) R2router_GPlusParam 441.3n ± 0% 443.5n ± 0% +0.48% (p=0.037 n=10) Rivet_GPlusParam 159.5n ± 0% 159.5n ± 0% ~ (p=0.954 n=10) Tango_GPlusParam 785.2n ± 1% 786.4n ± 1% ~ (p=0.255 n=10) TigerTonic_GPlusParam 1.734µ ± 0% 1.736µ ± 0% ~ (p=0.422 n=10) Traffic_GPlusParam 2.950µ ± 1% 2.940µ ± 1% ~ (p=0.306 n=10) Vulcan_GPlusParam 512.3n ± 1% 517.4n ± 1% +1.01% (p=0.000 n=10) Ace_GPlus2Params 129.7n ± 0% 129.4n ± 0% -0.23% (p=0.001 n=10) Aero_GPlus2Params 90.69n ± 0% 91.72n ± 0% +1.13% (p=0.000 n=10) Bear_GPlus2Params 744.5n ± 1% 745.1n ± 1% ~ (p=0.470 n=10) Beego_GPlus2Params 953.2n ± 1% 950.5n ± 1% ~ (p=0.078 n=10) Bone_GPlus2Params 2.533µ ± 0% 2.513µ ± 0% -0.77% (p=0.001 n=10) Chi_GPlus2Params 612.6n ± 0% 614.2n ± 0% +0.27% (p=0.014 n=10) Denco_GPlus2Params 206.7n ± 0% 210.2n ± 0% +1.72% (p=0.000 n=10) Echo_GPlus2Params 146.1n ± 0% 146.6n ± 0% +0.34% (p=0.000 n=10) Gin_GPlus2Params 107.5n ± 0% 107.1n ± 0% -0.33% (p=0.000 n=10) GocraftWeb_GPlus2Params 1.072µ ± 1% 1.069µ ± 0% ~ (p=0.195 n=10) Goji_GPlus2Params 770.9n ± 1% 777.0n ± 1% +0.78% (p=0.004 n=10) Gojiv2_GPlus2Params 1.718µ ± 0% 1.736µ ± 0% +1.05% (p=0.000 n=10) GoJsonRest_GPlus2Params 1.476µ ± 1% 1.458µ ± 0% -1.25% (p=0.000 n=10) GoRestful_GPlus2Params 4.196µ ± 1% 4.183µ ± 1% ~ (p=0.159 n=10) GorillaMux_GPlus2Params 4.487µ ± 0% 4.441µ ± 1% -1.01% (p=0.000 n=10) GowwwRouter_GPlus2Params 366.2n ± 1% 364.3n ± 1% ~ (p=0.615 n=10) HttpRouter_GPlus2Params 89.83n ± 2% 88.08n ± 1% -1.95% (p=0.000 n=10) HttpTreeMux_GPlus2Params 640.4n ± 1% 642.0n ± 0% ~ (p=0.971 n=10) Kocha_GPlus2Params 452.1n ± 0% 439.6n ± 1% -2.78% (p=0.000 n=10) LARS_GPlus2Params 88.11n ± 1% 97.21n ± 0% +10.33% (p=0.000 n=10) Macaron_GPlus2Params 2.070µ ± 1% 2.068µ ± 0% ~ (p=0.926 n=10) Martini_GPlus2Params 7.864µ ± 0% 8.196µ ± 0% +4.23% (p=0.000 n=10) Pat_GPlus2Params 4.838µ ± 0% 4.828µ ± 1% ~ (p=0.810 n=10) Possum_GPlus2Params 781.5n ± 1% 784.4n ± 1% ~ (p=0.897 n=10) R2router_GPlus2Params 504.3n ± 1% 502.3n ± 2% ~ (p=0.643 n=10) Rivet_GPlus2Params 254.5n ± 0% 251.2n ± 1% -1.32% (p=0.000 n=10) Tango_GPlus2Params 850.4n ± 1% 859.4n ± 2% ~ (p=0.280 n=10) TigerTonic_GPlus2Params 2.600µ ± 1% 2.602µ ± 0% ~ (p=0.447 n=10) Traffic_GPlus2Params 6.145µ ± 0% 6.182µ ± 1% +0.59% (p=0.016 n=10) Vulcan_GPlus2Params 807.9n ± 0% 810.1n ± 1% +0.27% (p=0.014 n=10) Ace_GPlusAll 1.392µ ± 0% 1.371µ ± 0% -1.51% (p=0.000 n=10) Aero_GPlusAll 934.6n ± 0% 928.7n ± 0% -0.64% (p=0.000 n=10) Bear_GPlusAll 8.724µ ± 1% 8.707µ ± 0% ~ (p=0.448 n=10) Beego_GPlusAll 11.54µ ± 1% 11.31µ ± 0% -2.01% (p=0.000 n=10) Bone_GPlusAll 22.60µ ± 0% 22.66µ ± 0% ~ (p=0.342 n=10) Chi_GPlusAll 7.799µ ± 1% 7.753µ ± 1% -0.58% (p=0.002 n=10) Denco_GPlusAll 2.315µ ± 0% 2.370µ ± 0% +2.38% (p=0.000 n=10) Echo_GPlusAll 1.626µ ± 0% 1.612µ ± 0% -0.86% (p=0.000 n=10) Gin_GPlusAll 1.120µ ± 0% 1.096µ ± 0% -2.10% (p=0.000 n=10) GocraftWeb_GPlusAll 12.33µ ± 2% 12.36µ ± 1% ~ (p=0.912 n=10) Goji_GPlusAll 7.165µ ± 0% 7.155µ ± 1% ~ (p=0.643 n=10) Gojiv2_GPlusAll 18.03µ ± 0% 18.01µ ± 1% ~ (p=0.928 n=10) GoJsonRest_GPlusAll 16.27µ ± 0% 16.33µ ± 1% +0.38% (p=0.035 n=10) GoRestful_GPlusAll 53.36µ ± 1% 53.13µ ± 1% ~ (p=0.105 n=10) GorillaMux_GPlusAll 33.31µ ± 1% 33.21µ ± 0% -0.29% (p=0.007 n=10) GowwwRouter_GPlusAll 4.303µ ± 1% 4.318µ ± 1% ~ (p=0.494 n=10) HttpRouter_GPlusAll 859.7n ± 0% 790.3n ± 0% -8.07% (p=0.000 n=10) HttpTreeMux_GPlusAll 6.104µ ± 0% 6.129µ ± 1% +0.41% (p=0.034 n=10) Kocha_GPlusAll 4.084µ ± 0% 4.036µ ± 0% -1.18% (p=0.000 n=10) LARS_GPlusAll 924.2n ± 0% 953.3n ± 0% +3.15% (p=0.000 n=10) Macaron_GPlusAll 18.23µ ± 1% 18.18µ ± 1% ~ (p=0.123 n=10) Martini_GPlusAll 63.82µ ± 0% 68.08µ ± 1% +6.67% (p=0.000 n=10) Pat_GPlusAll 35.34µ ± 1% 35.35µ ± 0% ~ (p=0.447 n=10) Possum_GPlusAll 7.883µ ± 0% 7.888µ ± 1% ~ (p=0.724 n=10) R2router_GPlusAll 6.136µ ± 0% 6.147µ ± 0% ~ (p=0.810 n=10) Rivet_GPlusAll 2.661µ ± 0% 2.621µ ± 1% -1.52% (p=0.001 n=10) Tango_GPlusAll 10.44µ ± 1% 10.47µ ± 1% ~ (p=0.289 n=10) TigerTonic_GPlusAll 27.28µ ± 1% 27.31µ ± 1% ~ (p=0.684 n=10) Traffic_GPlusAll 50.35µ ± 1% 50.28µ ± 0% ~ (p=0.954 n=10) Vulcan_GPlusAll 8.193µ ± 0% 8.177µ ± 0% -0.20% (p=0.030 n=10) Ace_ParseStatic 56.21n ± 0% 57.74n ± 0% +2.72% (p=0.000 n=10) Aero_ParseStatic 34.85n ± 0% 35.04n ± 0% +0.55% (p=0.000 n=10) Bear_ParseStatic 340.9n ± 1% 340.2n ± 1% ~ (p=0.109 n=10) Beego_ParseStatic 778.2n ± 0% 773.5n ± 0% -0.60% (p=0.002 n=10) Bone_ParseStatic 524.5n ± 0% 525.9n ± 0% ~ (p=0.055 n=10) Chi_ParseStatic 448.3n ± 1% 451.4n ± 1% +0.69% (p=0.002 n=10) Denco_ParseStatic 20.77n ± 0% 22.28n ± 0% +7.30% (p=0.000 n=10) Echo_ParseStatic 64.85n ± 0% 65.06n ± 1% ~ (p=0.183 n=10) Gin_ParseStatic 53.82n ± 0% 52.73n ± 0% -2.02% (p=0.000 n=10) GocraftWeb_ParseStatic 545.4n ± 0% 544.2n ± 0% ~ (p=0.184 n=10) Goji_ParseStatic 161.8n ± 0% 162.0n ± 0% +0.09% (p=0.000 n=10) Gojiv2_ParseStatic 1.052µ ± 1% 1.054µ ± 0% ~ (p=0.267 n=10) GoJsonRest_ParseStatic 760.4n ± 0% 759.4n ± 1% ~ (p=0.148 n=10) GoRestful_ParseStatic 4.337µ ± 0% 4.342µ ± 1% ~ (p=0.927 n=10) GorillaMux_ParseStatic 1.321µ ± 0% 1.309µ ± 0% -0.87% (p=0.000 n=10) GowwwRouter_ParseStatic 26.46n ± 0% 26.50n ± 0% +0.15% (p=0.000 n=10) HttpRouter_ParseStatic 22.27n ± 0% 22.88n ± 1% +2.69% (p=0.000 n=10) HttpTreeMux_ParseStatic 47.58n ± 0% 47.68n ± 0% +0.20% (p=0.000 n=10) Kocha_ParseStatic 30.68n ± 0% 30.69n ± 0% ~ (p=0.874 n=10) LARS_ParseStatic 48.07n ± 1% 48.68n ± 1% ~ (p=0.059 n=10) Macaron_ParseStatic 1.377µ ± 0% 1.376µ ± 0% ~ (p=0.590 n=10) Martini_ParseStatic 3.462µ ± 0% 3.771µ ± 0% +8.93% (p=0.000 n=10) Pat_ParseStatic 580.6n ± 1% 571.3n ± 1% -1.60% (p=0.000 n=10) Possum_ParseStatic 575.5n ± 1% 569.0n ± 1% -1.13% (p=0.000 n=10) R2router_ParseStatic 225.4n ± 0% 228.4n ± 0% +1.31% (p=0.000 n=10) Rivet_ParseStatic 52.74n ± 0% 48.05n ± 0% -8.89% (p=0.000 n=10) Tango_ParseStatic 703.8n ± 0% 708.0n ± 0% +0.59% (p=0.000 n=10) TigerTonic_ParseStatic 186.8n ± 0% 187.2n ± 0% +0.24% (p=0.021 n=10) Traffic_ParseStatic 1.924µ ± 1% 1.912µ ± 1% -0.62% (p=0.001 n=10) Vulcan_ParseStatic 401.6n ± 0% 403.8n ± 1% +0.55% (p=0.000 n=10) Ace_ParseParam 83.63n ± 0% 84.01n ± 0% +0.45% (p=0.000 n=10) Aero_ParseParam 52.24n ± 0% 52.18n ± 0% -0.12% (p=0.000 n=10) Bear_ParseParam 655.4n ± 1% 653.6n ± 1% ~ (p=0.066 n=10) Beego_ParseParam 824.3n ± 0% 818.5n ± 1% -0.70% (p=0.015 n=10) Bone_ParseParam 1.110µ ± 0% 1.112µ ± 0% ~ (p=0.303 n=10) Chi_ParseParam 525.3n ± 1% 522.7n ± 0% ~ (p=0.353 n=10) Denco_ParseParam 153.2n ± 1% 157.6n ± 1% +2.87% (p=0.000 n=10) Echo_ParseParam 79.67n ± 3% 78.97n ± 0% -0.87% (p=0.000 n=10) Gin_ParseParam 65.76n ± 0% 63.55n ± 0% -3.35% (p=0.000 n=10) GocraftWeb_ParseParam 932.9n ± 0% 925.1n ± 1% -0.84% (p=0.002 n=10) Goji_ParseParam 578.6n ± 0% 573.1n ± 0% -0.96% (p=0.000 n=10) Gojiv2_ParseParam 1.272µ ± 0% 1.270µ ± 1% ~ (p=0.252 n=10) GoJsonRest_ParseParam 1.119µ ± 0% 1.107µ ± 0% -1.12% (p=0.000 n=10) GoRestful_ParseParam 4.633µ ± 1% 4.640µ ± 1% ~ (p=0.492 n=10) GorillaMux_ParseParam 1.563µ ± 0% 1.558µ ± 1% ~ (p=0.224 n=10) GowwwRouter_ParseParam 317.9n ± 1% 318.6n ± 1% ~ (p=0.424 n=10) HttpRouter_ParseParam 47.45n ± 0% 44.30n ± 1% -6.64% (p=0.000 n=10) HttpTreeMux_ParseParam 433.1n ± 1% 441.9n ± 2% +2.02% (p=0.042 n=10) Kocha_ParseParam 233.9n ± 0% 230.9n ± 0% -1.33% (p=0.000 n=10) LARS_ParseParam 54.09n ± 1% 56.62n ± 1% +4.69% (p=0.000 n=10) Macaron_ParseParam 1.859µ ± 1% 1.852µ ± 1% ~ (p=0.143 n=10) Martini_ParseParam 3.688µ ± 0% 4.021µ ± 0% +9.04% (p=0.000 n=10) Pat_ParseParam 1.641µ ± 1% 1.652µ ± 1% +0.67% (p=0.004 n=10) Possum_ParseParam 783.1n ± 1% 779.3n ± 1% ~ (p=0.063 n=10) R2router_ParseParam 460.9n ± 0% 462.1n ± 0% +0.26% (p=0.042 n=10) Rivet_ParseParam 150.7n ± 0% 148.7n ± 0% -1.33% (p=0.000 n=10) Tango_ParseParam 758.1n ± 0% 757.9n ± 0% ~ (p=0.839 n=10) TigerTonic_ParseParam 1.635µ ± 1% 1.624µ ± 0% -0.67% (p=0.000 n=10) Traffic_ParseParam 2.540µ ± 1% 2.526µ ± 1% -0.55% (p=0.007 n=10) Vulcan_ParseParam 477.4n ± 0% 476.2n ± 0% -0.24% (p=0.041 n=10) Ace_Parse2Params 100.50n ± 0% 99.07n ± 0% -1.42% (p=0.000 n=10) Aero_Parse2Params 62.12n ± 0% 65.24n ± 0% +5.03% (p=0.000 n=10) Bear_Parse2Params 737.9n ± 1% 736.1n ± 1% ~ (p=0.138 n=10) Beego_Parse2Params 886.1n ± 1% 874.7n ± 1% -1.29% (p=0.000 n=10) Bone_Parse2Params 1.042µ ± 0% 1.044µ ± 1% ~ (p=0.926 n=10) Chi_Parse2Params 576.2n ± 0% 577.5n ± 1% +0.22% (p=0.044 n=10) Denco_Parse2Params 178.9n ± 1% 183.5n ± 0% +2.51% (p=0.000 n=10) Echo_Parse2Params 105.0n ± 0% 105.1n ± 0% +0.10% (p=0.011 n=10) Gin_Parse2Params 77.98n ± 0% 76.10n ± 0% -2.42% (p=0.000 n=10) GocraftWeb_Parse2Params 1.070µ ± 1% 1.066µ ± 1% ~ (p=0.060 n=10) Goji_Parse2Params 561.3n ± 0% 555.5n ± 1% -1.02% (p=0.000 n=10) Gojiv2_Parse2Params 1.270µ ± 0% 1.266µ ± 0% -0.35% (p=0.017 n=10) GoJsonRest_Parse2Params 1.330µ ± 0% 1.323µ ± 0% -0.53% (p=0.002 n=10) GoRestful_Parse2Params 5.027µ ± 1% 5.004µ ± 0% ~ (p=0.060 n=10) GorillaMux_Parse2Params 1.959µ ± 0% 1.960µ ± 0% ~ (p=0.423 n=10) GowwwRouter_Parse2Params 337.5n ± 1% 337.1n ± 1% ~ (p=0.148 n=10) HttpRouter_Parse2Params 62.49n ± 0% 59.33n ± 0% -5.06% (p=0.000 n=10) HttpTreeMux_Parse2Params 592.6n ± 0% 592.3n ± 1% ~ (p=0.986 n=10) Kocha_Parse2Params 403.7n ± 1% 400.2n ± 0% -0.85% (p=0.000 n=10) LARS_Parse2Params 66.69n ± 1% 67.83n ± 1% +1.71% (p=0.000 n=10) Macaron_Parse2Params 1.978µ ± 1% 1.973µ ± 0% -0.23% (p=0.040 n=10) Martini_Parse2Params 3.967µ ± 0% 4.318µ ± 1% +8.86% (p=0.000 n=10) Pat_Parse2Params 1.716µ ± 0% 1.721µ ± 0% ~ (p=0.092 n=10) Possum_Parse2Params 780.6n ± 1% 778.5n ± 1% ~ (p=0.210 n=10) R2router_Parse2Params 502.7n ± 2% 503.6n ± 2% ~ (p=0.725 n=10) Rivet_Parse2Params 225.4n ± 1% 220.3n ± 1% -2.28% (p=0.000 n=10) Tango_Parse2Params 798.8n ± 0% 795.5n ± 1% -0.41% (p=0.002 n=10) TigerTonic_Parse2Params 2.515µ ± 0% 2.508µ ± 0% -0.28% (p=0.027 n=10) Traffic_Parse2Params 3.064µ ± 1% 3.038µ ± 1% -0.86% (p=0.003 n=10) Vulcan_Parse2Params 551.6n ± 0% 552.0n ± 0% ~ (p=0.593 n=10) Ace_ParseAll 2.492µ ± 0% 2.473µ ± 0% -0.76% (p=0.000 n=10) Aero_ParseAll 1.485µ ± 0% 1.483µ ± 0% -0.10% (p=0.006 n=10) Bear_ParseAll 16.22µ ± 0% 16.10µ ± 0% -0.71% (p=0.000 n=10) Beego_ParseAll 21.53µ ± 1% 21.09µ ± 1% -2.04% (p=0.000 n=10) Bone_ParseAll 27.91µ ± 0% 27.98µ ± 0% ~ (p=0.066 n=10) Chi_ParseAll 14.89µ ± 1% 14.86µ ± 1% ~ (p=0.579 n=10) Denco_ParseAll 3.473µ ± 0% 3.494µ ± 0% +0.62% (p=0.000 n=10) Echo_ParseAll 2.926µ ± 0% 2.883µ ± 0% -1.47% (p=0.000 n=10) Gin_ParseAll 1.951µ ± 0% 1.910µ ± 0% -2.10% (p=0.000 n=10) GocraftWeb_ParseAll 22.04µ ± 1% 21.99µ ± 1% ~ (p=0.197 n=10) Goji_ParseAll 12.07µ ± 0% 12.03µ ± 1% ~ (p=0.255 n=10) Gojiv2_ParseAll 32.21µ ± 0% 32.22µ ± 1% ~ (p=0.739 n=10) GoJsonRest_ParseAll 28.65µ ± 0% 28.46µ ± 0% -0.69% (p=0.000 n=10) GoRestful_ParseAll 124.8µ ± 0% 123.9µ ± 1% -0.75% (p=0.003 n=10) GorillaMux_ParseAll 64.07µ ± 1% 63.71µ ± 1% -0.57% (p=0.002 n=10) GowwwRouter_ParseAll 6.664µ ± 1% 6.660µ ± 0% ~ (p=0.643 n=10) HttpRouter_ParseAll 1.254µ ± 0% 1.201µ ± 0% -4.27% (p=0.000 n=10) HttpTreeMux_ParseAll 9.072µ ± 0% 9.059µ ± 0% ~ (p=0.779 n=10) Kocha_ParseAll 5.670µ ± 0% 5.557µ ± 0% -1.99% (p=0.000 n=10) LARS_ParseAll 1.613µ ± 0% 1.663µ ± 0% +3.10% (p=0.000 n=10) Macaron_ParseAll 36.42µ ± 1% 36.59µ ± 0% ~ (p=0.105 n=10) Martini_ParseAll 107.0µ ± 0% 114.3µ ± 0% +6.81% (p=0.000 n=10) Pat_ParseAll 37.91µ ± 1% 37.88µ ± 0% ~ (p=0.247 n=10) Possum_ParseAll 15.71µ ± 0% 15.72µ ± 1% ~ (p=0.684 n=10) R2router_ParseAll 10.88µ ± 1% 10.94µ ± 1% +0.56% (p=0.023 n=10) Rivet_ParseAll 3.783µ ± 1% 3.787µ ± 0% ~ (p=0.435 n=10) Tango_ParseAll 20.87µ ± 0% 20.90µ ± 0% ~ (p=0.912 n=10) TigerTonic_ParseAll 38.46µ ± 1% 38.18µ ± 1% -0.72% (p=0.007 n=10) Traffic_ParseAll 78.06µ ± 1% 77.40µ ± 1% -0.85% (p=0.002 n=10) Vulcan_ParseAll 14.87µ ± 0% 14.87µ ± 0% ~ (p=0.927 n=10) Ace_StaticAll 17.74µ ± 0% 17.58µ ± 0% -0.92% (p=0.000 n=10) Aero_StaticAll 8.469µ ± 0% 8.595µ ± 0% +1.49% (p=0.000 n=10) HttpServeMux_StaticAll 20.78µ ± 0% 21.32µ ± 0% +2.56% (p=0.000 n=10) Beego_StaticAll 155.9µ ± 0% 154.4µ ± 1% -1.00% (p=0.005 n=10) Bear_StaticAll 65.69µ ± 1% 65.63µ ± 0% ~ (p=0.838 n=10) Bone_StaticAll 49.06µ ± 0% 48.66µ ± 0% -0.81% (p=0.000 n=10) Chi_StaticAll 90.32µ ± 1% 90.11µ ± 0% ~ (p=0.404 n=10) Denco_StaticAll 5.231µ ± 0% 5.126µ ± 1% -2.01% (p=0.000 n=10) Echo_StaticAll 25.38µ ± 0% 25.46µ ± 0% +0.34% (p=0.000 n=10) Gin_StaticAll 17.67µ ± 0% 17.71µ ± 0% +0.22% (p=0.015 n=10) GocraftWeb_StaticAll 94.03µ ± 0% 93.83µ ± 1% ~ (p=0.171 n=10) Goji_StaticAll 41.15µ ± 0% 41.22µ ± 0% +0.17% (p=0.000 n=10) Gojiv2_StaticAll 206.0µ ± 1% 202.9µ ± 1% -1.50% (p=0.000 n=10) GoJsonRest_StaticAll 154.8µ ± 0% 152.4µ ± 0% -1.54% (p=0.000 n=10) GoRestful_StaticAll 980.1µ ± 1% 978.1µ ± 1% -0.20% (p=0.043 n=10) GorillaMux_StaticAll 702.3µ ± 0% 701.8µ ± 0% ~ (p=0.739 n=10) GowwwRouter_StaticAll 16.03µ ± 0% 16.22µ ± 0% +1.17% (p=0.000 n=10) HttpRouter_StaticAll 10.64µ ± 0% 10.59µ ± 0% -0.49% (p=0.000 n=10) HttpTreeMux_StaticAll 10.65µ ± 0% 10.60µ ± 0% -0.49% (p=0.001 n=10) Kocha_StaticAll 12.12µ ± 0% 11.67µ ± 0% -3.65% (p=0.000 n=10) LARS_StaticAll 16.03µ ± 0% 16.81µ ± 0% +4.89% (p=0.000 n=10) Macaron_StaticAll 221.0µ ± 1% 223.2µ ± 1% +1.00% (p=0.001 n=10) Martini_StaticAll 1.326m ± 1% 1.362m ± 0% +2.76% (p=0.000 n=10) Pat_StaticAll 1.755m ± 1% 1.727m ± 0% -1.64% (p=0.000 n=10) Possum_StaticAll 96.27µ ± 0% 95.94µ ± 1% ~ (p=0.383 n=10) R2router_StaticAll 46.95µ ± 1% 48.05µ ± 1% +2.35% (p=0.000 n=10) Rivet_StaticAll 23.51µ ± 0% 23.46µ ± 2% -0.21% (p=0.022 n=10) Tango_StaticAll 154.8µ ± 1% 153.5µ ± 0% -0.85% (p=0.000 n=10) TigerTonic_StaticAll 38.31µ ± 1% 38.36µ ± 0% ~ (p=0.631 n=10) Traffic_StaticAll 1.719m ± 0% 1.707m ± 1% -0.72% (p=0.001 n=10) Vulcan_StaticAll 106.4µ ± 0% 106.4µ ± 0% ~ (p=0.280 n=10) geomean 1.522µ 1.524µ +0.13% ``` baseline vs sccp_v2 ``` goos: linux goarch: amd64 pkg: github.com/julienschmidt/go-http-routing-benchmark cpu: Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz │ old.log │ new2.log │ │ sec/op │ sec/op vs base │ Ace_Param 78.73n ± 1% 78.45n ± 2% ~ (p=0.751 n=10) Aero_Param 45.50n ± 0% 45.40n ± 0% -0.22% (p=0.000 n=10) Bear_Param 618.1n ± 1% 624.1n ± 1% +0.97% (p=0.004 n=10) Beego_Param 798.8n ± 1% 799.5n ± 1% ~ (p=0.424 n=10) Bone_Param 899.8n ± 1% 913.4n ± 1% +1.52% (p=0.000 n=10) Chi_Param 491.5n ± 1% 496.8n ± 0% +1.08% (p=0.000 n=10) Denco_Param 109.6n ± 1% 111.8n ± 1% +2.05% (p=0.000 n=10) Echo_Param 66.89n ± 4% 66.38n ± 2% ~ (p=0.218 n=10) Gin_Param 59.11n ± 0% 57.81n ± 2% -2.20% (p=0.006 n=10) GocraftWeb_Param 878.1n ± 1% 887.1n ± 1% +1.03% (p=0.007 n=10) Goji_Param 450.8n ± 1% 453.8n ± 1% ~ (p=0.055 n=10) Gojiv2_Param 1.131µ ± 0% 1.145µ ± 0% +1.24% (p=0.000 n=10) GoJsonRest_Param 1.062µ ± 1% 1.059µ ± 0% -0.24% (p=0.002 n=10) GoRestful_Param 3.590µ ± 0% 3.613µ ± 1% +0.63% (p=0.003 n=10) GorillaMux_Param 1.512µ ± 0% 1.524µ ± 2% +0.83% (p=0.001 n=10) GowwwRouter_Param 307.9n ± 1% 313.8n ± 1% +1.90% (p=0.000 n=10) HttpRouter_Param 42.08n ± 0% 39.29n ± 0% -6.63% (p=0.000 n=10) HttpTreeMux_Param 428.8n ± 0% 432.9n ± 1% +0.96% (p=0.000 n=10) Kocha_Param 222.6n ± 2% 222.2n ± 1% ~ (p=0.912 n=10) LARS_Param 50.02n ± 2% 51.28n ± 2% +2.54% (p=0.004 n=10) Macaron_Param 1.839µ ± 1% 1.845µ ± 1% ~ (p=0.342 n=10) Martini_Param 3.670µ ± 0% 3.982µ ± 1% +8.50% (p=0.000 n=10) Pat_Param 1.041µ ± 0% 1.051µ ± 0% +0.96% (p=0.000 n=10) Possum_Param 774.8n ± 1% 778.6n ± 1% ~ (p=0.165 n=10) R2router_Param 437.6n ± 1% 442.9n ± 0% +1.22% (p=0.000 n=10) Rivet_Param 129.1n ± 0% 126.8n ± 0% -1.78% (p=0.000 n=10) Tango_Param 703.5n ± 0% 705.4n ± 0% ~ (p=0.159 n=10) TigerTonic_Param 1.584µ ± 0% 1.593µ ± 1% ~ (p=0.182 n=10) Traffic_Param 2.632µ ± 0% 2.661µ ± 1% +1.06% (p=0.000 n=10) Vulcan_Param 390.1n ± 1% 390.0n ± 0% ~ (p=0.617 n=10) Ace_Param5 124.3n ± 1% 120.8n ± 0% -2.78% (p=0.000 n=10) Aero_Param5 65.62n ± 4% 65.94n ± 2% ~ (p=0.271 n=10) Bear_Param5 870.9n ± 1% 860.9n ± 1% -1.15% (p=0.001 n=10) Beego_Param5 993.9n ± 1% 980.0n ± 1% -1.39% (p=0.004 n=10) Bone_Param5 1.235µ ± 1% 1.245µ ± 0% +0.85% (p=0.000 n=10) Chi_Param5 716.8n ± 1% 719.9n ± 1% ~ (p=0.171 n=10) Denco_Param5 268.3n ± 1% 270.9n ± 0% +0.95% (p=0.001 n=10) Echo_Param5 168.6n ± 0% 166.8n ± 1% -1.07% (p=0.004 n=10) Gin_Param5 107.0n ± 1% 105.1n ± 3% ~ (p=0.109 n=10) GocraftWeb_Param5 1.425µ ± 0% 1.427µ ± 1% ~ (p=0.145 n=10) Goji_Param5 635.3n ± 0% 633.2n ± 0% ~ (p=0.078 n=10) Gojiv2_Param5 1.356µ ± 1% 1.361µ ± 1% ~ (p=0.306 n=10) GoJsonRest_Param5 2.007µ ± 0% 2.001µ ± 0% -0.30% (p=0.024 n=10) GoRestful_Param5 3.968µ ± 0% 3.970µ ± 1% ~ (p=0.956 n=10) GorillaMux_Param5 2.361µ ± 0% 2.359µ ± 0% ~ (p=0.195 n=10) GowwwRouter_Param5 386.1n ± 0% 384.1n ± 1% ~ (p=0.093 n=10) HttpRouter_Param5 85.30n ± 2% 83.54n ± 0% -2.05% (p=0.000 n=10) HttpTreeMux_Param5 1.000µ ± 0% 1.003µ ± 1% ~ (p=0.113 n=10) Kocha_Param5 868.8n ± 1% 866.7n ± 1% ~ (p=0.060 n=10) LARS_Param5 91.59n ± 0% 92.71n ± 1% +1.22% (p=0.000 n=10) Macaron_Param5 2.079µ ± 0% 2.080µ ± 0% ~ (p=0.489 n=10) Martini_Param5 4.302µ ± 1% 4.604µ ± 0% +7.01% (p=0.000 n=10) Pat_Param5 2.585µ ± 1% 2.583µ ± 0% ~ (p=0.670 n=10) Possum_Param5 775.9n ± 0% 775.2n ± 1% ~ (p=0.315 n=10) R2router_Param5 567.8n ± 1% 569.5n ± 1% ~ (p=0.075 n=10) Rivet_Param5 400.2n ± 1% 398.1n ± 1% ~ (p=0.085 n=10) Tango_Param5 866.1n ± 1% 859.2n ± 1% -0.79% (p=0.004 n=10) TigerTonic_Param5 5.319µ ± 0% 5.300µ ± 0% -0.35% (p=0.023 n=10) Traffic_Param5 4.222µ ± 0% 4.200µ ± 0% -0.52% (p=0.001 n=10) Vulcan_Param5 524.1n ± 1% 527.4n ± 0% +0.62% (p=0.049 n=10) Ace_Param20 289.9n ± 1% 286.2n ± 1% -1.28% (p=0.030 n=10) Aero_Param20 28.46n ± 0% 28.39n ± 0% -0.26% (p=0.000 n=10) Bear_Param20 2.635µ ± 1% 2.611µ ± 0% -0.91% (p=0.000 n=10) Beego_Param20 2.428µ ± 0% 2.426µ ± 0% ~ (p=0.114 n=10) Bone_Param20 3.344µ ± 1% 3.322µ ± 1% ~ (p=0.171 n=10) Chi_Param20 1.543µ ± 1% 1.551µ ± 1% +0.55% (p=0.041 n=10) Denco_Param20 911.0n ± 1% 913.1n ± 1% ~ (p=0.172 n=10) Echo_Param20 499.4n ± 0% 498.4n ± 0% ~ (p=0.781 n=10) Gin_Param20 269.2n ± 0% 267.8n ± 1% -0.54% (p=0.030 n=10) GocraftWeb_Param20 5.279µ ± 1% 5.187µ ± 1% -1.74% (p=0.000 n=10) Goji_Param20 1.983µ ± 1% 1.963µ ± 0% -0.98% (p=0.000 n=10) Gojiv2_Param20 1.819µ ± 0% 1.808µ ± 0% -0.60% (p=0.000 n=10) GoJsonRest_Param20 6.890µ ± 1% 6.869µ ± 1% ~ (p=0.093 n=10) GoRestful_Param20 8.066µ ± 1% 7.968µ ± 0% -1.22% (p=0.000 n=10) GorillaMux_Param20 5.520µ ± 1% 5.538µ ± 0% ~ (p=0.093 n=10) GowwwRouter_Param20 799.1n ± 2% 787.9n ± 2% -1.41% (p=0.001 n=10) HttpRouter_Param20 251.4n ± 1% 247.9n ± 1% -1.37% (p=0.004 n=10) HttpTreeMux_Param20 4.810µ ± 1% 4.792µ ± 1% ~ (p=0.093 n=10) Kocha_Param20 2.651µ ± 1% 2.643µ ± 1% ~ (p=0.617 n=10) LARS_Param20 244.8n ± 1% 246.0n ± 1% ~ (p=0.197 n=10) Macaron_Param20 5.386µ ± 0% 5.335µ ± 1% -0.96% (p=0.000 n=10) Martini_Param20 7.842µ ± 1% 8.139µ ± 1% +3.79% (p=0.000 n=10) Pat_Param20 11.31µ ± 1% 11.25µ ± 0% -0.56% (p=0.000 n=10) Possum_Param20 773.1n ± 1% 766.4n ± 1% -0.88% (p=0.001 n=10) R2router_Param20 3.230µ ± 1% 3.240µ ± 1% ~ (p=0.324 n=10) Rivet_Param20 1.543µ ± 0% 1.536µ ± 0% -0.42% (p=0.000 n=10) Tango_Param20 1.724µ ± 0% 1.717µ ± 0% ~ (p=0.092 n=10) TigerTonic_Param20 21.92µ ± 0% 21.78µ ± 0% -0.65% (p=0.000 n=10) Traffic_Param20 15.07µ ± 1% 15.11µ ± 1% ~ (p=0.971 n=10) Vulcan_Param20 981.9n ± 0% 982.3n ± 0% ~ (p=0.445 n=10) Ace_ParamWrite 153.2n ± 0% 151.7n ± 0% -0.98% (p=0.000 n=10) Aero_ParamWrite 71.80n ± 0% 67.67n ± 0% -5.77% (p=0.000 n=10) Bear_ParamWrite 658.6n ± 0% 658.4n ± 0% ~ (p=0.838 n=10) Beego_ParamWrite 854.8n ± 1% 839.7n ± 0% -1.76% (p=0.000 n=10) Bone_ParamWrite 925.0n ± 1% 938.0n ± 1% +1.41% (p=0.000 n=10) Chi_ParamWrite 544.0n ± 1% 543.6n ± 0% ~ (p=0.811 n=10) Denco_ParamWrite 139.1n ± 1% 138.0n ± 2% ~ (p=0.382 n=10) Echo_ParamWrite 148.5n ± 1% 139.1n ± 1% -6.30% (p=0.000 n=10) Gin_ParamWrite 101.80n ± 1% 99.72n ± 0% -2.04% (p=0.000 n=10) GocraftWeb_ParamWrite 969.5n ± 0% 962.0n ± 1% -0.77% (p=0.000 n=10) Goji_ParamWrite 489.7n ± 1% 489.9n ± 0% ~ (p=0.540 n=10) Gojiv2_ParamWrite 1.305µ ± 0% 1.302µ ± 0% ~ (p=0.268 n=10) GoJsonRest_ParamWrite 1.621µ ± 0% 1.612µ ± 0% -0.56% (p=0.001 n=10) GoRestful_ParamWrite 3.684µ ± 1% 3.647µ ± 1% -1.00% (p=0.011 n=10) GorillaMux_ParamWrite 1.575µ ± 0% 1.570µ ± 0% -0.32% (p=0.001 n=10) GowwwRouter_ParamWrite 979.5n ± 1% 978.8n ± 0% ~ (p=0.912 n=10) HttpRouter_ParamWrite 66.87n ± 0% 64.00n ± 0% -4.30% (p=0.000 n=10) HttpTreeMux_ParamWrite 453.3n ± 0% 449.8n ± 0% -0.78% (p=0.002 n=10) Kocha_ParamWrite 250.2n ± 2% 247.7n ± 1% -0.98% (p=0.007 n=10) LARS_ParamWrite 87.43n ± 1% 84.94n ± 1% -2.84% (p=0.000 n=10) Macaron_ParamWrite 2.131µ ± 0% 2.136µ ± 1% ~ (p=1.000 n=10) Martini_ParamWrite 4.147µ ± 0% 4.444µ ± 0% +7.16% (p=0.000 n=10) Pat_ParamWrite 1.611µ ± 0% 1.611µ ± 0% ~ (p=0.982 n=10) Possum_ParamWrite 773.0n ± 1% 764.2n ± 1% -1.13% (p=0.002 n=10) R2router_ParamWrite 490.2n ± 1% 482.4n ± 0% -1.61% (p=0.000 n=10) Rivet_ParamWrite 240.8n ± 0% 241.8n ± 0% +0.42% (p=0.005 n=10) Tango_ParamWrite 352.6n ± 1% 349.1n ± 0% -0.98% (p=0.001 n=10) TigerTonic_ParamWrite 2.270µ ± 0% 2.265µ ± 0% -0.24% (p=0.049 n=10) Traffic_ParamWrite 3.195µ ± 0% 3.139µ ± 1% -1.75% (p=0.000 n=10) Vulcan_ParamWrite 387.6n ± 1% 387.9n ± 1% ~ (p=0.616 n=10) Ace_GithubStatic 70.67n ± 6% 71.58n ± 0% +1.29% (p=0.022 n=10) Aero_GithubStatic 40.14n ± 0% 39.36n ± 0% -1.94% (p=0.000 n=10) Bear_GithubStatic 354.3n ± 0% 349.8n ± 2% -1.28% (p=0.000 n=10) Beego_GithubStatic 819.9n ± 1% 813.3n ± 1% -0.80% (p=0.000 n=10) Bone_GithubStatic 9.862µ ± 0% 9.889µ ± 0% +0.28% (p=0.029 n=10) Chi_GithubStatic 482.8n ± 1% 482.5n ± 1% ~ (p=0.868 n=10) Denco_GithubStatic 23.07n ± 0% 22.67n ± 0% -1.73% (p=0.000 n=10) Echo_GithubStatic 97.74n ± 0% 99.93n ± 0% +2.24% (p=0.000 n=10) Gin_GithubStatic 69.01n ± 1% 67.76n ± 0% -1.81% (p=0.000 n=10) GocraftWeb_GithubStatic 550.7n ± 0% 549.2n ± 0% ~ (p=0.196 n=10) Goji_GithubStatic 180.0n ± 0% 177.3n ± 0% -1.50% (p=0.000 n=10) Gojiv2_GithubStatic 1.110µ ± 0% 1.103µ ± 1% -0.59% (p=0.000 n=10) GoRestful_GithubStatic 7.372µ ± 1% 7.302µ ± 0% -0.94% (p=0.000 n=10) GoJsonRest_GithubStatic 850.9n ± 1% 836.4n ± 1% -1.70% (p=0.000 n=10) GorillaMux_GithubStatic 3.863µ ± 0% 3.872µ ± 0% +0.23% (p=0.005 n=10) GowwwRouter_GithubStatic 65.62n ± 0% 65.93n ± 0% +0.47% (p=0.000 n=10) HttpRouter_GithubStatic 37.39n ± 0% 37.18n ± 0% -0.55% (p=0.000 n=10) HttpTreeMux_GithubStatic 48.31n ± 0% 48.12n ± 0% -0.38% (p=0.000 n=10) Kocha_GithubStatic 40.75n ± 0% 47.31n ± 0% +16.10% (p=0.000 n=10) LARS_GithubStatic 63.60n ± 1% 64.80n ± 3% ~ (p=0.060 n=10) Macaron_GithubStatic 1.377µ ± 0% 1.376µ ± 0% ~ (p=0.750 n=10) Martini_GithubStatic 6.483µ ± 0% 6.796µ ± 0% +4.84% (p=0.000 n=10) Pat_GithubStatic 8.537µ ± 1% 8.315µ ± 0% -2.60% (p=0.000 n=10) Possum_GithubStatic 577.1n ± 1% 571.6n ± 1% -0.94% (p=0.003 n=10) R2router_GithubStatic 233.9n ± 0% 236.5n ± 0% +1.07% (p=0.000 n=10) Rivet_GithubStatic 81.53n ± 0% 80.13n ± 0% -1.72% (p=0.000 n=10) Tango_GithubStatic 849.4n ± 0% 846.5n ± 0% ~ (p=0.143 n=10) TigerTonic_GithubStatic 197.3n ± 0% 201.2n ± 0% +1.98% (p=0.000 n=10) Traffic_GithubStatic 8.654µ ± 1% 8.611µ ± 0% -0.50% (p=0.001 n=10) Vulcan_GithubStatic 579.8n ± 1% 577.1n ± 0% -0.46% (p=0.000 n=10) Ace_GithubParam 143.5n ± 1% 141.1n ± 0% -1.67% (p=0.000 n=10) Aero_GithubParam 91.52n ± 0% 94.07n ± 0% +2.79% (p=0.000 n=10) Bear_GithubParam 777.0n ± 0% 769.5n ± 1% -0.97% (p=0.001 n=10) Beego_GithubParam 939.4n ± 1% 934.3n ± 1% ~ (p=0.079 n=10) Bone_GithubParam 5.337µ ± 0% 5.261µ ± 0% -1.41% (p=0.000 n=10) Chi_GithubParam 692.6n ± 0% 692.0n ± 0% ~ (p=0.515 n=10) Denco_GithubParam 240.6n ± 0% 240.4n ± 1% ~ (p=0.869 n=10) Echo_GithubParam 178.3n ± 0% 179.1n ± 0% +0.45% (p=0.000 n=10) Gin_GithubParam 125.3n ± 0% 117.1n ± 0% -6.54% (p=0.000 n=10) GocraftWeb_GithubParam 1.085µ ± 0% 1.080µ ± 1% -0.46% (p=0.050 n=10) Goji_GithubParam 776.6n ± 1% 765.9n ± 0% -1.38% (p=0.000 n=10) Gojiv2_GithubParam 1.634µ ± 0% 1.628µ ± 1% -0.37% (p=0.040 n=10) GoJsonRest_GithubParam 1.493µ ± 0% 1.472µ ± 0% -1.37% (p=0.000 n=10) GoRestful_GithubParam 9.507µ ± 0% 9.499µ ± 0% ~ (p=0.926 n=10) GorillaMux_GithubParam 5.821µ ± 0% 5.787µ ± 0% -0.58% (p=0.000 n=10) GowwwRouter_GithubParam 396.8n ± 0% 402.4n ± 0% +1.44% (p=0.000 n=10) HttpRouter_GithubParam 102.70n ± 0% 99.36n ± 0% -3.25% (p=0.000 n=10) HttpTreeMux_GithubParam 658.0n ± 1% 656.7n ± 1% ~ (p=0.897 n=10) Kocha_GithubParam 446.9n ± 1% 452.8n ± 0% +1.31% (p=0.000 n=10) LARS_GithubParam 107.9n ± 1% 110.0n ± 0% +1.99% (p=0.000 n=10) Macaron_GithubParam 2.049µ ± 1% 2.038µ ± 0% ~ (p=0.060 n=10) Martini_GithubParam 8.170µ ± 0% 8.543µ ± 0% +4.55% (p=0.000 n=10) Pat_GithubParam 6.791µ ± 1% 6.862µ ± 1% ~ (p=0.101 n=10) Possum_GithubParam 786.8n ± 1% 778.2n ± 1% -1.09% (p=0.014 n=10) R2router_GithubParam 509.5n ± 1% 507.3n ± 2% ~ (p=0.239 n=10) Rivet_GithubParam 313.8n ± 1% 308.9n ± 0% -1.55% (p=0.000 n=10) Tango_GithubParam 981.3n ± 0% 970.5n ± 1% -1.10% (p=0.000 n=10) TigerTonic_GithubParam 2.501µ ± 0% 2.488µ ± 0% -0.50% (p=0.000 n=10) Traffic_GithubParam 7.520µ ± 0% 7.501µ ± 1% ~ (p=0.305 n=10) Vulcan_GithubParam 926.2n ± 1% 938.3n ± 0% +1.30% (p=0.000 n=10) Ace_GithubAll 29.14µ ± 0% 28.62µ ± 0% -1.76% (p=0.000 n=10) Aero_GithubAll 20.23µ ± 0% 19.65µ ± 0% -2.87% (p=0.000 n=10) Bear_GithubAll 164.7µ ± 0% 163.9µ ± 0% -0.47% (p=0.002 n=10) Beego_GithubAll 199.7µ ± 1% 198.1µ ± 0% -0.81% (p=0.000 n=10) Bone_GithubAll 2.204m ± 1% 2.191m ± 0% -0.62% (p=0.000 n=10) Chi_GithubAll 145.4µ ± 0% 145.0µ ± 0% -0.24% (p=0.000 n=10) Denco_GithubAll 48.80µ ± 0% 49.03µ ± 0% +0.46% (p=0.005 n=10) Echo_GithubAll 38.63µ ± 0% 38.74µ ± 0% +0.30% (p=0.002 n=10) Gin_GithubAll 25.94µ ± 0% 25.49µ ± 0% -1.72% (p=0.000 n=10) GocraftWeb_GithubAll 226.6µ ± 0% 225.1µ ± 0% -0.65% (p=0.011 n=10) Goji_GithubAll 360.0µ ± 0% 361.0µ ± 0% +0.30% (p=0.001 n=10) Gojiv2_GithubAll 539.5µ ± 1% 545.5µ ± 0% +1.11% (p=0.000 n=10) GoJsonRest_GithubAll 299.4µ ± 0% 296.8µ ± 0% -0.85% (p=0.002 n=10) GoRestful_GithubAll 1.760m ± 1% 1.765m ± 0% ~ (p=0.247 n=10) GorillaMux_GithubAll 2.745m ± 1% 2.726m ± 1% -0.69% (p=0.003 n=10) GowwwRouter_GithubAll 79.18µ ± 1% 79.78µ ± 0% +0.76% (p=0.009 n=10) HttpRouter_GithubAll 20.40µ ± 0% 20.08µ ± 0% -1.57% (p=0.000 n=10) HttpTreeMux_GithubAll 122.4µ ± 1% 120.9µ ± 0% -1.24% (p=0.000 n=10) Kocha_GithubAll 93.18µ ± 1% 92.06µ ± 1% -1.19% (p=0.000 n=10) LARS_GithubAll 22.19µ ± 0% 23.09µ ± 0% +4.05% (p=0.000 n=10) Macaron_GithubAll 288.8µ ± 1% 285.5µ ± 1% -1.13% (p=0.000 n=10) Martini_GithubAll 2.983m ± 0% 3.046m ± 0% +2.14% (p=0.000 n=10) Pat_GithubAll 3.212m ± 0% 3.180m ± 0% -0.98% (p=0.000 n=10) Possum_GithubAll 124.2µ ± 0% 123.3µ ± 0% -0.73% (p=0.000 n=10) R2router_GithubAll 109.2µ ± 0% 108.4µ ± 0% -0.77% (p=0.001 n=10) Rivet_GithubAll 64.97µ ± 1% 64.93µ ± 0% ~ (p=0.912 n=10) Tango_GithubAll 205.8µ ± 0% 203.6µ ± 0% -1.08% (p=0.000 n=10) TigerTonic_GithubAll 506.6µ ± 1% 505.6µ ± 1% ~ (p=0.315 n=10) Traffic_GithubAll 2.628m ± 1% 2.623m ± 1% ~ (p=0.280 n=10) Vulcan_GithubAll 158.5µ ± 0% 157.5µ ± 0% -0.63% (p=0.000 n=10) Ace_GPlusStatic 54.17n ± 0% 54.66n ± 0% +0.91% (p=0.000 n=10) Aero_GPlusStatic 31.36n ± 0% 31.24n ± 0% -0.38% (p=0.000 n=10) Bear_GPlusStatic 276.4n ± 0% 274.1n ± 1% -0.83% (p=0.002 n=10) Beego_GPlusStatic 737.4n ± 0% 733.9n ± 1% -0.49% (p=0.007 n=10) Bone_GPlusStatic 149.7n ± 0% 149.4n ± 0% ~ (p=0.395 n=10) Chi_GPlusStatic 443.3n ± 1% 445.6n ± 0% +0.53% (p=0.050 n=10) Denco_GPlusStatic 17.45n ± 0% 19.01n ± 0% +8.94% (p=0.000 n=10) Echo_GPlusStatic 62.58n ± 1% 63.09n ± 0% +0.81% (p=0.022 n=10) Gin_GPlusStatic 54.36n ± 1% 53.06n ± 0% -2.38% (p=0.000 n=10) GocraftWeb_GPlusStatic 500.0n ± 1% 497.4n ± 0% -0.52% (p=0.000 n=10) Goji_GPlusStatic 123.7n ± 0% 124.8n ± 0% +0.89% (p=0.000 n=10) Gojiv2_GPlusStatic 1.036µ ± 1% 1.034µ ± 1% ~ (p=0.253 n=10) GoJsonRest_GPlusStatic 719.9n ± 1% 696.6n ± 1% -3.23% (p=0.000 n=10) GoRestful_GPlusStatic 3.462µ ± 1% 3.447µ ± 1% ~ (p=0.184 n=10) GorillaMux_GPlusStatic 1.029µ ± 0% 1.034µ ± 0% +0.44% (p=0.000 n=10) GowwwRouter_GPlusStatic 24.53n ± 0% 24.48n ± 0% -0.18% (p=0.001 n=10) HttpRouter_GPlusStatic 21.18n ± 0% 21.21n ± 0% ~ (p=0.071 n=10) HttpTreeMux_GPlusStatic 30.80n ± 0% 30.76n ± 0% -0.11% (p=0.002 n=10) Kocha_GPlusStatic 27.50n ± 0% 27.47n ± 0% ~ (p=0.748 n=10) LARS_GPlusStatic 48.70n ± 1% 47.24n ± 1% -2.99% (p=0.000 n=10) Macaron_GPlusStatic 1.378µ ± 1% 1.372µ ± 0% -0.44% (p=0.005 n=10) Martini_GPlusStatic 3.286µ ± 0% 3.514µ ± 0% +6.97% (p=0.000 n=10) Pat_GPlusStatic 240.3n ± 0% 231.9n ± 1% -3.49% (p=0.000 n=10) Possum_GPlusStatic 573.8n ± 1% 572.0n ± 1% ~ (p=0.105 n=10) R2router_GPlusStatic 205.8n ± 0% 209.2n ± 0% +1.68% (p=0.000 n=10) Rivet_GPlusStatic 50.21n ± 0% 45.44n ± 0% -9.49% (p=0.000 n=10) Tango_GPlusStatic 630.2n ± 0% 631.2n ± 0% ~ (p=0.065 n=10) TigerTonic_GPlusStatic 128.0n ± 0% 128.5n ± 0% +0.39% (p=0.000 n=10) Traffic_GPlusStatic 1.601µ ± 1% 1.592µ ± 0% -0.56% (p=0.015 n=10) Vulcan_GPlusStatic 348.9n ± 0% 350.4n ± 0% +0.43% (p=0.003 n=10) Ace_GPlusParam 105.0n ± 0% 106.8n ± 0% +1.71% (p=0.000 n=10) Aero_GPlusParam 64.23n ± 1% 64.98n ± 4% ~ (p=0.481 n=10) Bear_GPlusParam 626.5n ± 1% 624.2n ± 1% -0.37% (p=0.005 n=10) Beego_GPlusParam 848.4n ± 1% 843.1n ± 1% -0.61% (p=0.011 n=10) Bone_GPlusParam 988.8n ± 1% 989.5n ± 1% ~ (p=0.342 n=10) Chi_GPlusParam 544.9n ± 0% 544.5n ± 1% ~ (p=0.739 n=10) Denco_GPlusParam 155.2n ± 1% 159.9n ± 0% +3.03% (p=0.000 n=10) Echo_GPlusParam 95.56n ± 0% 94.95n ± 0% -0.63% (p=0.000 n=10) Gin_GPlusParam 85.82n ± 0% 84.99n ± 0% -0.96% (p=0.000 n=10) GocraftWeb_GPlusParam 876.0n ± 1% 874.9n ± 1% ~ (p=0.247 n=10) Goji_GPlusParam 507.7n ± 0% 508.4n ± 0% +0.14% (p=0.014 n=10) Gojiv2_GPlusParam 1.263µ ± 0% 1.266µ ± 0% +0.24% (p=0.004 n=10) GoJsonRest_GPlusParam 1.158µ ± 0% 1.137µ ± 0% -1.86% (p=0.000 n=10) GoRestful_GPlusParam 3.879µ ± 1% 3.869µ ± 1% ~ (p=0.565 n=10) GorillaMux_GPlusParam 2.131µ ± 0% 2.118µ ± 0% -0.61% (p=0.006 n=10) GowwwRouter_GPlusParam 324.9n ± 1% 327.1n ± 1% +0.66% (p=0.037 n=10) HttpRouter_GPlusParam 68.80n ± 1% 65.70n ± 1% -4.50% (p=0.000 n=10) HttpTreeMux_GPlusParam 447.6n ± 1% 449.5n ± 1% +0.42% (p=0.045 n=10) Kocha_GPlusParam 254.7n ± 0% 249.0n ± 0% -2.24% (p=0.000 n=10) LARS_GPlusParam 68.36n ± 1% 77.36n ± 1% +13.17% (p=0.000 n=10) Macaron_GPlusParam 1.941µ ± 0% 1.920µ ± 0% -1.08% (p=0.000 n=10) Martini_GPlusParam 3.941µ ± 0% 4.263µ ± 0% +8.17% (p=0.000 n=10) Pat_GPlusParam 1.263µ ± 0% 1.274µ ± 0% +0.87% (p=0.000 n=10) Possum_GPlusParam 795.2n ± 1% 782.3n ± 1% -1.62% (p=0.000 n=10) R2router_GPlusParam 441.3n ± 0% 442.2n ± 1% ~ (p=0.183 n=10) Rivet_GPlusParam 159.5n ± 0% 160.1n ± 1% ~ (p=0.126 n=10) Tango_GPlusParam 785.2n ± 1% 790.1n ± 1% ~ (p=0.078 n=10) TigerTonic_GPlusParam 1.734µ ± 0% 1.732µ ± 0% ~ (p=0.445 n=10) Traffic_GPlusParam 2.950µ ± 1% 2.927µ ± 1% -0.80% (p=0.015 n=10) Vulcan_GPlusParam 512.3n ± 1% 516.0n ± 1% +0.73% (p=0.003 n=10) Ace_GPlus2Params 129.7n ± 0% 129.3n ± 1% ~ (p=0.082 n=10) Aero_GPlus2Params 90.69n ± 0% 90.61n ± 0% -0.10% (p=0.014 n=10) Bear_GPlus2Params 744.5n ± 1% 737.7n ± 1% -0.91% (p=0.001 n=10) Beego_GPlus2Params 953.2n ± 1% 949.3n ± 1% ~ (p=0.093 n=10) Bone_GPlus2Params 2.533µ ± 0% 2.500µ ± 0% -1.30% (p=0.000 n=10) Chi_GPlus2Params 612.6n ± 0% 613.5n ± 0% ~ (p=0.196 n=10) Denco_GPlus2Params 206.7n ± 0% 210.4n ± 0% +1.79% (p=0.000 n=10) Echo_GPlus2Params 146.1n ± 0% 147.0n ± 0% +0.58% (p=0.000 n=10) Gin_GPlus2Params 107.5n ± 0% 107.2n ± 0% -0.28% (p=0.000 n=10) GocraftWeb_GPlus2Params 1.072µ ± 1% 1.070µ ± 1% ~ (p=0.208 n=10) Goji_GPlus2Params 770.9n ± 1% 776.4n ± 1% +0.71% (p=0.007 n=10) Gojiv2_GPlus2Params 1.718µ ± 0% 1.731µ ± 1% +0.79% (p=0.000 n=10) GoJsonRest_GPlus2Params 1.476µ ± 1% 1.421µ ± 0% -3.76% (p=0.000 n=10) GoRestful_GPlus2Params 4.196µ ± 1% 4.178µ ± 1% -0.42% (p=0.030 n=10) GorillaMux_GPlus2Params 4.487µ ± 0% 4.449µ ± 0% -0.84% (p=0.000 n=10) GowwwRouter_GPlus2Params 366.2n ± 1% 364.1n ± 0% ~ (p=0.085 n=10) HttpRouter_GPlus2Params 89.83n ± 2% 87.71n ± 2% -2.35% (p=0.000 n=10) HttpTreeMux_GPlus2Params 640.4n ± 1% 640.1n ± 0% ~ (p=0.645 n=10) Kocha_GPlus2Params 452.1n ± 0% 440.3n ± 1% -2.61% (p=0.000 n=10) LARS_GPlus2Params 88.11n ± 1% 98.48n ± 0% +11.78% (p=0.000 n=10) Macaron_GPlus2Params 2.070µ ± 1% 2.055µ ± 0% -0.72% (p=0.001 n=10) Martini_GPlus2Params 7.864µ ± 0% 8.198µ ± 0% +4.25% (p=0.000 n=10) Pat_GPlus2Params 4.838µ ± 0% 4.812µ ± 1% ~ (p=0.051 n=10) Possum_GPlus2Params 781.5n ± 1% 783.4n ± 1% ~ (p=0.325 n=10) R2router_GPlus2Params 504.3n ± 1% 507.6n ± 1% ~ (p=1.000 n=10) Rivet_GPlus2Params 254.5n ± 0% 252.0n ± 0% -1.00% (p=0.000 n=10) Tango_GPlus2Params 850.4n ± 1% 848.6n ± 2% ~ (p=0.912 n=10) TigerTonic_GPlus2Params 2.600µ ± 1% 2.593µ ± 0% ~ (p=0.270 n=10) Traffic_GPlus2Params 6.145µ ± 0% 6.189µ ± 1% +0.71% (p=0.009 n=10) Vulcan_GPlus2Params 807.9n ± 0% 809.9n ± 1% +0.24% (p=0.041 n=10) Ace_GPlusAll 1.392µ ± 0% 1.363µ ± 0% -2.08% (p=0.000 n=10) Aero_GPlusAll 934.6n ± 0% 943.1n ± 0% +0.91% (p=0.000 n=10) Bear_GPlusAll 8.724µ ± 1% 8.658µ ± 0% -0.75% (p=0.027 n=10) Beego_GPlusAll 11.54µ ± 1% 11.43µ ± 0% -0.93% (p=0.000 n=10) Bone_GPlusAll 22.60µ ± 0% 22.53µ ± 0% -0.29% (p=0.004 n=10) Chi_GPlusAll 7.799µ ± 1% 7.790µ ± 1% ~ (p=0.172 n=10) Denco_GPlusAll 2.315µ ± 0% 2.369µ ± 0% +2.31% (p=0.000 n=10) Echo_GPlusAll 1.626µ ± 0% 1.615µ ± 0% -0.68% (p=0.000 n=10) Gin_GPlusAll 1.120µ ± 0% 1.086µ ± 0% -2.99% (p=0.000 n=10) GocraftWeb_GPlusAll 12.33µ ± 2% 12.35µ ± 0% ~ (p=0.954 n=10) Goji_GPlusAll 7.165µ ± 0% 7.139µ ± 0% -0.37% (p=0.030 n=10) Gojiv2_GPlusAll 18.03µ ± 0% 18.05µ ± 0% ~ (p=0.190 n=10) GoJsonRest_GPlusAll 16.27µ ± 0% 16.14µ ± 0% -0.80% (p=0.000 n=10) GoRestful_GPlusAll 53.36…
This PR (HEAD: 90fc02d) has been imported to Gerrit for code review. Please visit https://go-review.googlesource.com/c/go/+/483875 to see it. Tip: You can toggle comments from me using the |
Message from Yi Yang: Patch Set 15: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Keith Randall: Patch Set 16: Code-Review+2 Run-TryBot+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Gopher Robot: Patch Set 16: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Gopher Robot: Patch Set 16: TryBot-Result+1 (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Michael Pratt: Patch Set 16: Code-Review+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Keith Randall: Patch Set 16: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
Message from Yi Yang: Patch Set 16: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/483875. |
This PR is being closed because golang.org/cl/483875 has been merged. |
sparse conditional constant propagation can discover optimization opportunities that cannot be found by just combining constant folding and constant propagation and dead code elimination separately. Updates #59399 Change-Id: Ia954e906480654a6f0cc065d75b5912f96f36b2e GitHub-Last-Rev: 90fc02d GitHub-Pull-Request: #59575 Reviewed-on: https://go-review.googlesource.com/c/go/+/483875 Reviewed-by: Keith Randall <[email protected]> Reviewed-by: Keith Randall <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Michael Pratt <[email protected]> Run-TryBot: Keith Randall <[email protected]>
sparse conditional constant propagation can discover optimization opportunities that cannot be found by just combining constant folding and constant propagation and dead code elimination separately.
Updates #59399