[GHC] #8990: Performance tests behave differently depending on presence of .hi file (even with -fforce-recomp)

GHC ghc-devs at haskell.org
Sat Apr 12 11:00:26 UTC 2014


#8990: Performance tests behave differently depending on presence of .hi file
(even with -fforce-recomp)
------------------------------------+-------------------------------------
       Reporter:  ezyang            |             Owner:
           Type:  bug               |            Status:  new
       Priority:  normal            |         Milestone:
      Component:  Test Suite        |           Version:  7.9
       Keywords:                    |  Operating System:  Unknown/Multiple
   Architecture:  Unknown/Multiple  |   Type of failure:  None/Unknown
     Difficulty:  Unknown           |         Test Case:
     Blocked By:                    |          Blocking:
Related Tickets:                    |
------------------------------------+-------------------------------------
 Example:

 {{{
 [ezyang at hs01 compiler]$ cat T6048.comp.stats
 /home/hs01/ezyang/ghc-compalloc/inplace/lib/bin/ghc-stage2
 -B/home/hs01/ezyang/ghc-compalloc/inplace/lib -fforce-recomp -dno-debug-
 output -no-user-package-db -rtsopts -fno-ghci-history -c T6048.hs -O -fasm
 +RTS -V0 -tT6048.comp.stats --machine-readable
  [("bytes allocated", "119871672")
  ,("num_GCs", "100")
  ,("average_bytes_used", "4388904")
  ,("max_bytes_used", "12539576")
  ,("num_byte_usage_samples", "7")
  ,("peak_megabytes_allocated", "27")
  ,("init_cpu_seconds", "0.00")
  ,("init_wall_seconds", "0.00")
  ,("mutator_cpu_seconds", "0.09")
  ,("mutator_wall_seconds", "0.10")
  ,("GC_cpu_seconds", "0.15")
  ,("GC_wall_seconds", "0.15")
  ]
 [ezyang at hs01 compiler]$ rm T6048.hi
 [ezyang at hs01 compiler]$ '/home/hs01/ezyang/ghc-compalloc/inplace/bin/ghc-
 stage2' -fforce-recomp -dno-debug-output -no-user-package-db -rtsopts
 -fno-ghci-history -c T6048.hs -O -fasm  +RTS -V0 -tT6048.comp.stats
 --machine-readable -RTS
 [ezyang at hs01 compiler]$ cat T6048.comp.stats
 /home/hs01/ezyang/ghc-compalloc/inplace/lib/bin/ghc-stage2
 -B/home/hs01/ezyang/ghc-compalloc/inplace/lib -fforce-recomp -dno-debug-
 output -no-user-package-db -rtsopts -fno-ghci-history -c T6048.hs -O -fasm
 +RTS -V0 -tT6048.comp.stats --machine-readable
  [("bytes allocated", "121022912")
  ,("num_GCs", "100")
  ,("average_bytes_used", "4022069")
  ,("max_bytes_used", "11224944")
  ,("num_byte_usage_samples", "7")
  ,("peak_megabytes_allocated", "25")
  ,("init_cpu_seconds", "0.00")
  ,("init_wall_seconds", "0.00")
  ,("mutator_cpu_seconds", "0.09")
  ,("mutator_wall_seconds", "0.11")
  ,("GC_cpu_seconds", "0.15")
  ,("GC_wall_seconds", "0.14")
  ]
 }}}

 It's a slight but present difference: I noticed because one of the perf
 tests was failing on an initial run of the test suite, but passing when I
 re-ran it.

 There are two possible bugs here. One is that our implementation of
 `-fforce-recomp` is buggy and we shouldn't be reading in the hi file at
 all if `-fforce-recomp` is on; the other is that we should always clean up
 interface files before running one of these perf tests.

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


More information about the ghc-tickets mailing list