| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/child/content_child_helpers.h" | 5 #include "content/child/content_child_helpers.h" |
| 6 | 6 |
| 7 #if defined(OS_LINUX) | 7 #if defined(OS_LINUX) |
| 8 #include <malloc.h> | 8 #include <malloc.h> |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 #if defined(USE_TCMALLOC) | 22 #if defined(USE_TCMALLOC) |
| 23 minfo.uordblks | 23 minfo.uordblks |
| 24 #else | 24 #else |
| 25 (minfo.hblkhd + minfo.arena) | 25 (minfo.hblkhd + minfo.arena) |
| 26 #endif | 26 #endif |
| 27 >> 10; | 27 >> 10; |
| 28 | 28 |
| 29 v8::HeapStatistics stat; | 29 v8::HeapStatistics stat; |
| 30 // TODO(svenpanne) The call below doesn't take web workers into account, this | 30 // TODO(svenpanne) The call below doesn't take web workers into account, this |
| 31 // has to be done manually by iterating over all Isolates involved. | 31 // has to be done manually by iterating over all Isolates involved. |
| 32 v8::Isolate::GetCurrent()->GetHeapStatistics(&stat); | 32 v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
| 33 if (isolate) |
| 34 isolate->GetHeapStatistics(&stat); |
| 33 return mem_usage + (static_cast<uint64_t>(stat.total_heap_size()) >> 10); | 35 return mem_usage + (static_cast<uint64_t>(stat.total_heap_size()) >> 10); |
| 34 } | 36 } |
| 35 #elif defined(OS_MACOSX) | 37 #elif defined(OS_MACOSX) |
| 36 size_t GetMemoryUsageKB() { | 38 size_t GetMemoryUsageKB() { |
| 37 scoped_ptr<base::ProcessMetrics> process_metrics( | 39 scoped_ptr<base::ProcessMetrics> process_metrics( |
| 38 // The default port provider is sufficient to get data for the current | 40 // The default port provider is sufficient to get data for the current |
| 39 // process. | 41 // process. |
| 40 base::ProcessMetrics::CreateProcessMetrics( | 42 base::ProcessMetrics::CreateProcessMetrics( |
| 41 base::GetCurrentProcessHandle(), NULL)); | 43 base::GetCurrentProcessHandle(), NULL)); |
| 42 return process_metrics->GetWorkingSetSize() >> 10; | 44 return process_metrics->GetWorkingSetSize() >> 10; |
| 43 } | 45 } |
| 44 #else | 46 #else |
| 45 size_t GetMemoryUsageKB() { | 47 size_t GetMemoryUsageKB() { |
| 46 scoped_ptr<base::ProcessMetrics> process_metrics( | 48 scoped_ptr<base::ProcessMetrics> process_metrics( |
| 47 base::ProcessMetrics::CreateProcessMetrics( | 49 base::ProcessMetrics::CreateProcessMetrics( |
| 48 base::GetCurrentProcessHandle())); | 50 base::GetCurrentProcessHandle())); |
| 49 return process_metrics->GetPagefileUsage() >> 10; | 51 return process_metrics->GetPagefileUsage() >> 10; |
| 50 } | 52 } |
| 51 #endif | 53 #endif |
| 52 | 54 |
| 53 } // namespace content | 55 } // namespace content |
| OLD | NEW |