Bug 1085727 (part 2) - Remove dmd.py's -b option and make its behaviour the default. r=mccr8.
☠☠ backed out by 98212d4e6b61 ☠ ☠
authorNicholas Nethercote <nnethercote@mozilla.com>
Mon, 20 Oct 2014 17:45:45 -0700
changeset 212056 2cfce41bed5ca701a67df28f3da8c58bdcd355b4
parent 212055 450c187cbc1bb6f9b9c92096ef56f63a7d1cafc8
child 212057 1bb832d0c539504880135e1f8c6c9c86ebd27dd0
push id27697
push usercbook@mozilla.com
push dateFri, 24 Oct 2014 13:48:53 +0000
treeherdermozilla-central@de805196bbc4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmccr8
bugs1085727
milestone36.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1085727 (part 2) - Remove dmd.py's -b option and make its behaviour the default. r=mccr8.
memory/replace/dmd/dmd.py
memory/replace/dmd/test/full-heap-sampled-expected.txt
memory/replace/dmd/test/full-heap-unsampled1-expected.txt
memory/replace/dmd/test/full-heap-unsampled2-expected.txt
memory/replace/dmd/test/full-reports-sampled-expected.txt
memory/replace/dmd/test/full-reports-unsampled1-expected.txt
memory/replace/dmd/test/full-reports-unsampled2-expected.txt
memory/replace/dmd/test/script-diff-basic-expected.txt
memory/replace/dmd/test/script-diff-options-expected.txt
memory/replace/dmd/test/script-max-frames-1-expected.txt
memory/replace/dmd/test/script-max-frames-3-expected.txt
memory/replace/dmd/test/script-show-all-block-sizes-expected.txt
memory/replace/dmd/test/script-show-all-block-sizes.json
memory/replace/dmd/test/script-sort-by-req-expected.txt
memory/replace/dmd/test/script-sort-by-slop-expected.txt
memory/replace/dmd/test/script-sort-by-usable-expected.txt
memory/replace/dmd/test/test_dmd.js
memory/replace/dmd/test/xpcshell.ini
--- a/memory/replace/dmd/dmd.py
+++ b/memory/replace/dmd/dmd.py
@@ -72,17 +72,17 @@ class Record(object):
         self.reportedAtDescs = []
         self.usableSizes = collections.defaultdict(int)
 
     def isZero(self, args):
         return self.numBlocks == 0 and \
                self.reqSize == 0 and \
                self.slopSize == 0 and \
                self.usableSize == 0 and \
-               (not args.show_all_block_sizes or len(self.usableSizes) == 0)
+               len(self.usableSizes) == 0
 
     def negate(self):
         self.numBlocks = -self.numBlocks
         self.reqSize = -self.reqSize
         self.slopSize = -self.slopSize
         self.usableSize = -self.usableSize
 
         negatedUsableSizes = collections.defaultdict(int)
@@ -190,19 +190,16 @@ variable is used to find breakpad symbol
 
     p.add_argument('-s', '--sort-by', choices=sortByChoices.keys(),
                    default=sortByChoices.keys()[0],
                    help='sort the records by a particular metric')
 
     p.add_argument('-a', '--ignore-alloc-fns', action='store_true',
                    help='ignore allocation functions at the start of traces')
 
-    p.add_argument('-b', '--show-all-block-sizes', action='store_true',
-                   help='show individual block sizes for each record')
-
     p.add_argument('--no-fix-stacks', action='store_true',
                    help='do not fix stacks')
 
     p.add_argument('--filter-stacks-for-testing', action='store_true',
                    help='filter stack traces; only useful for testing purposes')
 
     p.add_argument('input_file',
                    help='a file produced by DMD')
@@ -554,48 +551,50 @@ def printDigest(args, digest):
             out(RecordKind + ' {')
             out('  {:} block{:} in heap block record {:,d} of {:,d}'.
                 format(number(record.numBlocks, isSampled),
                        plural(record.numBlocks), i, numRecords))
             out('  {:} bytes ({:} requested / {:} slop)'.
                 format(number(record.usableSize, isSampled),
                        number(record.reqSize, isSampled),
                        number(record.slopSize, isSampled)))
