OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 syntax = "proto2"; | 5 syntax = "proto2"; |
6 | 6 |
7 option optimize_for = LITE_RUNTIME; | 7 option optimize_for = LITE_RUNTIME; |
8 | 8 |
9 package metrics; | 9 package metrics; |
10 | 10 |
11 // Next tag: 7 | 11 // Next tag: 10 |
12 message MemoryLeakReportProto { | 12 message MemoryLeakReportProto { |
13 // The call stack at which the leak was found. This is a list of offsets | 13 // The call stack at which the leak was found. This is a list of offsets |
14 // within the program binary. The first entry is the deepest level of the call | 14 // within the program binary. The first entry is the deepest level of the call |
15 // stack. | 15 // stack. |
16 // | 16 // |
17 // Some call stack entries may not be within the Chrome binary (e.g. | 17 // Some call stack entries may not be within the Chrome binary (e.g. |
18 // JavaScript code). Those entries are given as the absolute offset in memory. | 18 // JavaScript code). Those entries are given as the absolute offset in memory. |
19 // | 19 // |
20 // The offsets within Chrome are determined by whether the original call stack | 20 // The offsets within Chrome are determined by whether the original call stack |
21 // address was within the executable region of the Chrome binary's mapping in | 21 // address was within the executable region of the Chrome binary's mapping in |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 optional uint32 count_for_call_stack = 2; | 95 optional uint32 count_for_call_stack = 2; |
96 } | 96 } |
97 | 97 |
98 // A record of past allocation data leading up to the circumstances that | 98 // A record of past allocation data leading up to the circumstances that |
99 // generated the current leak report. | 99 // generated the current leak report. |
100 // | 100 // |
101 // A new snapshot is taken every |analysis_interval_bytes| of memory | 101 // A new snapshot is taken every |analysis_interval_bytes| of memory |
102 // allocation. The oldest record is at the beginning. The most recent record, | 102 // allocation. The oldest record is at the beginning. The most recent record, |
103 // taken at the time the report was generated, is at the end. | 103 // taken at the time the report was generated, is at the end. |
104 repeated AllocationBreakdown alloc_breakdown_history = 4; | 104 repeated AllocationBreakdown alloc_breakdown_history = 4; |
| 105 |
| 106 // The following two fields describe the last increasing trend in the number |
| 107 // of allocations from the size and call stack that generated this |
| 108 // leak report. |
| 109 // |
| 110 // |num_rising_intervals| equals timeslot_now - timeslot_drop, |
| 111 // where timeslot_drop is the timeslot number of the last frame that saw |
| 112 // a drop in the number of allocations (or 0 if there were no drops). |
| 113 // If it is < 32, it will be visible in the allocation history graph. |
| 114 // If it is >= 32, it will not be seen in the graph. |
| 115 // E.g. for history [3,2,4,4,7] |num_rising_intervals| equals 3. |
| 116 optional uint32 num_rising_intervals = 7; |
| 117 |
| 118 // Indicates the magnitude of the current uptrend in allocations. |
| 119 // E.g. for history [3,2,4,4,7] |num_allocs_increase| equals 5. |
| 120 optional uint32 num_allocs_increase = 8; |
| 121 |
| 122 ////////////////////////////////////////////////////////////////////////////// |
| 123 |
| 124 // Contains additional data about the memory usage from the OS. |
| 125 // There is no need to store the total system memory as it is |
| 126 // available under SystemProfileProto::Hardware::system_ram_mb. |
| 127 // |
| 128 // Next tag: 3 |
| 129 message MemoryUsageInfo { |
| 130 // How much available physical memory the system has. |
| 131 optional uint64 available_ram_mb = 1; |
| 132 |
| 133 // Total private working set memory across all Chrome processes. |
| 134 optional uint64 chrome_ram_usage_mb = 2; |
| 135 } |
| 136 |
| 137 // Information about the memory usage from the OS collected right after |
| 138 // the leak report was created in the leak detector. |
| 139 optional MemoryUsageInfo memory_usage_info = 9; |
105 } | 140 } |
OLD | NEW |