Chromium Code Reviews| Index: content/common/discardable_shared_memory_heap.h |
| diff --git a/content/common/discardable_shared_memory_heap.h b/content/common/discardable_shared_memory_heap.h |
| index 23b9cfb87d237dc1a4016dc029a0086aaf05fca1..a9248605098757e8162d5da1622a9d407bc607fa 100644 |
| --- a/content/common/discardable_shared_memory_heap.h |
| +++ b/content/common/discardable_shared_memory_heap.h |
| @@ -5,6 +5,8 @@ |
| #ifndef CONTENT_COMMON_DISCARDABLE_SHARED_MEMORY_HEAP_H_ |
| #define CONTENT_COMMON_DISCARDABLE_SHARED_MEMORY_HEAP_H_ |
| +#include <vector> |
| + |
| #include "base/callback.h" |
| #include "base/containers/hash_tables.h" |
| #include "base/containers/linked_list.h" |
| @@ -44,6 +46,25 @@ class CONTENT_EXPORT DiscardableSharedMemoryHeap { |
| DISALLOW_COPY_AND_ASSIGN(Span); |
| }; |
| + class CONTENT_EXPORT MemoryStatistics { |
|
Primiano Tucci (use gerrit)
2015/04/23 16:11:55
do you really need CONTENT_EXPORT here?
ssid
2015/04/24 11:23:04
No, removed.
|
| + public: |
| + class SegmentStatistics { |
|
Primiano Tucci (use gerrit)
2015/04/23 16:11:55
make this a struct and remove public:
ssid
2015/04/24 11:23:04
Changed.
|
| + public: |
| + size_t size; |
| + size_t num_of_objects; |
| + size_t used_size; |
| + }; |
| + |
| + MemoryStatistics(); |
| + ~MemoryStatistics(); |
| + |
| + size_t block_size; |
| + size_t total_size; |
| + size_t total_objects; |
| + size_t total_used_size; |
| + std::vector<SegmentStatistics> segments_stats; |
| + }; |
| + |
| explicit DiscardableSharedMemoryHeap(size_t block_size); |
| ~DiscardableSharedMemoryHeap(); |
| @@ -83,6 +104,9 @@ class CONTENT_EXPORT DiscardableSharedMemoryHeap { |
| // Returns bytes of memory currently in the free lists. |
| size_t GetSizeOfFreeLists() const; |
| + // Fills statistics about memory used. |
| + void GetMemoryStatistics(MemoryStatistics* statistics); |
|
reveman
2015/04/23 17:32:30
Why don't we just add "void DumpInto(base::trace_e
ssid
2015/04/23 18:03:07
This sounds like a good idea, since later we would
|
| + |
| private: |
| class ScopedMemorySegment { |
| public: |
| @@ -95,6 +119,8 @@ class CONTENT_EXPORT DiscardableSharedMemoryHeap { |
| bool IsUsed() const; |
| bool IsResident() const; |
| + void GetStatistics(MemoryStatistics::SegmentStatistics* segment_stats); |
| + |
| private: |
| DiscardableSharedMemoryHeap* const heap_; |
| scoped_ptr<base::DiscardableSharedMemory> shared_memory_; |