[GHC] #13025: Type family reduction irregularity (change from 7.10.3 to 8.0.1)

GHC ghc-devs at haskell.org
Fri Dec 23 00:45:00 UTC 2016


#13025: Type family reduction irregularity (change from 7.10.3 to 8.0.1)
-------------------------------------+-------------------------------------
        Reporter:  acowley           |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:  TypeFamilies
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 acowley):

 All the benchmarks in that suite should result in similar times. The idea
 is that it tests different representations and ways of accessing fields of
 records. The times you have there look somewhat suspicious to me. Here are
 my results,

 With GHC-8.0.1,
 {{{
 benchmarking flat
 time                 6.851 μs   (6.658 μs .. 7.040 μs)
                      0.995 R²   (0.993 R² .. 0.996 R²)
 mean                 6.912 μs   (6.757 μs .. 7.093 μs)
 std dev              577.7 ns   (480.4 ns .. 799.9 ns)
 variance introduced by outliers: 82% (severely inflated)

 benchmarking vinyl
 time                 7.081 μs   (6.912 μs .. 7.240 μs)
                      0.995 R²   (0.992 R² .. 0.997 R²)
 mean                 7.116 μs   (6.970 μs .. 7.308 μs)
 std dev              555.6 ns   (437.9 ns .. 710.6 ns)
 variance introduced by outliers: 80% (severely inflated)

 benchmarking vinyl-lens
 time                 17.55 μs   (17.15 μs .. 18.01 μs)
                      0.995 R²   (0.994 R² .. 0.997 R²)
 mean                 17.84 μs   (17.42 μs .. 18.47 μs)
 std dev              1.709 μs   (1.244 μs .. 2.326 μs)
 variance introduced by outliers: 84% (severely inflated)

 benchmarking reasonable
 time                 7.250 μs   (7.069 μs .. 7.403 μs)
                      0.996 R²   (0.994 R² .. 0.997 R²)
 mean                 7.070 μs   (6.931 μs .. 7.245 μs)
 std dev              502.5 ns   (428.5 ns .. 586.9 ns)
 variance introduced by outliers: 77% (severely inflated)
 }}}

 While with GHC-7.10.3, I get,
 {{{
 benchmarking flat
 time                 7.107 μs   (6.964 μs .. 7.265 μs)
                      0.995 R²   (0.993 R² .. 0.997 R²)
 mean                 7.241 μs   (7.087 μs .. 7.431 μs)
 std dev              592.3 ns   (498.5 ns .. 754.0 ns)
 variance introduced by outliers: 82% (severely inflated)

 benchmarking vinyl
 time                 7.426 μs   (7.295 μs .. 7.586 μs)
                      0.995 R²   (0.993 R² .. 0.997 R²)
 mean                 7.404 μs   (7.230 μs .. 7.612 μs)
 std dev              648.7 ns   (530.0 ns .. 800.1 ns)
 variance introduced by outliers: 83% (severely inflated)

 benchmarking vinyl-lens
 time                 7.256 μs   (7.097 μs .. 7.414 μs)
                      0.995 R²   (0.992 R² .. 0.998 R²)
 mean                 7.281 μs   (7.119 μs .. 7.418 μs)
 std dev              507.4 ns   (410.6 ns .. 651.8 ns)
 variance introduced by outliers: 76% (severely inflated)

 benchmarking reasonable
 time                 7.231 μs   (7.055 μs .. 7.385 μs)
                      0.995 R²   (0.993 R² .. 0.997 R²)
 mean                 7.221 μs   (7.069 μs .. 7.388 μs)
 std dev              540.9 ns   (453.3 ns .. 635.3 ns)
 variance introduced by outliers: 79% (severely inflated)
 }}}

 The `vinyl-lens` time going from 7.2 μs to 17.84 μs is representative of
 what I referred to as a 2x slowdown. This is on a 1.3 GHz Intel Core i5.
 It doesn't seem likely that you are running on that much of a slower CPU,
 but it is possible.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13025#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list