| Index: Source/platform/heap/Heap.cpp
|
| diff --git a/Source/platform/heap/Heap.cpp b/Source/platform/heap/Heap.cpp
|
| index d5fd5556f80b6e9c9b0e82755844ac35d282a18c..a56d46ec7a348bdee8b5b42357060fdbf82d651a 100644
|
| --- a/Source/platform/heap/Heap.cpp
|
| +++ b/Source/platform/heap/Heap.cpp
|
| @@ -1512,9 +1512,17 @@ void NormalPage::takeSnapshot(String dumpName, size_t pageIndex, ThreadState::GC
|
| } else if (header->isMarked()) {
|
| liveCount++;
|
| liveSize += header->size();
|
| +
|
| + size_t tag = info.getClassTag(header->gcInfoIndex());
|
| + info.liveCount[tag]++;
|
| + info.liveSize[tag] += header->size();
|
| } else {
|
| deadCount++;
|
| deadSize += header->size();
|
| +
|
| + size_t tag = info.getClassTag(header->gcInfoIndex());
|
| + info.deadCount[tag]++;
|
| + info.deadSize[tag] += header->size();
|
| }
|
| }
|
|
|
| @@ -1714,12 +1722,17 @@ void LargeObjectPage::takeSnapshot(String dumpName, size_t pageIndex, ThreadStat
|
| size_t liveCount = 0;
|
| size_t deadCount = 0;
|
| HeapObjectHeader* header = heapObjectHeader();
|
| + size_t tag = info.getClassTag(header->gcInfoIndex());
|
| if (header->isMarked()) {
|
| liveCount = 1;
|
| - liveSize += header->size();
|
| + liveSize += header->payloadSize();
|
| + info.liveCount[tag]++;
|
| + info.liveSize[tag] += header->size();
|
| } else {
|
| deadCount = 1;
|
| - deadSize += header->size();
|
| + deadSize += header->payloadSize();
|
| + info.deadCount[tag]++;
|
| + info.deadSize[tag] += header->size();
|
| }
|
|
|
| pageDump->AddScalar("live_count", "objects", liveCount);
|
|
|