Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Side by Side Diff: chrome/browser/net/websocket_experiment/websocket_experiment_runner.cc

Issue 515033: Cleanup histogram classes mixing SetFlags into FactoryGet arguments... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "chrome/browser/net/websocket_experiment/websocket_experiment_runner.h" 5 #include "chrome/browser/net/websocket_experiment/websocket_experiment_runner.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/field_trial.h" 8 #include "base/field_trial.h"
9 #include "base/histogram.h" 9 #include "base/histogram.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 10 matching lines...) Expand all
21 static const int kWebSocketConnectDeadlineSec = 10; 21 static const int kWebSocketConnectDeadlineSec = 10;
22 static const int kWebSocketEchoDeadlineSec = 5; 22 static const int kWebSocketEchoDeadlineSec = 5;
23 static const int kWebSocketIdleSec = 1; 23 static const int kWebSocketIdleSec = 1;
24 static const int kWebSocketPushDeadlineSec = 1; 24 static const int kWebSocketPushDeadlineSec = 1;
25 static const int kWebSocketByeDeadlineSec = 10; 25 static const int kWebSocketByeDeadlineSec = 10;
26 static const int kWebSocketCloseDeadlineSec = 5; 26 static const int kWebSocketCloseDeadlineSec = 5;
27 static const int kWebSocketTimeSec = 10; 27 static const int kWebSocketTimeSec = 10;
28 static const int kTimeBucketCount = 50; 28 static const int kTimeBucketCount = 50;
29 29
30 // TODO(ukai): Use new thread-safe-reference-counted Histograms. 30 // TODO(ukai): Use new thread-safe-reference-counted Histograms.
31 #define UPDATE_HISTOGRAM(name, sample, min, max, bucket_count) do { \ 31 #define UPDATE_HISTOGRAM_ENUMS(name, sample, boundary_value) do { \
32 switch (task_state_) { \ 32 switch (task_state_) { \
33 case STATE_RUN_WS: \ 33 case STATE_RUN_WS: \
34 { \ 34 { \
35 static scoped_refptr<Histogram> counter = \ 35 UMA_HISTOGRAM_ENUMERATION( \
36 LinearHistogram::LinearHistogramFactoryGet(\ 36 "WebSocketExperiment.Basic." name, \
37 "WebSocketExperiment.Basic." name, \ 37 sample, boundary_value); \
38 min, max, bucket_count); \
39 counter->SetFlags(kUmaTargetedHistogramFlag); \
40 counter->Add(sample); \
41 } \ 38 } \
42 break; \ 39 break; \
43 case STATE_RUN_WSS: \ 40 case STATE_RUN_WSS: \
44 { \ 41 { \
45 static scoped_refptr<Histogram> counter = \ 42 UMA_HISTOGRAM_ENUMERATION( \
46 LinearHistogram::LinearHistogramFactoryGet(\ 43 "WebSocketExperiment.Secure." name, \
47 "WebSocketExperiment.Secure." name, \ 44 sample, boundary_value); \
48 min, max, bucket_count); \
49 counter->SetFlags(kUmaTargetedHistogramFlag); \
50 counter->Add(sample); \
51 } \ 45 } \
52 break; \ 46 break; \
53 case STATE_RUN_WS_NODEFAULT_PORT: \ 47 case STATE_RUN_WS_NODEFAULT_PORT: \
54 { \ 48 { \
55 static scoped_refptr<Histogram> counter = \ 49 UMA_HISTOGRAM_ENUMERATION( \
56 LinearHistogram::LinearHistogramFactoryGet(\ 50 "WebSocketExperiment.NoDefaultPort." name, \
57 "WebSocketExperiment.NoDefaultPort." name, \ 51 sample, boundary_value); \
58 min, max, bucket_count); \
59 counter->SetFlags(kUmaTargetedHistogramFlag); \
60 counter->Add(sample); \
61 } \ 52 } \
62 break; \ 53 break; \
63 default: \ 54 default: \
64 NOTREACHED(); \ 55 NOTREACHED(); \
65 break; \ 56 break; \
66 } \ 57 } \
67 } while (0) 58 } while (0)
68 59
69 #define UPDATE_HISTOGRAM_TIMES(name, sample, min, max, bucket_count) do { \ 60 #define UPDATE_HISTOGRAM_TIMES(name, sample, min, max, bucket_count) do { \
70 switch (task_state_) { \ 61 switch (task_state_) { \
71 case STATE_RUN_WS: \ 62 case STATE_RUN_WS: \
72 { \ 63 { \
73 static scoped_refptr<Histogram> counter = \ 64 UMA_HISTOGRAM_CUSTOM_TIMES( \
74 Histogram::HistogramFactoryGet(\ 65 "WebSocketExperiment.Basic." name, \
75 "WebSocketExperiment.Basic." name, \ 66 sample, min, max, bucket_count); \
76 min, max, bucket_count); \
77 counter->SetFlags(kUmaTargetedHistogramFlag); \
78 counter->AddTime(sample); \
79 } \ 67 } \
80 break; \ 68 break; \
81 case STATE_RUN_WSS: \ 69 case STATE_RUN_WSS: \
82 { \ 70 { \
83 static scoped_refptr<Histogram> counter = \ 71 UMA_HISTOGRAM_CUSTOM_TIMES( \
84 Histogram::HistogramFactoryGet(\ 72 "WebSocketExperiment.Secure." name, \
85 "WebSocketExperiment.Secure." name, \ 73 sample, min, max, bucket_count); \
86 min, max, bucket_count); \
87 counter->SetFlags(kUmaTargetedHistogramFlag); \
88 counter->AddTime(sample); \
89 } \ 74 } \
90 break; \ 75 break; \
91 case STATE_RUN_WS_NODEFAULT_PORT: \ 76 case STATE_RUN_WS_NODEFAULT_PORT: \
92 { \ 77 { \
93 static scoped_refptr<Histogram> counter = \ 78 UMA_HISTOGRAM_CUSTOM_TIMES( \
94 Histogram::HistogramFactoryGet(\ 79 "WebSocketExperiment.NoDefaultPort." name, \
95 "WebSocketExperiment.NoDefaultPort." name, \ 80 sample, min, max, bucket_count); \
96 min, max, bucket_count); \
97 counter->SetFlags(kUmaTargetedHistogramFlag); \
98 counter->AddTime(sample); \
99 } \ 81 } \
100 break; \ 82 break; \
101 default: \ 83 default: \
102 NOTREACHED(); \ 84 NOTREACHED(); \
103 break; \ 85 break; \
104 } \ 86 } \
105 } while (0); 87 } while (0);
106 88
107 // Hold reference while experiment is running. 89 // Hold reference while experiment is running.
108 static scoped_refptr<WebSocketExperimentRunner> runner; 90 static scoped_refptr<WebSocketExperimentRunner> runner;
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 task_.reset(); 252 task_.reset();
271 253
272 DoLoop(); 254 DoLoop();
273 } 255 }
274 256
275 void WebSocketExperimentRunner::UpdateTaskResultHistogram( 257 void WebSocketExperimentRunner::UpdateTaskResultHistogram(
276 const WebSocketExperimentTask* task) { 258 const WebSocketExperimentTask* task) {
277 DCHECK(task); 259 DCHECK(task);
278 const WebSocketExperimentTask::Result& task_result = task->result(); 260 const WebSocketExperimentTask::Result& task_result = task->result();
279 261
280 UPDATE_HISTOGRAM("LastState", task_result.last_state, 262 UPDATE_HISTOGRAM_ENUMS("LastState", task_result.last_state,
281 1, WebSocketExperimentTask::NUM_STATES, 263 WebSocketExperimentTask::NUM_STATES);
282 WebSocketExperimentTask::NUM_STATES + 1);
283 264
284 UPDATE_HISTOGRAM_TIMES("UrlFetch", task_result.url_fetch, 265 UPDATE_HISTOGRAM_TIMES("UrlFetch", task_result.url_fetch,
285 base::TimeDelta::FromMilliseconds(1), 266 base::TimeDelta::FromMilliseconds(1),
286 base::TimeDelta::FromSeconds(kUrlFetchDeadlineSec), 267 base::TimeDelta::FromSeconds(kUrlFetchDeadlineSec),
287 kTimeBucketCount); 268 kTimeBucketCount);
288 269
289 if (task_result.last_state < 270 if (task_result.last_state <
290 WebSocketExperimentTask::STATE_WEBSOCKET_CONNECT_COMPLETE) 271 WebSocketExperimentTask::STATE_WEBSOCKET_CONNECT_COMPLETE)
291 return; 272 return;
292 273
(...skipping 27 matching lines...) Expand all
320 WebSocketExperimentTask::STATE_WEBSOCKET_CLOSE_COMPLETE) 301 WebSocketExperimentTask::STATE_WEBSOCKET_CLOSE_COMPLETE)
321 return; 302 return;
322 303
323 UPDATE_HISTOGRAM_TIMES("WebSocketTotal", task_result.websocket_total, 304 UPDATE_HISTOGRAM_TIMES("WebSocketTotal", task_result.websocket_total,
324 base::TimeDelta::FromMilliseconds(1), 305 base::TimeDelta::FromMilliseconds(1),
325 base::TimeDelta::FromSeconds(kWebSocketTimeSec), 306 base::TimeDelta::FromSeconds(kWebSocketTimeSec),
326 kTimeBucketCount); 307 kTimeBucketCount);
327 } 308 }
328 309
329 } // namespace chrome_browser_net_websocket_experiment 310 } // namespace chrome_browser_net_websocket_experiment
OLDNEW
« no previous file with comments | « chrome/browser/net/dns_host_info.cc ('k') | chrome/browser/renderer_host/buffered_resource_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698