Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
GHC
GHC
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,269
    • Issues 4,269
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 413
    • Merge Requests 413
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #19209

Closed
Open
Opened Jan 12, 2021 by Ben Gamari@bgamari🐢Maintainer

Hadrian's no-op builds are too slow

Currently a no-op build in Hadrian takes over 10 seconds. This is just too long and breaks flow. We'll need to do some profiling to work out why it's so slow

$ hadrian/build-cabal -j9 --freeze1 +RTS -s
Up to date
shakeArgsWith                        0.000s    0%                           
Function shake                       0.005s    0%                           
Database read                        0.806s    7%  =                        
With database                        0.050s    0%                           
Running rules                       10.427s   92%  =========================
Pool finished (4736 threads, 9 max)  0.003s    0%                           
Cleanup                              0.000s    0%                           
Total                               11.291s  100%                           
Build completed in 11.29s

  11,476,621,240 bytes allocated in the heap
   1,567,958,232 bytes copied during GC
     288,505,080 bytes maximum residency (13 sample(s))
       3,859,208 bytes maximum slop
             275 MB total memory in use (0 MB lost due to fragmentation)

                                     Tot time (elapsed)  Avg pause  Max pause
  Gen  0      3608 colls,     0 par    1.765s   1.759s     0.0005s    0.0033s
  Gen  1        13 colls,     0 par    0.658s   0.657s     0.0505s    0.1761s

  TASKS: 29 (1 bound, 28 peak workers (28 total), using -N9)

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

  INIT    time    0.000s  (  0.000s elapsed)
  MUT     time   18.328s  (  8.894s elapsed)
  GC      time    2.423s  (  2.416s elapsed)
  EXIT    time    0.002s  (  0.009s elapsed)
  Total   time   20.753s  ( 11.320s elapsed)

  Alloc rate    626,164,097 bytes per MUT second

  Productivity  88.3% of total user, 78.6% of total elapsed
Assignee
Assign to
Make removal
Milestone
Make removal (Past due)
Assign milestone
Time tracking
None
Due date
None
Reference: ghc/ghc#19209