1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
-- Reported by sjcjoosten in T10547, this was taking forever because of a bug in
-- the implementation. See bottom of the file for some notes.
module Test where
type T12 = T11
type T11 = T10
type T10 = T9
type T9 = T8
type T8 = T7
type T7 = T6
type T6 = T5
type T5 = T4
type T4 = T3
type T3 = T2
type T2 = T1
type T1 = T0
type T0 = Int
type S12 = S11
type S11 = S10
type S10 = S9
type S9 = S8
type S8 = S7
type S7 = S6
type S6 = S5
type S5 = S4
type S4 = S3
type S3 = S2
type S2 = S1
type S1 = S0
type S0 = Int
test :: (T12, Char) -> (S12, Bool) -> Int
test a b = const 1 (f a b)
f :: (a, b) -> (a, b) -> (a, b)
f a _ = a
-- 5416fad, before the fix:
--
-- 16,990,408,080 bytes allocated in the heap
-- 49,762,144 bytes copied during GC
-- 4,295,384 bytes maximum residency (5 sample(s))
-- 186,272 bytes maximum slop
-- 12 MB total memory in use (0 MB lost due to fragmentation)
--
-- Tot time (elapsed) Avg pause Max pause
-- Gen 0 26929 colls, 0 par 0.779s 0.779s 0.0000s 0.0009s
-- Gen 1 5 colls, 0 par 0.040s 0.040s 0.0080s 0.0099s
--
-- 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.001s ( 0.001s elapsed)
-- MUT time 3.409s ( 3.409s elapsed)
-- GC time 0.819s ( 0.819s elapsed)
-- EXIT time 0.008s ( 0.012s elapsed)
-- Total time 4.256s ( 4.240s elapsed)
--
-- Alloc rate 4,984,597,832 bytes per MUT second
--
-- Productivity 80.7% of total user, 81.1% of total elapsed
--
-- After the fix:
--
-- 39,165,544 bytes allocated in the heap
-- 19,516,400 bytes copied during GC
-- 4,460,568 bytes maximum residency (5 sample(s))
-- 244,640 bytes maximum slop
-- 11 MB total memory in use (0 MB lost due to fragmentation)
--
-- Tot time (elapsed) Avg pause Max pause
-- Gen 0 44 colls, 0 par 0.009s 0.009s 0.0002s 0.0007s
-- Gen 1 5 colls, 0 par 0.040s 0.040s 0.0080s 0.0099s
--
-- 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.001s ( 0.001s elapsed)
-- MUT time 0.009s ( 0.009s elapsed)
-- GC time 0.049s ( 0.049s elapsed)
-- EXIT time 0.008s ( 0.012s elapsed)
-- Total time 0.096s ( 0.070s elapsed)
--
-- Alloc rate 4,570,081,011 bytes per MUT second
--
-- Productivity 48.2% of total user, 65.9% of total elapsed
|