summaryrefslogtreecommitdiffstats
path: root/gin/v8_isolate_memory_dump_provider.cc
diff options
context:
space:
mode:
authorssid <ssid@chromium.org>2015-05-11 18:01:23 -0700
committerCommit bot <commit-bot@chromium.org>2015-05-12 01:01:37 +0000
commit9ad94e6e06201059c08d67b9d9ab4a30a766b541 (patch)
treebb1c5160ecad38ea3a749e963d397d5d0398c3b4 /gin/v8_isolate_memory_dump_provider.cc
parent9f613059e6d253fa389a3cc7b75e29297f970197 (diff)
downloadchromium_src-9ad94e6e06201059c08d67b9d9ab4a30a766b541.zip
chromium_src-9ad94e6e06201059c08d67b9d9ab4a30a766b541.tar.gz
chromium_src-9ad94e6e06201059c08d67b9d9ab4a30a766b541.tar.bz2
Adding total available size of heap in v8 isolate memory dump provider.
The total available size is now returned by GetHeapStatistics api. This CL uses the value in the dump provider to show the value in other_spaces segment of the memory dump. BUG=481504 Review URL: https://codereview.chromium.org/1129403003 Cr-Commit-Position: refs/heads/master@{#329303}
Diffstat (limited to 'gin/v8_isolate_memory_dump_provider.cc')
-rw-r--r--gin/v8_isolate_memory_dump_provider.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/gin/v8_isolate_memory_dump_provider.cc b/gin/v8_isolate_memory_dump_provider.cc
index 4530879..fd58efd 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