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 "base/memory/memory_pressure_monitor_chromeos.h" | 5 #include "base/memory/memory_pressure_monitor_chromeos.h" |
6 | 6 |
7 #include <fcntl.h> | 7 #include <fcntl.h> |
8 #include <sys/select.h> | 8 #include <sys/select.h> |
9 | 9 |
10 #include "base/metrics/histogram_macros.h" | 10 #include "base/metrics/histogram_macros.h" |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 } | 152 } |
153 | 153 |
154 void MemoryPressureMonitor::StopObserving() { | 154 void MemoryPressureMonitor::StopObserving() { |
155 // If StartObserving failed, StopObserving will still get called. | 155 // If StartObserving failed, StopObserving will still get called. |
156 timer_.Stop(); | 156 timer_.Stop(); |
157 } | 157 } |
158 | 158 |
159 void MemoryPressureMonitor::CheckMemoryPressureAndRecordStatistics() { | 159 void MemoryPressureMonitor::CheckMemoryPressureAndRecordStatistics() { |
160 CheckMemoryPressure(); | 160 CheckMemoryPressure(); |
161 | 161 |
| 162 RecordMemoryPressure(current_memory_pressure_level_); |
162 // Record UMA histogram statistics for the current memory pressure level. | 163 // Record UMA histogram statistics for the current memory pressure level. |
| 164 // TODO(lgrey): Remove this once there's a usable history for the |
| 165 // "Memory.PressureLevel" statistic |
163 MemoryPressureLevelUMA memory_pressure_level_uma(MEMORY_PRESSURE_LEVEL_NONE); | 166 MemoryPressureLevelUMA memory_pressure_level_uma(MEMORY_PRESSURE_LEVEL_NONE); |
164 switch (current_memory_pressure_level_) { | 167 switch (current_memory_pressure_level_) { |
165 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE: | 168 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE: |
166 memory_pressure_level_uma = MEMORY_PRESSURE_LEVEL_NONE; | 169 memory_pressure_level_uma = MEMORY_PRESSURE_LEVEL_NONE; |
167 break; | 170 break; |
168 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE: | 171 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE: |
169 memory_pressure_level_uma = MEMORY_PRESSURE_LEVEL_MODERATE; | 172 memory_pressure_level_uma = MEMORY_PRESSURE_LEVEL_MODERATE; |
170 break; | 173 break; |
171 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL: | 174 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL: |
172 memory_pressure_level_uma = MEMORY_PRESSURE_LEVEL_CRITICAL; | 175 memory_pressure_level_uma = MEMORY_PRESSURE_LEVEL_CRITICAL; |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
273 return percentage; | 276 return percentage; |
274 } | 277 } |
275 | 278 |
276 void MemoryPressureMonitor::SetDispatchCallback( | 279 void MemoryPressureMonitor::SetDispatchCallback( |
277 const DispatchCallback& callback) { | 280 const DispatchCallback& callback) { |
278 dispatch_callback_ = callback; | 281 dispatch_callback_ = callback; |
279 } | 282 } |
280 | 283 |
281 } // namespace chromeos | 284 } // namespace chromeos |
282 } // namespace base | 285 } // namespace base |
OLD | NEW |