Index: gin/v8_isolate_memory_dump_provider.cc |
diff --git a/gin/v8_isolate_memory_dump_provider.cc b/gin/v8_isolate_memory_dump_provider.cc |
index 4530879a7969233c103baa1acad96a0b749d7720..fd58efdb15c98e1a86cb4337d23de914a162bead 100644 |
--- a/gin/v8_isolate_memory_dump_provider.cc |
+++ b/gin/v8_isolate_memory_dump_provider.cc |
@@ -53,6 +53,7 @@ void V8IsolateMemoryDumpProvider::DumpMemoryStatistics( |
size_t known_spaces_used_size = 0; |
size_t known_spaces_size = 0; |
+ size_t known_spaces_available_size = 0; |
size_t number_of_spaces = isolate_holder_->isolate()->NumberOfHeapSpaces(); |
for (size_t space = 0; space < number_of_spaces; space++) { |
v8::HeapSpaceStatistics space_statistics; |
@@ -60,9 +61,11 @@ void V8IsolateMemoryDumpProvider::DumpMemoryStatistics( |
space); |
const size_t space_size = space_statistics.space_size(); |
const size_t space_used_size = space_statistics.space_used_size(); |
+ size_t space_available_size = space_statistics.space_available_size(); |
known_spaces_size += space_size; |
known_spaces_used_size += space_used_size; |
+ known_spaces_available_size += space_available_size; |
std::string allocator_name = |
base::StringPrintf("%s/%s_%p/%s/%s", kRootDumpName, kIsolateDumpName, |
@@ -74,14 +77,12 @@ void V8IsolateMemoryDumpProvider::DumpMemoryStatistics( |
base::trace_event::MemoryAllocatorDump::kNameOuterSize, |
base::trace_event::MemoryAllocatorDump::kUnitsBytes, space_size); |
- // TODO(ssid): Fix crbug.com/481504 to get the objects count of live objects |
- // after the last GC. |
space_dump->AddScalar( |
base::trace_event::MemoryAllocatorDump::kNameInnerSize, |
base::trace_event::MemoryAllocatorDump::kUnitsBytes, space_used_size); |
space_dump->AddScalar(kAvailableSizeAttribute, |
base::trace_event::MemoryAllocatorDump::kUnitsBytes, |
- space_statistics.space_available_size()); |
+ space_available_size); |
} |
// Compute the rest of the memory, not accounted by the spaces above. |
std::string allocator_name = base::StringPrintf( |
@@ -102,7 +103,8 @@ void V8IsolateMemoryDumpProvider::DumpMemoryStatistics( |
// heap. |
other_spaces_dump->AddScalar( |
kAvailableSizeAttribute, |
- base::trace_event::MemoryAllocatorDump::kUnitsBytes, 0); |
+ base::trace_event::MemoryAllocatorDump::kUnitsBytes, |
+ heap_statistics.total_available_size() - known_spaces_available_size); |
} |
} // namespace gin |