-            out('  {:4.2f}% of the heap ({:4.2f}% cumulative)'.
-                format(perc(record.usableSize, heapUsableSize),
-                       perc(kindCumulativeUsableSize, heapUsableSize)))
-            if args.ignore_reports:
-                pass
-            else:
-                out('  {:4.2f}% of {:} ({:4.2f}% cumulative)'.
-                    format(perc(record.usableSize, kindUsableSize),
-                           recordKind,
-                           perc(kindCumulativeUsableSize, kindUsableSize)))
 
-            if args.show_all_block_sizes:
-                abscmp = lambda ((usableSize1, _1a), _1b), \
-                                ((usableSize2, _2a), _2b): \
-                                cmp(abs(usableSize1), abs(usableSize2))
-                usableSizes = sorted(record.usableSizes.items(), cmp=abscmp,
-                                     reverse=True)
+            abscmp = lambda ((usableSize1, _1a), _1b), \
+                            ((usableSize2, _2a), _2b): \
+                            cmp(abs(usableSize1), abs(usableSize2))
+            usableSizes = sorted(record.usableSizes.items(), cmp=abscmp,
+                                 reverse=True)
 
+            hasSingleBlock = len(usableSizes) == 1 and usableSizes[0][1] == 1
+
+            if not hasSingleBlock:
                 out('  Individual block sizes: ', end='')
                 if len(usableSizes) == 0:
                     out('(no change)', end='')
                 else:
                     isFirst = True
                     for (usableSize, isSampled), count in usableSizes:
                         if not isFirst:
                             out('; ', end='')
                         out('{:}'.format(number(usableSize, isSampled)), end='')
                         if count > 1:
                             out(' x {:,d}'.format(count), end='')
                         isFirst = False
                 out()
 
+            out('  {:4.2f}% of the heap ({:4.2f}% cumulative)'.
+                format(perc(record.usableSize, heapUsableSize),
+                       perc(kindCumulativeUsableSize, heapUsableSize)))
+            if args.ignore_reports:
+                pass
+            else:
+                out('  {:4.2f}% of {:} ({:4.2f}% cumulative)'.
+                    format(perc(record.usableSize, kindUsableSize),
+                           recordKind,
+                           perc(kindCumulativeUsableSize, kindUsableSize)))
             out('  Allocated at {')
             printStack(record.allocatedAtDesc)
             out('  }')
             if args.ignore_reports:
                 pass
             else:
                 for n, reportedAtDesc in enumerate(record.reportedAtDescs):
                     again = 'again ' if n > 0 else ''
