[GHC] #9961: compile-time performance regression compiling genprimcode

GHC ghc-devs at haskell.org
Tue Jan 6 14:02:30 UTC 2015


#9961: compile-time performance regression compiling genprimcode
-------------------------------------+-------------------------------------
        Reporter:  hvr               |                   Owner:  simonpj
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:  7.10.1
       Component:  Compiler          |                 Version:  7.10.1-rc1
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by simonpj):

 I can't reproduce this with HEAD.  I used this command line, from the root
 directory, which I took from a build log
 {{{
 ghc -hisuf hi -osuf  o -hcsuf hc -static  -H32m -O -Werror -Wall -H64m  -i
 -iutils/genprimopcode/. -iutils/genprimopcode/dist/build
 -iutils/genprimopcode/dist/build/autogen -Iutils/genprimopcode/dist/build
 -Iutils/genprimopcode/dist/build/autogen       -package array  -no-user-
 package-db -rtsopts      -odir utils/genprimopcode/dist/build -hidir
 utils/genprimopcode/dist/build -stubdir utils/genprimopcode/dist/build
 --make utils/genprimopcode/Main.hs -fforce-recomp +RTS -s
 }}}
 With HEAD I get
 {{{
    4,189,727,416 bytes allocated in the heap
      525,871,120 bytes copied during GC
       43,253,816 bytes maximum residency (12 sample(s))
        1,758,368 bytes maximum slop
              116 MB total memory in use (0 MB lost due to fragmentation)

                                      Tot time (elapsed)  Avg pause  Max
 pause
   Gen  0       600 colls,     0 par    1.824s   1.823s     0.0030s
 0.0271s
   Gen  1        12 colls,     0 par    0.811s   0.811s     0.0676s
 0.1351s

   TASKS: 4 (1 bound, 3 peak workers (3 total), using -N1)

   SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

   INIT    time    0.002s  (  0.001s elapsed)
   MUT     time    6.997s  (  7.946s elapsed)
   GC      time    2.635s  (  2.635s elapsed)
   EXIT    time    0.038s  (  0.037s elapsed)
   Total   time    9.711s  ( 10.619s elapsed)
 }}}
 With ghc 7.8 I get
 {{{
    3,874,936,096 bytes allocated in the heap
      416,943,272 bytes copied during GC
       44,518,152 bytes maximum residency (10 sample(s))
        1,549,168 bytes maximum slop
              115 MB total memory in use (0 MB lost due to fragmentation)

                                     Tot time (elapsed)  Avg pause  Max
 pause
   Gen  0       396 colls,     0 par    1.21s    1.25s     0.0032s
 0.0207s
   Gen  1        10 colls,     0 par    0.57s    0.65s     0.0654s
 0.1421s

   TASKS: 4 (1 bound, 3 peak workers (3 total), using -N1)

   SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

   INIT    time    0.00s  (  0.00s elapsed)
   MUT     time    5.63s  (  6.59s elapsed)
   GC      time    1.78s  (  1.91s elapsed)
   EXIT    time    0.03s  (  0.04s elapsed)
   Total   time    7.46s  (  8.54s elapsed)
 }}}
 They may not be quite comparable (e.g. my HEAD libraries are built with
 -O, but I think my installed GHC probably has libraries built with -O2).
 But HEAD is not way out of line.

 I suppose I can now try building the 7.10 branch.

 Meanwhile, would someone try with `-dshow-passes` (which displays
 intermediate sizes)?

 Simon

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


More information about the ghc-tickets mailing list