Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information