
#10069: CPR related performance issue -------------------------------------+------------------------------------- Reporter: pacak | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.1-rc2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Fuuzetsu): I ran with multiple GHC versions. I'm attaching a tarball with the results above and Core from each version. It appears the problem went way briefly in 8.0.2 but came back worse than ever afterwards. For exact package sets, I used these: {{{ resolver: lts-6.35 # 7.10.3 resolver: lts-9.21 # 8.0.2 resolver: lts-11.22 # 8.2.2 resolver: lts-12.20 # 8.4.4 resolver: nightly-2018-11-24 # 8.6.2 }}} GHC version 7.10.3 {{{ benchmarking single call/A time 9.800 ns (9.730 ns .. 9.890 ns) 1.000 R² (0.999 R² .. 1.000 R²) mean 9.907 ns (9.844 ns .. 9.996 ns) std dev 250.2 ps (167.4 ps .. 344.7 ps) variance introduced by outliers: 42% (moderately inflated) benchmarking single call/B time 10.09 ns (10.00 ns .. 10.20 ns) 0.999 R² (0.999 R² .. 0.999 R²) mean 10.37 ns (10.25 ns .. 10.49 ns) std dev 403.4 ps (353.8 ps .. 475.9 ps) variance introduced by outliers: 63% (severely inflated) }}} GHC version 8.0.2 {{{ benchmarking single call/A time 9.794 ns (9.695 ns .. 9.914 ns) 0.999 R² (0.999 R² .. 1.000 R²) mean 9.884 ns (9.805 ns .. 10.01 ns) std dev 308.2 ps (211.6 ps .. 449.5 ps) variance introduced by outliers: 52% (severely inflated) benchmarking single call/B time 9.861 ns (9.784 ns .. 9.946 ns) 1.000 R² (0.999 R² .. 1.000 R²) mean 9.834 ns (9.799 ns .. 9.879 ns) std dev 133.3 ps (92.41 ps .. 201.6 ps) variance introduced by outliers: 17% (moderately inflated) }}} GHC version 8.2.2 {{{ benchmarking single call/A time 22.82 ns (22.59 ns .. 23.16 ns) 0.999 R² (0.997 R² .. 1.000 R²) mean 22.83 ns (22.60 ns .. 23.15 ns) std dev 890.2 ps (655.8 ps .. 1.268 ns) variance introduced by outliers: 62% (severely inflated) benchmarking single call/B time 10.10 ns (10.06 ns .. 10.15 ns) 1.000 R² (1.000 R² .. 1.000 R²) mean 10.11 ns (10.08 ns .. 10.15 ns) std dev 120.7 ps (72.17 ps .. 184.5 ps) variance introduced by outliers: 14% (moderately inflated) }}} GHC version 8.4.4 {{{ benchmarking single call/A time 21.51 ns (21.33 ns .. 21.72 ns) 0.999 R² (0.999 R² .. 1.000 R²) mean 21.55 ns (21.35 ns .. 22.21 ns) std dev 1.128 ns (374.2 ps .. 2.297 ns) variance introduced by outliers: 75% (severely inflated) benchmarking single call/B time 9.505 ns (9.449 ns .. 9.568 ns) 1.000 R² (0.999 R² .. 1.000 R²) mean 9.509 ns (9.454 ns .. 9.570 ns) std dev 197.7 ps (159.3 ps .. 243.1 ps) variance introduced by outliers: 33% (moderately inflated) }}} GHC version 8.6.2 {{{ benchmarking single call/A time 21.71 ns (21.44 ns .. 22.06 ns) 0.998 R² (0.998 R² .. 0.999 R²) mean 21.93 ns (21.70 ns .. 22.24 ns) std dev 884.3 ps (721.8 ps .. 1.228 ns) variance introduced by outliers: 64% (severely inflated) benchmarking single call/B time 10.28 ns (10.20 ns .. 10.40 ns) 0.999 R² (0.999 R² .. 1.000 R²) mean 10.31 ns (10.24 ns .. 10.41 ns) std dev 286.9 ps (224.3 ps .. 372.6 ps) variance introduced by outliers: 46% (moderately inflated) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10069#comment:27 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler