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 |