-
Notifications
You must be signed in to change notification settings - Fork 4
Closed
Description
The gcc branch gives us ./example/gcc.dhall, which is used to build GCC. This has 3 dependencies - GMP, MPFR and MPC. However, just evaluating gcc.dhall takes minutes:
time ./bin/dhall +RTS -s <<< ./examples/gcc.dhall
285,234,734,472 bytes allocated in the heap
2,149,148,384 bytes copied during GC
8,560,952 bytes maximum residency (89 sample(s))
341,888 bytes maximum slop
26 MB total memory in use (0 MB lost due to fragmentation)
Tot time (elapsed) Avg pause Max pause
Gen 0 274811 colls, 0 par 4.488s 4.463s 0.0000s 0.0004s
Gen 1 89 colls, 0 par 0.559s 0.559s 0.0063s 0.0123s
INIT time 0.000s ( 0.000s elapsed)
MUT time 92.299s ( 92.484s elapsed)
GC time 5.047s ( 5.022s elapsed)
EXIT time 0.000s ( 0.000s elapsed)
Total time 97.346s ( 97.507s elapsed)
%GC time 5.2% (5.2% elapsed)
Alloc rate 3,090,343,422 bytes per MUT second
Productivity 94.8% of total user, 94.8% of total elapsed
./bin/dhall +RTS -s <<< ./examples/gcc.dhall 96.82s user 0.54s system 99% cpu 1:37.51 total
Applying dhall freeze everywhere actually makes things worse:
find ./examples -name '*.dhall' -exec ./bin/dhall freeze --inplace '{}' ';'
time ./bin/dhall +RTS -s <<< ./examples/gcc.dhall
343,492,628,992 bytes allocated in the heap
2,511,808,920 bytes copied during GC
9,187,192 bytes maximum residency (94 sample(s))
46,576 bytes maximum slop
28 MB total memory in use (0 MB lost due to fragmentation)
Tot time (elapsed) Avg pause Max pause
Gen 0 330961 colls, 0 par 5.495s 5.461s 0.0000s 0.0008s
Gen 1 94 colls, 0 par 0.520s 0.521s 0.0055s 0.0137s
INIT time 0.000s ( 0.000s elapsed)
MUT time 113.356s (113.629s elapsed)
GC time 6.015s ( 5.982s elapsed)
EXIT time 0.000s ( 0.000s elapsed)
Total time 119.372s (119.611s elapsed)
%GC time 5.0% (5.0% elapsed)
Alloc rate 3,030,198,903 bytes per MUT second
Productivity 95.0% of total user, 95.0% of total elapsed
./bin/dhall +RTS -s <<< ./examples/gcc.dhall 118.75s user 0.63s system 99% cpu 1:59.62 total
Metadata
Metadata
Assignees
Labels
No labels