| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012 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 CHROME_BROWSER_PERFORMANCE_MONITOR_METRIC_H_ | |
| 6 #define CHROME_BROWSER_PERFORMANCE_MONITOR_METRIC_H_ | |
| 7 | |
| 8 #include <string> | |
| 9 #include "base/time/time.h" | |
| 10 | |
| 11 namespace performance_monitor { | |
| 12 | |
| 13 // IMPORTANT: To add new metrics, please | |
| 14 // - Place the new metric above METRIC_NUMBER_OF_METRICS. | |
| 15 // - Add a member to the MetricKeyChar enum in key_builder.cc. | |
| 16 // - Add the appropriate messages in generated_resources.grd. | |
| 17 // - Add the appropriate functions in | |
| 18 // chrome/browser/ui/webui/performance_monitor/performance_monitor_l10n.h. | |
| 19 enum MetricType { | |
| 20 METRIC_UNDEFINED, | |
| 21 | |
| 22 // CPU and memory usage are combined for all Chrome-related processes. | |
| 23 METRIC_CPU_USAGE, | |
| 24 METRIC_PRIVATE_MEMORY_USAGE, | |
| 25 METRIC_SHARED_MEMORY_USAGE, | |
| 26 | |
| 27 // Timing measurements; these are all independent metrics (e.g., session | |
| 28 // restore time is independent of startup time, even though they may happen | |
| 29 // in sequence). Test startup time refers to any non-normal startup time, e.g. | |
| 30 // when we run test suites. | |
| 31 METRIC_STARTUP_TIME, | |
| 32 METRIC_TEST_STARTUP_TIME, | |
| 33 METRIC_SESSION_RESTORE_TIME, | |
| 34 METRIC_PAGE_LOAD_TIME, | |
| 35 | |
| 36 // Total number of bytes read since PerformanceMonitor first started running. | |
| 37 METRIC_NETWORK_BYTES_READ, | |
| 38 | |
| 39 METRIC_NUMBER_OF_METRICS | |
| 40 }; | |
| 41 | |
| 42 struct Metric { | |
| 43 public: | |
| 44 Metric(); | |
| 45 Metric(MetricType metric_type, | |
| 46 const base::Time& metric_time, | |
| 47 const double metric_value); | |
| 48 Metric(MetricType metric_type, | |
| 49 const std::string& metric_time, | |
| 50 const std::string& metric_value); | |
| 51 ~Metric(); | |
| 52 | |
| 53 // Check the value in the metric to make sure that it is reasonable. Since | |
| 54 // some metric-gathering methods will fail and return incorrect values, we | |
| 55 // need to try to weed these out as best we can. | |
| 56 bool IsValid() const; | |
| 57 | |
| 58 // This converts the double stored in value to a string format. This will | |
| 59 // not perform any checking on the validity of the metric, and only makes | |
| 60 // sense if the metric IsValid(). | |
| 61 std::string ValueAsString() const; | |
| 62 | |
| 63 MetricType type; | |
| 64 base::Time time; | |
| 65 double value; | |
| 66 }; | |
| 67 | |
| 68 } // namespace performance_monitor | |
| 69 | |
| 70 #endif // CHROME_BROWSER_PERFORMANCE_MONITOR_METRIC_H_ | |
| OLD | NEW |