| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/memory_pressure/memory_pressure_stats_collector.h" | 5 #include "components/memory_pressure/memory_pressure_stats_collector.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 case UMA_MEMORY_PRESSURE_LEVEL_CRITICAL: | 43 case UMA_MEMORY_PRESSURE_LEVEL_CRITICAL: |
| 44 return MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL; | 44 return MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL; |
| 45 case UMA_MEMORY_PRESSURE_LEVEL_COUNT: | 45 case UMA_MEMORY_PRESSURE_LEVEL_COUNT: |
| 46 NOTREACHED(); | 46 NOTREACHED(); |
| 47 break; | 47 break; |
| 48 } | 48 } |
| 49 NOTREACHED(); | 49 NOTREACHED(); |
| 50 return MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE; | 50 return MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE; |
| 51 } | 51 } |
| 52 | 52 |
| 53 // Converts a pressure state change to an UMA enumeration value. | |
| 54 MemoryPressureLevelChangeUMA MemoryPressureLevelChangeToUmaEnumValue( | |
| 55 MemoryPressureLevel old_level, | |
| 56 MemoryPressureLevel new_level) { | |
| 57 switch (old_level) { | |
| 58 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE: { | |
| 59 if (new_level == MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE) | |
| 60 return UMA_MEMORY_PRESSURE_LEVEL_CHANGE_NONE_TO_MODERATE; | |
| 61 if (new_level == MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL) | |
| 62 return UMA_MEMORY_PRESSURE_LEVEL_CHANGE_NONE_TO_CRITICAL; | |
| 63 break; // Should never happen; handled by the NOTREACHED below. | |
| 64 } | |
| 65 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE: { | |
| 66 if (new_level == MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE) | |
| 67 return UMA_MEMORY_PRESSURE_LEVEL_CHANGE_MODERATE_TO_NONE; | |
| 68 if (new_level == MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL) | |
| 69 return UMA_MEMORY_PRESSURE_LEVEL_CHANGE_MODERATE_TO_CRITICAL; | |
| 70 break; // Should never happen; handled by the NOTREACHED below. | |
| 71 } | |
| 72 case MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL: { | |
| 73 if (new_level == MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE) | |
| 74 return UMA_MEMORY_PRESSURE_LEVEL_CHANGE_CRITICAL_TO_MODERATE; | |
| 75 if (new_level == MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE) | |
| 76 return UMA_MEMORY_PRESSURE_LEVEL_CHANGE_CRITICAL_TO_MODERATE; | |
| 77 break; // Should never happen; handled by the NOTREACHED below. | |
| 78 } | |
| 79 } | |
| 80 NOTREACHED(); | |
| 81 return UMA_MEMORY_PRESSURE_LEVEL_CHANGE_NONE_TO_MODERATE; | |
| 82 } | |
| 83 | |
| 84 } // namespace | 53 } // namespace |
| 85 | 54 |
| 86 MemoryPressureStatsCollector::MemoryPressureStatsCollector( | 55 MemoryPressureStatsCollector::MemoryPressureStatsCollector( |
| 87 base::TickClock* tick_clock) | 56 base::TickClock* tick_clock) |
| 88 : tick_clock_(tick_clock), | 57 : tick_clock_(tick_clock), |
| 89 last_pressure_level_(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE) { | 58 last_pressure_level_(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE) { |
| 90 } | 59 } |
| 91 | 60 |
| 92 void MemoryPressureStatsCollector::UpdateStatistics( | 61 void MemoryPressureStatsCollector::UpdateStatistics( |
| 93 MemoryPressureLevel current_pressure_level) { | 62 MemoryPressureLevel current_pressure_level) { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 base::LinearHistogram::FactoryGet( | 111 base::LinearHistogram::FactoryGet( |
| 143 "Memory.PressureLevel", 1, UMA_MEMORY_PRESSURE_LEVEL_COUNT, | 112 "Memory.PressureLevel", 1, UMA_MEMORY_PRESSURE_LEVEL_COUNT, |
| 144 UMA_MEMORY_PRESSURE_LEVEL_COUNT + 1, | 113 UMA_MEMORY_PRESSURE_LEVEL_COUNT + 1, |
| 145 base::HistogramBase::kUmaTargetedHistogramFlag)); | 114 base::HistogramBase::kUmaTargetedHistogramFlag)); |
| 146 } | 115 } |
| 147 | 116 |
| 148 // static | 117 // static |
| 149 void MemoryPressureStatsCollector::ReportLevelChange( | 118 void MemoryPressureStatsCollector::ReportLevelChange( |
| 150 MemoryPressureLevel old_pressure_level, | 119 MemoryPressureLevel old_pressure_level, |
| 151 MemoryPressureLevel new_pressure_level) { | 120 MemoryPressureLevel new_pressure_level) { |
| 152 UMA_HISTOGRAM_ENUMERATION("Memory.PressureLevelChange", | 121 // TODO(chrisha): Report Memory.PressureLevelChange when this code is in use. |
| 153 MemoryPressureLevelChangeToUmaEnumValue( | |
| 154 old_pressure_level, new_pressure_level), | |
| 155 UMA_MEMORY_PRESSURE_LEVEL_CHANGE_COUNT); | |
| 156 } | 122 } |
| 157 | 123 |
| 158 } // namespace memory_pressure | 124 } // namespace memory_pressure |
| OLD | NEW |