Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef ATRACE_PROCESS_DUMP_H_ | |
| 6 #define ATRACE_PROCESS_DUMP_H_ | |
| 7 | |
| 8 #include <stdio.h> | |
| 9 #include <stdlib.h> | |
| 10 #include <unistd.h> | |
| 11 | |
| 12 #include <set> | |
| 13 #include <string> | |
| 14 | |
| 15 #include "process_info.h" | |
| 16 | |
| 17 // Utility to collect processes, thread names, per-process memory stats and | |
| 18 // other minor metrics from /proc filesystem. It's aimed to extend systrace | |
| 19 // with more actionable number to hit performance issues. | |
| 20 class AtraceProcessDump { | |
| 21 public: | |
| 22 // Config is either: | |
| 23 // comma-separated list of process names. | |
| 24 // "apps" - all Android apps launched from Zygote. | |
| 25 // "all" - all non-kernel processes. | |
| 26 void SetFullDumpConfig(const std::string& config); | |
| 27 void EnableGraphicsStats() { graphics_stats_ = true; } | |
| 28 void EnablePrintSmaps() { print_smaps_ = true; } | |
| 29 void SetDumpCount(int count) { dump_count_ = count; } | |
| 30 void SetDumpInterval(int interval_ms) { dump_interval_ms_ = interval_ms; } | |
| 31 | |
| 32 void RunAndPrintJson(FILE* stream); | |
| 33 void Stop() { CloseTimer(); } | |
|
Primiano Tucci (use gerrit)
2017/06/26 10:07:20
why this is inlined?
coding style says that only s
| |
| 34 | |
| 35 private: | |
| 36 void SerializeSnapshot( | |
| 37 const InstantProcessInfo* snapshot, const std::set<int>& smaps_pids); | |
| 38 void SerializeProcessInfo( | |
| 39 const PersistentProcessInfo::ProcessMap* processes); | |
| 40 | |
| 41 void SetupTimer(); | |
| 42 bool WaitForTimer(); | |
| 43 void CloseTimer(); | |
| 44 | |
| 45 int dump_count_; | |
| 46 int dump_interval_ms_; | |
| 47 | |
| 48 int timer_fd_; | |
| 49 FILE* out_; | |
| 50 | |
| 51 int self_pid_; | |
| 52 bool graphics_stats_ = false; | |
| 53 bool print_smaps_ = false; | |
| 54 bool full_dump_all_ = false; | |
|
Primiano Tucci (use gerrit)
2017/06/26 10:07:20
it feels this should really be an enum: with 3 val
| |
| 55 bool full_dump_apps_ = false; | |
| 56 std::set<std::string> full_dump_whitelist_; | |
| 57 }; | |
| 58 | |
| 59 #endif // ATRACE_PROCESS_DUMP_H_ | |
| OLD | NEW |