[GHC] #10069: CPR related performance issue

GHC ghc-devs at haskell.org
Tue Nov 27 02:06:52 UTC 2018


#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


More information about the ghc-tickets mailing list