зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1035570 (part 1) - DMD: Rename TraceRecord as Record. r=erahm.
DMD used to have "stack trace records" and "stack frame records". Bug 1013011 removed the latter, and now "stack trace record" and |TraceRecord| are a bit unwieldy. This patch changes them to "heap block record" and |Record|. --HG-- extra : rebase_source : 1d674db9866221f6a170d0eb05aa77fc9f4a1924
This commit is contained in:
Родитель
438e827662
Коммит
cb210b1e27
|
@ -1345,10 +1345,10 @@ namespace mozilla {
|
|||
namespace dmd {
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Stack trace records
|
||||
// Heap block records
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
class TraceRecordKey
|
||||
class RecordKey
|
||||
{
|
||||
public:
|
||||
const StackTrace* const mAllocStackTrace; // never null
|
||||
|
@ -1357,7 +1357,7 @@ protected:
|
|||
const StackTrace* const mReportStackTrace2; // nullptr if not 2x-reported
|
||||
|
||||
public:
|
||||
TraceRecordKey(const Block& aB)
|
||||
RecordKey(const Block& aB)
|
||||
: mAllocStackTrace(aB.AllocStackTrace()),
|
||||
mReportStackTrace1(aB.ReportStackTrace1()),
|
||||
mReportStackTrace2(aB.ReportStackTrace2())
|
||||
|
@ -1367,16 +1367,16 @@ public:
|
|||
|
||||
// Hash policy.
|
||||
|
||||
typedef TraceRecordKey Lookup;
|
||||
typedef RecordKey Lookup;
|
||||
|
||||
static uint32_t hash(const TraceRecordKey& aKey)
|
||||
static uint32_t hash(const RecordKey& aKey)
|
||||
{
|
||||
return mozilla::HashGeneric(aKey.mAllocStackTrace,
|
||||
aKey.mReportStackTrace1,
|
||||
aKey.mReportStackTrace2);
|
||||
}
|
||||
|
||||
static bool match(const TraceRecordKey& aA, const TraceRecordKey& aB)
|
||||
static bool match(const RecordKey& aA, const RecordKey& aB)
|
||||
{
|
||||
return aA.mAllocStackTrace == aB.mAllocStackTrace &&
|
||||
aA.mReportStackTrace1 == aB.mReportStackTrace1 &&
|
||||
|
@ -1437,18 +1437,17 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
// A collection of one or more heap blocks with a common TraceRecordKey.
|
||||
class TraceRecord : public TraceRecordKey
|
||||
// A collection of one or more heap blocks with a common RecordKey.
|
||||
class Record : public RecordKey
|
||||
{
|
||||
// The TraceRecordKey base class serves as the key in TraceRecordTables.
|
||||
// These two fields constitute the value, so it's ok for them to be
|
||||
// |mutable|.
|
||||
mutable uint32_t mNumBlocks; // number of blocks with this TraceRecordKey
|
||||
// The RecordKey base class serves as the key in RecordTables. These two
|
||||
// fields constitute the value, so it's ok for them to be |mutable|.
|
||||
mutable uint32_t mNumBlocks; // number of blocks with this RecordKey
|
||||
mutable RecordSize mRecordSize; // combined size of those blocks
|
||||
|
||||
public:
|
||||
explicit TraceRecord(const TraceRecordKey& aKey)
|
||||
: TraceRecordKey(aKey),
|
||||
explicit Record(const RecordKey& aKey)
|
||||
: RecordKey(aKey),
|
||||
mNumBlocks(0),
|
||||
mRecordSize()
|
||||
{}
|
||||
|
@ -1471,25 +1470,24 @@ public:
|
|||
|
||||
static int QsortCmp(const void* aA, const void* aB)
|
||||
{
|
||||
const TraceRecord* const a = *static_cast<const TraceRecord* const*>(aA);
|
||||
const TraceRecord* const b = *static_cast<const TraceRecord* const*>(aB);
|
||||
const Record* const a = *static_cast<const Record* const*>(aA);
|
||||
const Record* const b = *static_cast<const Record* const*>(aB);
|
||||
|
||||
return RecordSize::Cmp(a->mRecordSize, b->mRecordSize);
|
||||
}
|
||||
};
|
||||
|
||||
typedef js::HashSet<TraceRecord, TraceRecord, InfallibleAllocPolicy>
|
||||
TraceRecordTable;
|
||||
typedef js::HashSet<Record, Record, InfallibleAllocPolicy> RecordTable;
|
||||
|
||||
void
|
||||
TraceRecord::Print(const Writer& aWriter, LocationService* aLocService,
|
||||
uint32_t aM, uint32_t aN, const char* aStr, const char* astr,
|
||||
size_t aCategoryUsableSize, size_t aCumulativeUsableSize,
|
||||
size_t aTotalUsableSize) const
|
||||
Record::Print(const Writer& aWriter, LocationService* aLocService,
|
||||
uint32_t aM, uint32_t aN, const char* aStr, const char* astr,
|
||||
size_t aCategoryUsableSize, size_t aCumulativeUsableSize,
|
||||
size_t aTotalUsableSize) const
|
||||
{
|
||||
bool showTilde = mRecordSize.IsSampled();
|
||||
|
||||
W("%s: %s block%s in stack trace record %s of %s\n",
|
||||
W("%s: %s block%s in heap block record %s of %s\n",
|
||||
aStr,
|
||||
Show(mNumBlocks, gBuf1, kBufLen, showTilde), Plural(mNumBlocks),
|
||||
Show(aM, gBuf2, kBufLen),
|
||||
|
@ -1807,32 +1805,32 @@ ReportOnAlloc(const void* aPtr)
|
|||
//---------------------------------------------------------------------------
|
||||
|
||||
static void
|
||||
PrintSortedTraceRecords(const Writer& aWriter, LocationService* aLocService,
|
||||
const char* aStr, const char* astr,
|
||||
const TraceRecordTable& aRecordTable,
|
||||
size_t aCategoryUsableSize, size_t aTotalUsableSize)
|
||||
PrintSortedRecords(const Writer& aWriter, LocationService* aLocService,
|
||||
const char* aStr, const char* astr,
|
||||
const RecordTable& aRecordTable,
|
||||
size_t aCategoryUsableSize, size_t aTotalUsableSize)
|
||||
{
|
||||
StatusMsg(" creating and sorting %s stack trace record array...\n", astr);
|
||||
StatusMsg(" creating and sorting %s heap block record array...\n", astr);
|
||||
|
||||
// Convert the table into a sorted array.
|
||||
js::Vector<const TraceRecord*, 0, InfallibleAllocPolicy> recordArray;
|
||||
js::Vector<const Record*, 0, InfallibleAllocPolicy> recordArray;
|
||||
recordArray.reserve(aRecordTable.count());
|
||||
for (TraceRecordTable::Range r = aRecordTable.all();
|
||||
for (RecordTable::Range r = aRecordTable.all();
|
||||
!r.empty();
|
||||
r.popFront()) {
|
||||
recordArray.infallibleAppend(&r.front());
|
||||
}
|
||||
qsort(recordArray.begin(), recordArray.length(), sizeof(recordArray[0]),
|
||||
TraceRecord::QsortCmp);
|
||||
Record::QsortCmp);
|
||||
|
||||
WriteTitle("%s stack trace records\n", aStr);
|
||||
WriteTitle("%s heap block records\n", aStr);
|
||||
|
||||
if (recordArray.length() == 0) {
|
||||
W("(none)\n\n");
|
||||
return;
|
||||
}
|
||||
|
||||
StatusMsg(" printing %s stack trace record array...\n", astr);
|
||||
StatusMsg(" printing %s heap block record array...\n", astr);
|
||||
size_t cumulativeUsableSize = 0;
|
||||
|
||||
// Limit the number of records printed, because fix-linux-stack.pl is too
|
||||
|
@ -1841,13 +1839,13 @@ PrintSortedTraceRecords(const Writer& aWriter, LocationService* aLocService,
|
|||
uint32_t numRecords = recordArray.length();
|
||||
uint32_t maxRecords = gOptions->MaxRecords();
|
||||
for (uint32_t i = 0; i < numRecords; i++) {
|
||||
const TraceRecord* r = recordArray[i];
|
||||
const Record* r = recordArray[i];
|
||||
cumulativeUsableSize += r->GetRecordSize().Usable();
|
||||
if (i < maxRecords) {
|
||||
r->Print(aWriter, aLocService, i+1, numRecords, aStr, astr,
|
||||
aCategoryUsableSize, cumulativeUsableSize, aTotalUsableSize);
|
||||
} else if (i == maxRecords) {
|
||||
W("%s: stopping after %s stack trace records\n\n", aStr,
|
||||
W("%s: stopping after %s heap block records\n\n", aStr,
|
||||
Show(maxRecords, gBuf1, kBufLen));
|
||||
}
|
||||
}
|
||||
|
@ -1956,20 +1954,20 @@ Dump(Writer aWriter)
|
|||
static int dumpCount = 1;
|
||||
StatusMsg("Dump %d {\n", dumpCount++);
|
||||
|
||||
StatusMsg(" gathering stack trace records...\n");
|
||||
StatusMsg(" gathering heap block records...\n");
|
||||
|
||||
TraceRecordTable unreportedTraceRecordTable;
|
||||
(void)unreportedTraceRecordTable.init(1024);
|
||||
RecordTable unreportedRecordTable;
|
||||
(void)unreportedRecordTable.init(1024);
|
||||
size_t unreportedUsableSize = 0;
|
||||
size_t unreportedNumBlocks = 0;
|
||||
|
||||
TraceRecordTable onceReportedTraceRecordTable;
|
||||
(void)onceReportedTraceRecordTable.init(1024);
|
||||
RecordTable onceReportedRecordTable;
|
||||
(void)onceReportedRecordTable.init(1024);
|
||||
size_t onceReportedUsableSize = 0;
|
||||
size_t onceReportedNumBlocks = 0;
|
||||
|
||||
TraceRecordTable twiceReportedTraceRecordTable;
|
||||
(void)twiceReportedTraceRecordTable.init(0);
|
||||
RecordTable twiceReportedRecordTable;
|
||||
(void)twiceReportedRecordTable.init(0);
|
||||
size_t twiceReportedUsableSize = 0;
|
||||
size_t twiceReportedNumBlocks = 0;
|
||||
|
||||
|
@ -1978,26 +1976,26 @@ Dump(Writer aWriter)
|
|||
for (BlockTable::Range r = gBlockTable->all(); !r.empty(); r.popFront()) {
|
||||
const Block& b = r.front();
|
||||
|
||||
TraceRecordTable* table;
|
||||
RecordTable* table;
|
||||
uint32_t numReports = b.NumReports();
|
||||
if (numReports == 0) {
|
||||
unreportedUsableSize += b.UsableSize();
|
||||
unreportedNumBlocks++;
|
||||
table = &unreportedTraceRecordTable;
|
||||
table = &unreportedRecordTable;
|
||||
} else if (numReports == 1) {
|
||||
onceReportedUsableSize += b.UsableSize();
|
||||
onceReportedNumBlocks++;
|
||||
table = &onceReportedTraceRecordTable;
|
||||
table = &onceReportedRecordTable;
|
||||
} else {
|
||||
MOZ_ASSERT(numReports == 2);
|
||||
twiceReportedUsableSize += b.UsableSize();
|
||||
twiceReportedNumBlocks++;
|
||||
table = &twiceReportedTraceRecordTable;
|
||||
table = &twiceReportedRecordTable;
|
||||
}
|
||||
TraceRecordKey key(b);
|
||||
TraceRecordTable::AddPtr p = table->lookupForAdd(key);
|
||||
RecordKey key(b);
|
||||
RecordTable::AddPtr p = table->lookupForAdd(key);
|
||||
if (!p) {
|
||||
TraceRecord tr(b);
|
||||
Record tr(b);
|
||||
(void)table->add(p, tr);
|
||||
}
|
||||
p->Add(b);
|
||||
|
@ -2017,20 +2015,20 @@ Dump(Writer aWriter)
|
|||
// Allocate this on the heap instead of the stack because it's fairly large.
|
||||
LocationService* locService = InfallibleAllocPolicy::new_<LocationService>();
|
||||
|
||||
PrintSortedTraceRecords(aWriter, locService,
|
||||
"Twice-reported", "twice-reported",
|
||||
twiceReportedTraceRecordTable,
|
||||
twiceReportedUsableSize, totalUsableSize);
|
||||
PrintSortedRecords(aWriter, locService,
|
||||
"Twice-reported", "twice-reported",
|
||||
twiceReportedRecordTable,
|
||||
twiceReportedUsableSize, totalUsableSize);
|
||||
|
||||
PrintSortedTraceRecords(aWriter, locService,
|
||||
"Unreported", "unreported",
|
||||
unreportedTraceRecordTable,
|
||||
unreportedUsableSize, totalUsableSize);
|
||||
PrintSortedRecords(aWriter, locService,
|
||||
"Unreported", "unreported",
|
||||
unreportedRecordTable,
|
||||
unreportedUsableSize, totalUsableSize);
|
||||
|
||||
PrintSortedTraceRecords(aWriter, locService,
|
||||
"Once-reported", "once-reported",
|
||||
onceReportedTraceRecordTable,
|
||||
onceReportedUsableSize, totalUsableSize);
|
||||
PrintSortedRecords(aWriter, locService,
|
||||
"Once-reported", "once-reported",
|
||||
onceReportedRecordTable,
|
||||
onceReportedUsableSize, totalUsableSize);
|
||||
|
||||
bool showTilde = anyBlocksSampled;
|
||||
WriteTitle("Summary\n");
|
||||
|
@ -2089,25 +2087,25 @@ Dump(Writer aWriter)
|
|||
W("\nData structures that are destroyed after Dump() ends:\n");
|
||||
|
||||
size_t unreportedSize =
|
||||
unreportedTraceRecordTable.sizeOfIncludingThis(MallocSizeOf);
|
||||
unreportedRecordTable.sizeOfIncludingThis(MallocSizeOf);
|
||||
W(" Unreported table: %10s bytes (%s entries, %s used)\n",
|
||||
Show(unreportedSize, gBuf1, kBufLen),
|
||||
Show(unreportedTraceRecordTable.capacity(), gBuf2, kBufLen),
|
||||
Show(unreportedTraceRecordTable.count(), gBuf3, kBufLen));
|
||||
Show(unreportedSize, gBuf1, kBufLen),
|
||||
Show(unreportedRecordTable.capacity(), gBuf2, kBufLen),
|
||||
Show(unreportedRecordTable.count(), gBuf3, kBufLen));
|
||||
|
||||
size_t onceReportedSize =
|
||||
onceReportedTraceRecordTable.sizeOfIncludingThis(MallocSizeOf);
|
||||
onceReportedRecordTable.sizeOfIncludingThis(MallocSizeOf);
|
||||
W(" Once-reported table: %10s bytes (%s entries, %s used)\n",
|
||||
Show(onceReportedSize, gBuf1, kBufLen),
|
||||
Show(onceReportedTraceRecordTable.capacity(), gBuf2, kBufLen),
|
||||
Show(onceReportedTraceRecordTable.count(), gBuf3, kBufLen));
|
||||
Show(onceReportedSize, gBuf1, kBufLen),
|
||||
Show(onceReportedRecordTable.capacity(), gBuf2, kBufLen),
|
||||
Show(onceReportedRecordTable.count(), gBuf3, kBufLen));
|
||||
|
||||
size_t twiceReportedSize =
|
||||
twiceReportedTraceRecordTable.sizeOfIncludingThis(MallocSizeOf);
|
||||
twiceReportedRecordTable.sizeOfIncludingThis(MallocSizeOf);
|
||||
W(" Twice-reported table: %10s bytes (%s entries, %s used)\n",
|
||||
Show(twiceReportedSize, gBuf1, kBufLen),
|
||||
Show(twiceReportedTraceRecordTable.capacity(), gBuf2, kBufLen),
|
||||
Show(twiceReportedTraceRecordTable.count(), gBuf3, kBufLen));
|
||||
Show(twiceReportedSize, gBuf1, kBufLen),
|
||||
Show(twiceReportedRecordTable.capacity(), gBuf2, kBufLen),
|
||||
Show(twiceReportedRecordTable.count(), gBuf3, kBufLen));
|
||||
|
||||
W(" Location service: %10s bytes\n",
|
||||
Show(locService->SizeOfIncludingThis(), gBuf1, kBufLen));
|
||||
|
@ -2356,7 +2354,7 @@ RunTestMode(FILE* fp)
|
|||
}
|
||||
MOZ_ASSERT(gSmallBlockActualSizeCounter == 0);
|
||||
|
||||
// This allocates 16, 32, ..., 128 bytes, which results in a stack trace
|
||||
// This allocates 16, 32, ..., 128 bytes, which results in a heap block
|
||||
// record that contains a mix of sample and non-sampled blocks, and so should
|
||||
// be printed with '~' signs.
|
||||
for (int i = 1; i <= 8; i++) {
|
||||
|
|
|
@ -62,7 +62,7 @@ def main():
|
|||
|
||||
# Filter output
|
||||
|
||||
# In stack trace records we filter out most stack frames. The only thing
|
||||
# In heap block records we filter out most stack frames. The only thing
|
||||
# we leave behind is a "DMD.cpp" entry if we see one or more frames that
|
||||
# have DMD.cpp in them. There is simply too much variation to do anything
|
||||
# better than that.
|
||||
|
@ -76,7 +76,7 @@ def main():
|
|||
|
||||
for line in fin:
|
||||
if re.match(r" (Allocated at|Reported( again)? at)", line):
|
||||
# It's a stack trace record.
|
||||
# It's a heap block record.
|
||||
print(line, end='', file=fout)
|
||||
|
||||
# Filter the stack trace -- print a single line if we see one
|
||||
|
|
|
@ -6,19 +6,19 @@ $DMD = '--mode=test'
|
|||
Sample-below size = 1
|
||||
|
||||
------------------------------------------------------------------
|
||||
Twice-reported stack trace records
|
||||
Twice-reported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
(none)
|
||||
|
||||
------------------------------------------------------------------
|
||||
Unreported stack trace records
|
||||
Unreported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
(none)
|
||||
|
||||
------------------------------------------------------------------
|
||||
Once-reported stack trace records
|
||||
Once-reported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
(none)
|
||||
|
@ -40,10 +40,10 @@ $DMD = '--mode=test'
|
|||
Sample-below size = 1
|
||||
|
||||
------------------------------------------------------------------
|
||||
Twice-reported stack trace records
|
||||
Twice-reported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
Twice-reported: 1 block in stack trace record 1 of 4
|
||||
Twice-reported: 1 block in heap block record 1 of 4
|
||||
80 bytes (79 requested / 1 slop)
|
||||
0.66% of the heap (0.66% cumulative); 29.41% of twice-reported (29.41% cumulative)
|
||||
Allocated at
|
||||
|
@ -55,7 +55,7 @@ Twice-reported: 1 block in stack trace record 1 of 4
|
|||
Reported again at
|
||||
... DMD.cpp
|
||||
|
||||
Twice-reported: 1 block in stack trace record 2 of 4
|
||||
Twice-reported: 1 block in heap block record 2 of 4
|
||||
80 bytes (78 requested / 2 slop)
|
||||
0.66% of the heap (1.32% cumulative); 29.41% of twice-reported (58.82% cumulative)
|
||||
Allocated at
|
||||
|
@ -67,7 +67,7 @@ Twice-reported: 1 block in stack trace record 2 of 4
|
|||
Reported again at
|
||||
... DMD.cpp
|
||||
|
||||
Twice-reported: 1 block in stack trace record 3 of 4
|
||||
Twice-reported: 1 block in heap block record 3 of 4
|
||||
80 bytes (77 requested / 3 slop)
|
||||
0.66% of the heap (1.99% cumulative); 29.41% of twice-reported (88.24% cumulative)
|
||||
Allocated at
|
||||
|
@ -79,7 +79,7 @@ Twice-reported: 1 block in stack trace record 3 of 4
|
|||
Reported again at
|
||||
... DMD.cpp
|
||||
|
||||
Twice-reported: 1 block in stack trace record 4 of 4
|
||||
Twice-reported: 1 block in heap block record 4 of 4
|
||||
32 bytes (30 requested / 2 slop)
|
||||
0.26% of the heap (2.25% cumulative); 11.76% of twice-reported (100.00% cumulative)
|
||||
Allocated at
|
||||
|
@ -92,32 +92,32 @@ Twice-reported: 1 block in stack trace record 4 of 4
|
|||
... DMD.cpp
|
||||
|
||||
------------------------------------------------------------------
|
||||
Unreported stack trace records
|
||||
Unreported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
Unreported: 9 blocks in stack trace record 1 of 3
|
||||
Unreported: 9 blocks in heap block record 1 of 3
|
||||
1,008 bytes (900 requested / 108 slop)
|
||||
8.34% of the heap (8.34% cumulative); 81.82% of unreported (81.82% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
Unreported: 2 blocks in stack trace record 2 of 3
|
||||
Unreported: 2 blocks in heap block record 2 of 3
|
||||
112 bytes (112 requested / 0 slop)
|
||||
0.93% of the heap (9.27% cumulative); 9.09% of unreported (90.91% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
Unreported: 2 blocks in stack trace record 3 of 3
|
||||
Unreported: 2 blocks in heap block record 3 of 3
|
||||
112 bytes (112 requested / 0 slop)
|
||||
0.93% of the heap (10.19% cumulative); 9.09% of unreported (100.00% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
------------------------------------------------------------------
|
||||
Once-reported stack trace records
|
||||
Once-reported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
Once-reported: 1 block in stack trace record 1 of 11
|
||||
Once-reported: 1 block in heap block record 1 of 11
|
||||
8,192 bytes (4,097 requested / 4,095 slop)
|
||||
67.77% of the heap (67.77% cumulative); 77.40% of once-reported (77.40% cumulative)
|
||||
Allocated at
|
||||
|
@ -126,7 +126,7 @@ Once-reported: 1 block in stack trace record 1 of 11
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 1 block in stack trace record 2 of 11
|
||||
Once-reported: 1 block in heap block record 2 of 11
|
||||
1,024 bytes (1,023 requested / 1 slop)
|
||||
8.47% of the heap (76.24% cumulative); 9.67% of once-reported (87.07% cumulative)
|
||||
Allocated at
|
||||
|
@ -135,7 +135,7 @@ Once-reported: 1 block in stack trace record 2 of 11
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 1 block in stack trace record 3 of 11
|
||||
Once-reported: 1 block in heap block record 3 of 11
|
||||
512 bytes (512 requested / 0 slop)
|
||||
4.24% of the heap (80.48% cumulative); 4.84% of once-reported (91.91% cumulative)
|
||||
Allocated at
|
||||
|
@ -144,7 +144,7 @@ Once-reported: 1 block in stack trace record 3 of 11
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 2 blocks in stack trace record 4 of 11
|
||||
Once-reported: 2 blocks in heap block record 4 of 11
|
||||
240 bytes (240 requested / 0 slop)
|
||||
1.99% of the heap (82.46% cumulative); 2.27% of once-reported (94.18% cumulative)
|
||||
Allocated at
|
||||
|
@ -153,7 +153,7 @@ Once-reported: 2 blocks in stack trace record 4 of 11
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 2 blocks in stack trace record 5 of 11
|
||||
Once-reported: 2 blocks in heap block record 5 of 11
|
||||
240 bytes (240 requested / 0 slop)
|
||||
1.99% of the heap (84.45% cumulative); 2.27% of once-reported (96.45% cumulative)
|
||||
Allocated at
|
||||
|
@ -162,7 +162,7 @@ Once-reported: 2 blocks in stack trace record 5 of 11
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 1 block in stack trace record 6 of 11
|
||||
Once-reported: 1 block in heap block record 6 of 11
|
||||
96 bytes (96 requested / 0 slop)
|
||||
0.79% of the heap (85.24% cumulative); 0.91% of once-reported (97.35% cumulative)
|
||||
Allocated at
|
||||
|
@ -171,7 +171,7 @@ Once-reported: 1 block in stack trace record 6 of 11
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 1 block in stack trace record 7 of 11
|
||||
Once-reported: 1 block in heap block record 7 of 11
|
||||
96 bytes (96 requested / 0 slop)
|
||||
0.79% of the heap (86.04% cumulative); 0.91% of once-reported (98.26% cumulative)
|
||||
Allocated at
|
||||
|
@ -180,7 +180,7 @@ Once-reported: 1 block in stack trace record 7 of 11
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 1 block in stack trace record 8 of 11
|
||||
Once-reported: 1 block in heap block record 8 of 11
|
||||
80 bytes (80 requested / 0 slop)
|
||||
0.66% of the heap (86.70% cumulative); 0.76% of once-reported (99.02% cumulative)
|
||||
Allocated at
|
||||
|
@ -189,7 +189,7 @@ Once-reported: 1 block in stack trace record 8 of 11
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 1 block in stack trace record 9 of 11
|
||||
Once-reported: 1 block in heap block record 9 of 11
|
||||
80 bytes (80 requested / 0 slop)
|
||||
0.66% of the heap (87.36% cumulative); 0.76% of once-reported (99.77% cumulative)
|
||||
Allocated at
|
||||
|
@ -198,7 +198,7 @@ Once-reported: 1 block in stack trace record 9 of 11
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 1 block in stack trace record 10 of 11
|
||||
Once-reported: 1 block in heap block record 10 of 11
|
||||
16 bytes (10 requested / 6 slop)
|
||||
0.13% of the heap (87.49% cumulative); 0.15% of once-reported (99.92% cumulative)
|
||||
Allocated at
|
||||
|
@ -207,7 +207,7 @@ Once-reported: 1 block in stack trace record 10 of 11
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 1 block in stack trace record 11 of 11
|
||||
Once-reported: 1 block in heap block record 11 of 11
|
||||
8 bytes (0 requested / 8 slop)
|
||||
0.07% of the heap (87.56% cumulative); 0.08% of once-reported (100.00% cumulative)
|
||||
Allocated at
|
||||
|
@ -233,10 +233,10 @@ $DMD = '--mode=test'
|
|||
Sample-below size = 1
|
||||
|
||||
------------------------------------------------------------------
|
||||
Twice-reported stack trace records
|
||||
Twice-reported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
Twice-reported: 1 block in stack trace record 1 of 2
|
||||
Twice-reported: 1 block in heap block record 1 of 2
|
||||
80 bytes (77 requested / 3 slop)
|
||||
2.82% of the heap (2.82% cumulative); 90.91% of twice-reported (90.91% cumulative)
|
||||
Allocated at
|
||||
|
@ -248,7 +248,7 @@ Twice-reported: 1 block in stack trace record 1 of 2
|
|||
Reported again at
|
||||
... DMD.cpp
|
||||
|
||||
Twice-reported: 1 block in stack trace record 2 of 2
|
||||
Twice-reported: 1 block in heap block record 2 of 2
|
||||
8 bytes (0 requested / 8 slop)
|
||||
0.28% of the heap (3.10% cumulative); 9.09% of twice-reported (100.00% cumulative)
|
||||
Allocated at
|
||||
|
@ -261,32 +261,32 @@ Twice-reported: 1 block in stack trace record 2 of 2
|
|||
... DMD.cpp
|
||||
|
||||
------------------------------------------------------------------
|
||||
Unreported stack trace records
|
||||
Unreported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
Unreported: 9 blocks in stack trace record 1 of 3
|
||||
Unreported: 9 blocks in heap block record 1 of 3
|
||||
1,008 bytes (900 requested / 108 slop)
|
||||
35.49% of the heap (35.49% cumulative); 48.84% of unreported (48.84% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
Unreported: 6 blocks in stack trace record 2 of 3
|
||||
Unreported: 6 blocks in heap block record 2 of 3
|
||||
528 bytes (528 requested / 0 slop)
|
||||
18.59% of the heap (54.08% cumulative); 25.58% of unreported (74.42% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
Unreported: 6 blocks in stack trace record 3 of 3
|
||||
Unreported: 6 blocks in heap block record 3 of 3
|
||||
528 bytes (528 requested / 0 slop)
|
||||
18.59% of the heap (72.68% cumulative); 25.58% of unreported (100.00% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
------------------------------------------------------------------
|
||||
Once-reported stack trace records
|
||||
Once-reported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
Once-reported: 1 block in stack trace record 1 of 4
|
||||
Once-reported: 1 block in heap block record 1 of 4
|
||||
512 bytes (512 requested / 0 slop)
|
||||
18.03% of the heap (18.03% cumulative); 74.42% of once-reported (74.42% cumulative)
|
||||
Allocated at
|
||||
|
@ -295,7 +295,7 @@ Once-reported: 1 block in stack trace record 1 of 4
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 1 block in stack trace record 2 of 4
|
||||
Once-reported: 1 block in heap block record 2 of 4
|
||||
80 bytes (79 requested / 1 slop)
|
||||
2.82% of the heap (20.85% cumulative); 11.63% of once-reported (86.05% cumulative)
|
||||
Allocated at
|
||||
|
@ -304,7 +304,7 @@ Once-reported: 1 block in stack trace record 2 of 4
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 1 block in stack trace record 3 of 4
|
||||
Once-reported: 1 block in heap block record 3 of 4
|
||||
80 bytes (78 requested / 2 slop)
|
||||
2.82% of the heap (23.66% cumulative); 11.63% of once-reported (97.67% cumulative)
|
||||
Allocated at
|
||||
|
@ -313,7 +313,7 @@ Once-reported: 1 block in stack trace record 3 of 4
|
|||
Reported at
|
||||
... DMD.cpp
|
||||
|
||||
Once-reported: 1 block in stack trace record 4 of 4
|
||||
Once-reported: 1 block in heap block record 4 of 4
|
||||
16 bytes (10 requested / 6 slop)
|
||||
0.56% of the heap (24.23% cumulative); 2.33% of once-reported (100.00% cumulative)
|
||||
Allocated at
|
||||
|
@ -339,59 +339,59 @@ $DMD = '--mode=test'
|
|||
Sample-below size = 128
|
||||
|
||||
------------------------------------------------------------------
|
||||
Twice-reported stack trace records
|
||||
Twice-reported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
(none)
|
||||
|
||||
------------------------------------------------------------------
|
||||
Unreported stack trace records
|
||||
Unreported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
Unreported: ~4 blocks in stack trace record 1 of 7
|
||||
Unreported: ~4 blocks in heap block record 1 of 7
|
||||
~512 bytes (~512 requested / ~0 slop)
|
||||
35.96% of the heap (35.96% cumulative); 35.96% of unreported (35.96% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
Unreported: 1 block in stack trace record 2 of 7
|
||||
Unreported: 1 block in heap block record 2 of 7
|
||||
256 bytes (256 requested / 0 slop)
|
||||
17.98% of the heap (53.93% cumulative); 17.98% of unreported (53.93% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
Unreported: 1 block in stack trace record 3 of 7
|
||||
Unreported: 1 block in heap block record 3 of 7
|
||||
144 bytes (144 requested / 0 slop)
|
||||
10.11% of the heap (64.04% cumulative); 10.11% of unreported (64.04% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
Unreported: 1 block in stack trace record 4 of 7
|
||||
Unreported: 1 block in heap block record 4 of 7
|
||||
128 bytes (128 requested / 0 slop)
|
||||
8.99% of the heap (73.03% cumulative); 8.99% of unreported (73.03% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
Unreported: ~1 block in stack trace record 5 of 7
|
||||
Unreported: ~1 block in heap block record 5 of 7
|
||||
~128 bytes (~128 requested / ~0 slop)
|
||||
8.99% of the heap (82.02% cumulative); 8.99% of unreported (82.02% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
Unreported: ~1 block in stack trace record 6 of 7
|
||||
Unreported: ~1 block in heap block record 6 of 7
|
||||
~128 bytes (~128 requested / ~0 slop)
|
||||
8.99% of the heap (91.01% cumulative); 8.99% of unreported (91.01% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
Unreported: ~1 block in stack trace record 7 of 7
|
||||
Unreported: ~1 block in heap block record 7 of 7
|
||||
~128 bytes (~128 requested / ~0 slop)
|
||||
8.99% of the heap (100.00% cumulative); 8.99% of unreported (100.00% cumulative)
|
||||
Allocated at
|
||||
... DMD.cpp
|
||||
|
||||
------------------------------------------------------------------
|
||||
Once-reported stack trace records
|
||||
Once-reported heap block records
|
||||
------------------------------------------------------------------
|
||||
|
||||
(none)
|
||||
|
|
Загрузка…
Ссылка в новой задаче