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); |