Index: systrace/atrace_helper/jni/process_memory_stats.h |
diff --git a/systrace/atrace_helper/jni/process_memory_stats.h b/systrace/atrace_helper/jni/process_memory_stats.h |
index 0085a2c053a758fc03a3f586ca533f3afb6eb854..84584aaa272a31f5fe1b7b4e59af6068a8d8da37 100644 |
--- a/systrace/atrace_helper/jni/process_memory_stats.h |
+++ b/systrace/atrace_helper/jni/process_memory_stats.h |
@@ -7,8 +7,8 @@ |
#include <stdint.h> |
-#include <map> |
#include <memory> |
+#include <vector> |
// Reads process memory stats from /proc/pid/{statm,smaps}. |
class ProcessMemoryStats { |
@@ -28,17 +28,18 @@ class ProcessMemoryStats { |
uint64_t swapped_kb = 0; |
}; |
- explicit ProcessMemoryStats(int pid); |
+ ProcessMemoryStats() {} |
- bool ReadLightStats(); |
- bool ReadFullStats(); |
- bool ReadMemtrackStats(); |
+ bool ReadLightStats(int pid); |
+ bool ReadFullStats(int pid); |
+ bool ReadGpuStats(int pid); |
// Available after ReadLightStats(). |
uint64_t virt_kb() const { return virt_kb_; } |
uint64_t rss_kb() const { return rss_kb_; } |
// Available after ReadFullStats(). |
+ bool full_stats_available() const { return full_stats_; } |
uint64_t pss_kb() const { return pss_kb_; } |
uint64_t private_clean_kb() const { return private_clean_kb_; } |
uint64_t private_dirty_kb() const { return private_dirty_kb_; } |
@@ -47,6 +48,7 @@ class ProcessMemoryStats { |
uint64_t swapped_kb() const { return swapped_kb_; } |
// Available after ReadMemtrackStats(). |
+ bool gpu_stats_available() const { return gpu_stats_; } |
uint64_t gpu_graphics_kb() const { return gpu_graphics_kb_; } |
uint64_t gpu_graphics_pss_kb() const { return gpu_graphics_pss_kb_; } |
uint64_t gpu_gl_kb() const { return gpu_gl_kb_; } |
@@ -54,17 +56,19 @@ class ProcessMemoryStats { |
uint64_t gpu_other_kb() const { return gpu_other_kb_; } |
uint64_t gpu_other_pss_kb() const { return gpu_other_pss_kb_; } |
+ size_t mmaps_count() const { return mmaps_.size(); } |
+ const MmapInfo* mmap(size_t index) const { return mmaps_[index].get(); } |
+ |
private: |
ProcessMemoryStats(const ProcessMemoryStats&) = delete; |
void operator=(const ProcessMemoryStats&) = delete; |
- const int pid_; |
- |
// Light stats. |
uint64_t virt_kb_ = 0; |
uint64_t rss_kb_ = 0; |
// Full stats. |
+ bool full_stats_ = false; |
uint64_t pss_kb_ = 0; |
uint64_t private_clean_kb_ = 0; |
uint64_t private_dirty_kb_ = 0; |
@@ -73,6 +77,7 @@ class ProcessMemoryStats { |
uint64_t swapped_kb_ = 0; |
// Graphics stats. |
+ bool gpu_stats_ = false; |
uint64_t gpu_graphics_kb_ = 0; |
uint64_t gpu_graphics_pss_kb_ = 0; |
uint64_t gpu_gl_kb_ = 0; |
@@ -80,7 +85,7 @@ class ProcessMemoryStats { |
uint64_t gpu_other_kb_ = 0; |
uint64_t gpu_other_pss_kb_ = 0; |
- std::map<uintptr_t, std::unique_ptr<MmapInfo>> mmaps_; |
+ std::vector<std::unique_ptr<const MmapInfo>> mmaps_; |
}; |
#endif // PROCESS_MEMORY_STATS_H_ |