--- a/memory/replace/dmd/test/full-heap-sampled-expected.txt
+++ b/memory/replace/dmd/test/full-heap-sampled-expected.txt
@@ -5,16 +5,17 @@ Invocation {
   Sample-below size = 128
 }
 
 #-----------------------------------------------------------------
 
 Live {
   ~4 blocks in heap block record 1 of 7
   ~512 bytes (~512 requested / ~0 slop)
+  Individual block sizes: ~128 x 3; 128
   35.96% of the heap (35.96% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   1 block in heap block record 2 of 7
--- a/memory/replace/dmd/test/full-heap-unsampled1-expected.txt
+++ b/memory/replace/dmd/test/full-heap-unsampled1-expected.txt
@@ -23,34 +23,37 @@ Live {
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   9 blocks in heap block record 3 of 12
   1,008 bytes (900 requested / 108 slop)
+  Individual block sizes: 112 x 9
   8.34% of the heap (84.58% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   6 blocks in heap block record 4 of 12
   528 bytes (528 requested / 0 slop)
+  Individual block sizes: 128; 112; 96; 80; 64; 48
   4.37% of the heap (88.95% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   6 blocks in heap block record 5 of 12
   528 bytes (528 requested / 0 slop)
+  Individual block sizes: 128; 112; 96; 80; 64; 48
   4.37% of the heap (93.32% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   1 block in heap block record 6 of 12
--- a/memory/replace/dmd/test/full-heap-unsampled2-expected.txt
+++ b/memory/replace/dmd/test/full-heap-unsampled2-expected.txt
@@ -5,34 +5,37 @@ Invocation {
   Sample-below size = 1
 }
 
 #-----------------------------------------------------------------
 
 Live {
   9 blocks in heap block record 1 of 9
   1,008 bytes (900 requested / 108 slop)
+  Individual block sizes: 112 x 9
   35.49% of the heap (35.49% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   6 blocks in heap block record 2 of 9
   528 bytes (528 requested / 0 slop)
+  Individual block sizes: 128; 112; 96; 80; 64; 48
   18.59% of the heap (54.08% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   6 blocks in heap block record 3 of 9
   528 bytes (528 requested / 0 slop)
+  Individual block sizes: 128; 112; 96; 80; 64; 48
   18.59% of the heap (72.68% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Live {
   1 block in heap block record 4 of 9
--- a/memory/replace/dmd/test/full-reports-sampled-expected.txt
+++ b/memory/replace/dmd/test/full-reports-sampled-expected.txt
@@ -9,16 +9,17 @@ Invocation {
 
 # no twice-reported heap blocks
 
 #-----------------------------------------------------------------
 
 Unreported {
   ~4 blocks in heap block record 1 of 7
   ~512 bytes (~512 requested / ~0 slop)
+  Individual block sizes: ~128 x 3; 128
   35.96% of the heap (35.96% cumulative)
   35.96% of unreported (35.96% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Unreported {
--- a/memory/replace/dmd/test/full-reports-unsampled1-expected.txt
+++ b/memory/replace/dmd/test/full-reports-unsampled1-expected.txt
@@ -71,36 +71,39 @@ Twice-reported {
   }
 }
 
 #-----------------------------------------------------------------
 
 Unreported {
   9 blocks in heap block record 1 of 3
   1,008 bytes (900 requested / 108 slop)
+  Individual block sizes: 112 x 9
   8.34% of the heap (8.34% cumulative)
   81.82% of unreported (81.82% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Unreported {
   2 blocks in heap block record 2 of 3
   112 bytes (112 requested / 0 slop)
+  Individual block sizes: 64; 48
   0.93% of the heap (9.27% cumulative)
   9.09% of unreported (90.91% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Unreported {
   2 blocks in heap block record 3 of 3
   112 bytes (112 requested / 0 slop)
+  Individual block sizes: 64; 48
   0.93% of the heap (10.19% cumulative)
   9.09% of unreported (100.00% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 #-----------------------------------------------------------------
@@ -142,29 +145,31 @@ Once-reported {
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   2 blocks in heap block record 4 of 11
   240 bytes (240 requested / 0 slop)
+  Individual block sizes: 128; 112
   1.99% of the heap (82.46% cumulative)
   2.27% of once-reported (94.18% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
 }
 
 Once-reported {
   2 blocks in heap block record 5 of 11
   240 bytes (240 requested / 0 slop)
+  Individual block sizes: 128; 112
   1.99% of the heap (84.45% cumulative)
   2.27% of once-reported (96.45% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
   Reported at {
     #01: ... DMD.cpp ...
   }
--- a/memory/replace/dmd/test/full-reports-unsampled2-expected.txt
+++ b/memory/replace/dmd/test/full-reports-unsampled2-expected.txt
@@ -39,36 +39,39 @@ Twice-reported {
   }
 }
 
 #-----------------------------------------------------------------
 
 Unreported {
   9 blocks in heap block record 1 of 3
   1,008 bytes (900 requested / 108 slop)
+  Individual block sizes: 112 x 9
   35.49% of the heap (35.49% cumulative)
   48.84% of unreported (48.84% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Unreported {
   6 blocks in heap block record 2 of 3
   528 bytes (528 requested / 0 slop)
+  Individual block sizes: 128; 112; 96; 80; 64; 48
   18.59% of the heap (54.08% cumulative)
   25.58% of unreported (74.42% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 Unreported {
   6 blocks in heap block record 3 of 3
   528 bytes (528 requested / 0 slop)
+  Individual block sizes: 128; 112; 96; 80; 64; 48
   18.59% of the heap (72.68% cumulative)
   25.58% of unreported (100.00% cumulative)
   Allocated at {
     #01: ... DMD.cpp ...
   }
 }
 
 #-----------------------------------------------------------------
--- a/memory/replace/dmd/test/script-diff-basic-expected.txt
+++ b/memory/replace/dmd/test/script-diff-basic-expected.txt
@@ -10,76 +10,93 @@ Invocation 2 {
   Sample-below size = 63
 }
 
 #-----------------------------------------------------------------
 
 Twice-reported {
   ~-1 blocks in heap block record 1 of 1
   ~-1,088 bytes (~-1,064 requested / ~-24 slop)
+  Individual block sizes: -1,024; ~-127; ~63
   15.46% of the heap (15.46% cumulative)
   100.00% of twice-reported (100.00% cumulative)
   Allocated at {
     #01: F (F.cpp:99)
   }
   Reported at {
     #01: R1 (R1.cpp:99)
   }
   Reported again at {
     #01: R2 (R2.cpp:99)
   }
 }
 
 #-----------------------------------------------------------------
 
 Unreported {
-  4 blocks in heap block record 1 of 4
+  4 blocks in heap block record 1 of 5
   16,384 bytes (16,384 requested / 0 slop)
+  Individual block sizes: 4,096 x 4
   -232.76% of the heap (-232.76% cumulative)
   371.01% of unreported (371.01% cumulative)
   Allocated at {
     #01: E (E.cpp:99)
   }
 }
 
 Unreported {
-  ~7 blocks in heap block record 2 of 4
+  ~7 blocks in heap block record 2 of 5
   ~-11,968 bytes (~-12,016 requested / ~48 slop)
+  Individual block sizes: -15,360; 2,048; 512 x 2; 128; ~-127; 64 x 4; ~63
   170.02% of the heap (-62.74% cumulative)
   -271.01% of unreported (100.00% cumulative)
   Allocated at {
     #01: F (F.cpp:99)
   }
 }
 
 Unreported {
-  0 blocks in heap block record 3 of 4
+  0 blocks in heap block record 3 of 5
   0 bytes (-384 requested / 384 slop)
+  Individual block sizes: (no change)
   -0.00% of the heap (-62.74% cumulative)
   0.00% of unreported (100.00% cumulative)
   Allocated at {
     #01: C (C.cpp:99)
   }
 }
 
 Unreported {
-  -2 blocks in heap block record 4 of 4
+  -2 blocks in heap block record 4 of 5
   0 bytes (0 requested / 0 slop)
+  Individual block sizes: 8,192 x 2; -4,096 x 4
   -0.00% of the heap (-62.74% cumulative)
   0.00% of unreported (100.00% cumulative)
   Allocated at {
     #01: B (B.cpp:99)
   }
 }
 
+Unreported {
+  0 blocks in heap block record 5 of 5
+  0 bytes (0 requested / 0 slop)
+  Individual block sizes: 20,480; -16,384; -8,192; 4,096
+  -0.00% of the heap (-62.74% cumulative)
+  0.00% of unreported (100.00% cumulative)
+  Allocated at {
+    #01: G (G.cpp:99)
+  }
+}
+
 #-----------------------------------------------------------------
 
 Once-reported {
   -3 blocks in heap block record 1 of 2
   -10,240 bytes (-10,192 requested / -48 slop)
+  Individual block sizes: -4,096 x 2; -2,048
   145.48% of the heap (145.48% cumulative)
   98.77% of once-reported (98.77% cumulative)
   Allocated at {
     #01: D (D.cpp:99)
   }
   Reported at {
     #01: R1 (R1.cpp:99)
   }
--- a/memory/replace/dmd/test/script-diff-options-expected.txt
+++ b/memory/replace/dmd/test/script-diff-options-expected.txt
@@ -10,68 +10,68 @@ Invocation 2 {
   Sample-below size = 63
 }
 
 #-----------------------------------------------------------------
 
 Live {
   4 blocks in heap block record 1 of 6
   16,384 bytes (16,384 requested / 0 slop)
+  Individual block sizes: 4,096 x 4
   -232.76% of the heap (-232.76% cumulative)
-  Individual block sizes: 4,096 x 4
   Allocated at {
     #01: E (E.cpp:99)
   }
 }
 
 Live {
   ~5 blocks in heap block record 2 of 6
   ~-13,183 bytes (~-13,231 requested / ~48 slop)
+  Individual block sizes: -15,360; 2,048; -1,024; 512 x 2; 128; ~-127 x 3; 64 x 4; ~63 x 2
   187.29% of the heap (-45.48% cumulative)
-  Individual block sizes: -15,360; 2,048; -1,024; 512 x 2; 128; ~-127 x 3; 64 x 4; ~63 x 2
   Allocated at {
     #01: F (F.cpp:99)
   }
 }
 
 Live {
   -3 blocks in heap block record 3 of 6
   -10,240 bytes (-10,192 requested / -48 slop)
+  Individual block sizes: -4,096 x 2; -2,048
   145.48% of the heap (100.00% cumulative)
-  Individual block sizes: -4,096 x 2; -2,048
   Allocated at {
     #01: D (D.cpp:99)
   }
 }
 
 Live {
   0 blocks in heap block record 4 of 6
   0 bytes (-384 requested / 384 slop)
+  Individual block sizes: (no change)
   -0.00% of the heap (100.00% cumulative)
-  Individual block sizes: (no change)
   Allocated at {
     #01: C (C.cpp:99)
   }
 }
 
 Live {
   0 blocks in heap block record 5 of 6
   0 bytes (0 requested / 0 slop)
+  Individual block sizes: 20,480; -16,384; -8,192; 4,096
   -0.00% of the heap (100.00% cumulative)
-  Individual block sizes: 20,480; -16,384; -8,192; 4,096
   Allocated at {
     #01: G (G.cpp:99)
   }
 }
 
 Live {
   -2 blocks in heap block record 6 of 6
   0 bytes (0 requested / 0 slop)
+  Individual block sizes: 8,192 x 2; -4,096 x 4
   -0.00% of the heap (100.00% cumulative)
-  Individual block sizes: 8,192 x 2; -4,096 x 4
   Allocated at {
     #01: B (B.cpp:99)
   }
 }
 
 #-----------------------------------------------------------------
 
 Summary {
--- a/memory/replace/dmd/test/script-max-frames-1-expected.txt
+++ b/memory/replace/dmd/test/script-max-frames-1-expected.txt
@@ -5,16 +5,17 @@ Invocation {
   Sample-below size = 1
 }
 
 #-----------------------------------------------------------------
 
 Live {
   4 blocks in heap block record 1 of 1
   4,416 bytes (4,404 requested / 12 slop)
+  Individual block sizes: 4,096; 128; 112; 80
   100.00% of the heap (100.00% cumulative)
   Allocated at {
     #01: E (E.cpp:99)
   }
 }
 
 #-----------------------------------------------------------------
 
--- a/memory/replace/dmd/test/script-max-frames-3-expected.txt
+++ b/memory/replace/dmd/test/script-max-frames-3-expected.txt
@@ -5,16 +5,17 @@ Invocation {
   Sample-below size = 1
 }
 
 #-----------------------------------------------------------------
 
 Live {
   2 blocks in heap block record 1 of 3
   4,224 bytes (4,224 requested / 0 slop)
+  Individual block sizes: 4,096; 128
   95.65% of the heap (95.65% cumulative)
   Allocated at {
     #01: E (E.cpp:99)
     #02: F (F.cpp:99)
     #03: G (G.cpp:99)
   }
 }
 
deleted file mode 100644
--- a/memory/replace/dmd/test/script-show-all-block-sizes-expected.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-#-----------------------------------------------------------------
-
-Invocation {
-  $DMD = '1'
-  Sample-below size = 4093
-}
-
-#-----------------------------------------------------------------
-
-Live {
-  ~15 blocks in heap block record 1 of 1
-  ~1,343,470 bytes (~1,342,313 requested / ~1,157 slop)
-  100.00% of the heap (100.00% cumulative)
-  Individual block sizes: 1,048,576; 65,536 x 3; 40,960; 8,192 x 4; ~4,093 x 6
-  Allocated at {
-    #01: A (A.cpp:99)
-  }
-}
-
-#-----------------------------------------------------------------
-
-Summary {
-  Total: ~1,343,470 bytes in ~15 blocks
-}
-
deleted file mode 100644
--- a/memory/replace/dmd/test/script-show-all-block-sizes.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "version": 1,
- "invocation": {
-  "dmdEnvVar": "1",
-  "sampleBelowSize": 4093
- },
- "blockList": [
-  {"req": 1048576, "alloc": "A"},
-
-  {"req": 65536,            "alloc": "A"},
-  {"req": 65535, "slop": 1, "alloc": "A"},
-  {"req": 65534, "slop": 2, "alloc": "A"},
-
-  {"req": 40000, "slop": 960, "alloc": "A"},
-
-  {"req": 8192,              "alloc": "A"},
-  {"req": 8192,              "alloc": "A"},
-  {"req": 8190, "slop":   2, "alloc": "A"},
-  {"req": 8000, "slop": 192, "alloc": "A"},
-
-  {"alloc": "A"},
-  {"alloc": "A"},
-  {"alloc": "A"},
-  {"alloc": "A"},
-  {"alloc": "A"},
-  {"alloc": "A"}
- ],
- "traceTable": {
-  "A": ["AA"]
- },
- "frameTable": {
-  "AA": "#00: A (A.cpp:99)"
- }
-}
-
--- a/memory/replace/dmd/test/script-sort-by-req-expected.txt
+++ b/memory/replace/dmd/test/script-sort-by-req-expected.txt
@@ -5,34 +5,37 @@ Invocation {
   Sample-below size = 1
 }
 
 #-----------------------------------------------------------------
 
 Live {
   5 blocks in heap block record 1 of 3
   16,392 bytes (16,392 requested / 0 slop)
+  Individual block sizes: 4,096 x 4; 8
   33.33% of the heap (33.33% cumulative)
   Allocated at {
     #01: A (A.cpp:99)
   }
 }
 
 Live {
   5 blocks in heap block record 2 of 3
   16,400 bytes (12,016 requested / 4,384 slop)
+  Individual block sizes: 4,096 x 4; 16
   33.35% of the heap (66.68% cumulative)
   Allocated at {
     #01: B (B.cpp:99)
   }
 }
 
 Live {
   4 blocks in heap block record 3 of 3
   16,384 bytes (8,196 requested / 8,188 slop)
+  Individual block sizes: 4,096 x 4
   33.32% of the heap (100.00% cumulative)
   Allocated at {
     #01: C (C.cpp:99)
   }
 }
 
 #-----------------------------------------------------------------
 
--- a/memory/replace/dmd/test/script-sort-by-slop-expected.txt
+++ b/memory/replace/dmd/test/script-sort-by-slop-expected.txt
@@ -5,34 +5,37 @@ Invocation {
   Sample-below size = 1
 }
 
 #-----------------------------------------------------------------
 
 Live {
   4 blocks in heap block record 1 of 3
   16,384 bytes (8,196 requested / 8,188 slop)
+  Individual block sizes: 4,096 x 4
   33.32% of the heap (33.32% cumulative)
   Allocated at {
     #01: C (C.cpp:99)
   }
 }
 
 Live {
   5 blocks in heap block record 2 of 3
   16,400 bytes (12,016 requested / 4,384 slop)
+  Individual block sizes: 4,096 x 4; 16
   33.35% of the heap (66.67% cumulative)
   Allocated at {
     #01: B (B.cpp:99)
   }
 }
 
 Live {
   5 blocks in heap block record 3 of 3
   16,392 bytes (16,392 requested / 0 slop)
+  Individual block sizes: 4,096 x 4; 8
   33.33% of the heap (100.00% cumulative)
   Allocated at {
     #01: A (A.cpp:99)
   }
 }
 
 #-----------------------------------------------------------------
 
--- a/memory/replace/dmd/test/script-sort-by-usable-expected.txt
+++ b/memory/replace/dmd/test/script-sort-by-usable-expected.txt
@@ -5,34 +5,37 @@ Invocation {
   Sample-below size = 1
 }
 
 #-----------------------------------------------------------------
 
 Live {
   5 blocks in heap block record 1 of 3
   16,400 bytes (12,016 requested / 4,384 slop)
+  Individual block sizes: 4,096 x 4; 16
   33.35% of the heap (33.35% cumulative)
   Allocated at {
     #01: B (B.cpp:99)
   }
 }
 
 Live {
   5 blocks in heap block record 2 of 3
   16,392 bytes (16,392 requested / 0 slop)
+  Individual block sizes: 4,096 x 4; 8
   33.33% of the heap (66.68% cumulative)
   Allocated at {
     #01: A (A.cpp:99)
   }
 }
 
 Live {
   4 blocks in heap block record 3 of 3
   16,384 bytes (8,196 requested / 8,188 slop)
+  Individual block sizes: 4,096 x 4
   33.32% of the heap (100.00% cumulative)
   Allocated at {
     #01: C (C.cpp:99)
   }
 }
 
 #-----------------------------------------------------------------
 
--- a/memory/replace/dmd/test/test_dmd.js
+++ b/memory/replace/dmd/test/test_dmd.js
@@ -166,25 +166,18 @@ function run_test() {
        ["--ignore-reports", "--sort-by=slop", jsonFile.path]);
 
   // This file has several real stack traces taken from Firefox execution, each
   // of which tests a different allocator function (or functions).
   jsonFile = FileUtils.getFile("CurWorkD", ["script-ignore-alloc-fns.json"]);
   test("script-ignore-alloc-fns",
        ["--ignore-reports", "--ignore-alloc-fns", jsonFile.path]);
 
-  // This file has numerous allocations of different sizes, some repeated, some
-  // sampled, that all end up in the same record.
-  jsonFile = FileUtils.getFile("CurWorkD", ["script-show-all-block-sizes.json"]);
-  test("script-show-all-block-sizes",
-       ["--ignore-reports", "--show-all-block-sizes", jsonFile.path]);
-
   // This tests diffs. The first invocation has no options, the second has
   // several.
   jsonFile  = FileUtils.getFile("CurWorkD", ["script-diff1.json"]);
   jsonFile2 = FileUtils.getFile("CurWorkD", ["script-diff2.json"]);
   test("script-diff-basic",
        [jsonFile.path, jsonFile2.path]);
   test("script-diff-options",
-       ["--ignore-reports", "--show-all-block-sizes",
-        jsonFile.path, jsonFile2.path]);
+       ["--ignore-reports", jsonFile.path, jsonFile2.path]);
 }
 
--- a/memory/replace/dmd/test/xpcshell.ini
+++ b/memory/replace/dmd/test/xpcshell.ini
@@ -13,18 +13,16 @@ support-files =
   script-max-frames-3-expected.txt
   script-max-frames-1-expected.txt
   script-sort-by.json.gz
   script-sort-by-usable-expected.txt
   script-sort-by-req-expected.txt
   script-sort-by-slop-expected.txt
   script-ignore-alloc-fns.json
   script-ignore-alloc-fns-expected.txt
-  script-show-all-block-sizes.json
-  script-show-all-block-sizes-expected.txt
   script-diff1.json
   script-diff2.json
   script-diff-basic-expected.txt
   script-diff-options-expected.txt
 
 # Bug 1077230 explains why this test is disabled on Mac 10.6.
 # Bug 1076446 comment 20 explains why this test is only enabled on Windows 5.1
 # (WinXP) and 6.1 (Win7), but not 6.2 (Win8).