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

Side by Side Diff: src/counters.cc

Issue 2918703002: Localize counter class member functions. (Closed)
Patch Set: Move ctors back to private. Created 3 years, 6 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
« no previous file with comments | « src/counters.h ('k') | src/isolate.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project 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 "src/counters.h" 5 #include "src/counters.h"
6 6
7 #include <iomanip> 7 #include <iomanip>
8 8
9 #include "src/base/platform/platform.h" 9 #include "src/base/platform/platform.h"
10 #include "src/builtins/builtins-definitions.h" 10 #include "src/builtins/builtins-definitions.h"
11 #include "src/isolate.h" 11 #include "src/isolate.h"
12 #include "src/log-inl.h" 12 #include "src/log-inl.h"
13 #include "src/log.h" 13 #include "src/log.h"
14 14
15 namespace v8 { 15 namespace v8 {
16 namespace internal { 16 namespace internal {
17 17
18 StatsTable::StatsTable(Counters* counters) 18 StatsTable::StatsTable(Counters* counters)
19 : counters_(counters), 19 : lookup_function_(NULL),
20 lookup_function_(NULL),
21 create_histogram_function_(NULL), 20 create_histogram_function_(NULL),
22 add_histogram_sample_function_(NULL) {} 21 add_histogram_sample_function_(NULL) {}
23 22
24 void StatsTable::SetCounterFunction(CounterLookupCallback f) { 23 void StatsTable::SetCounterFunction(CounterLookupCallback f) {
25 lookup_function_ = f; 24 lookup_function_ = f;
26 counters_->ResetCounters();
27 } 25 }
28 26
29 int* StatsCounterBase::FindLocationInStatsTable() const { 27 int* StatsCounterBase::FindLocationInStatsTable() const {
30 return counters_->stats_table()->FindLocation(name_); 28 return counters_->FindLocation(name_);
31 } 29 }
32 30
33 StatsCounterThreadSafe::StatsCounterThreadSafe(Counters* counters, 31 StatsCounterThreadSafe::StatsCounterThreadSafe(Counters* counters,
34 const char* name) 32 const char* name)
35 : StatsCounterBase(counters, name) { 33 : StatsCounterBase(counters, name) {}
36 GetPtr();
37 }
38 34
39 void StatsCounterThreadSafe::Set(int Value) { 35 void StatsCounterThreadSafe::Set(int Value) {
40 if (ptr_) { 36 if (ptr_) {
41 base::LockGuard<base::Mutex> Guard(&mutex_); 37 base::LockGuard<base::Mutex> Guard(&mutex_);
42 SetLoc(ptr_, Value); 38 SetLoc(ptr_, Value);
43 } 39 }
44 } 40 }
45 41
46 void StatsCounterThreadSafe::Increment() { 42 void StatsCounterThreadSafe::Increment() {
47 if (ptr_) { 43 if (ptr_) {
(...skipping 16 matching lines...) Expand all
64 } 60 }
65 } 61 }
66 62
67 void StatsCounterThreadSafe::Decrement(int value) { 63 void StatsCounterThreadSafe::Decrement(int value) {
68 if (ptr_) { 64 if (ptr_) {
69 base::LockGuard<base::Mutex> Guard(&mutex_); 65 base::LockGuard<base::Mutex> Guard(&mutex_);
70 DecrementLoc(ptr_, value); 66 DecrementLoc(ptr_, value);
71 } 67 }
72 } 68 }
73 69
74 int* StatsCounterThreadSafe::GetPtr() {
75 base::LockGuard<base::Mutex> Guard(&mutex_);
76 ptr_ = FindLocationInStatsTable();
77 return ptr_;
78 }
79
80 void Histogram::AddSample(int sample) { 70 void Histogram::AddSample(int sample) {
81 if (Enabled()) { 71 if (Enabled()) {
82 counters_->stats_table()->AddHistogramSample(histogram_, sample); 72 counters_->AddHistogramSample(histogram_, sample);
83 } 73 }
84 } 74 }
85 75
86 void* Histogram::CreateHistogram() const { 76 void* Histogram::CreateHistogram() const {
87 return counters_->stats_table()->CreateHistogram(name_, min_, max_, 77 return counters_->CreateHistogram(name_, min_, max_, num_buckets_);
88 num_buckets_);
89 } 78 }
90 79
91 80
92 // Start the timer. 81 // Start the timer.
93 void HistogramTimer::Start() { 82 void HistogramTimer::Start() {
94 if (Enabled()) { 83 if (Enabled()) {
95 timer_.Start(); 84 timer_.Start();
96 } 85 }
97 Logger::CallEventLogger(counters()->isolate(), name(), Logger::START, true); 86 Logger::CallEventLogger(counters()->isolate(), name(), Logger::START, true);
98 } 87 }
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 "c:" "V8.SizeOf_CODE_AGE-" #name}, 239 "c:" "V8.SizeOf_CODE_AGE-" #name},
251 CODE_AGE_LIST_COMPLETE(SC) 240 CODE_AGE_LIST_COMPLETE(SC)
252 #undef SC 241 #undef SC
253 }; 242 };
254 // clang-format on 243 // clang-format on
255 for (const auto& counter : kStatsCounters) { 244 for (const auto& counter : kStatsCounters) {
256 this->*counter.member = StatsCounter(this, counter.caption); 245 this->*counter.member = StatsCounter(this, counter.caption);
257 } 246 }
258 } 247 }
259 248
260 void Counters::ResetCounters() { 249 void Counters::ResetCounterFunction(CounterLookupCallback f) {
250 stats_table_.SetCounterFunction(f);
251
261 #define SC(name, caption) name##_.Reset(); 252 #define SC(name, caption) name##_.Reset();
262 STATS_COUNTER_LIST_1(SC) 253 STATS_COUNTER_LIST_1(SC)
263 STATS_COUNTER_LIST_2(SC) 254 STATS_COUNTER_LIST_2(SC)
264 #undef SC 255 #undef SC
265 256
266 #define SC(name, caption) name##_.Reset(); 257 #define SC(name, caption) name##_.Reset();
267 STATS_COUNTER_TS_LIST(SC) 258 STATS_COUNTER_TS_LIST(SC)
268 #undef SC 259 #undef SC
269 260
270 #define SC(name) \ 261 #define SC(name) \
(...skipping 14 matching lines...) Expand all
285 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(SC) 276 FIXED_ARRAY_SUB_INSTANCE_TYPE_LIST(SC)
286 #undef SC 277 #undef SC
287 278
288 #define SC(name) \ 279 #define SC(name) \
289 count_of_CODE_AGE_##name##_.Reset(); \ 280 count_of_CODE_AGE_##name##_.Reset(); \
290 size_of_CODE_AGE_##name##_.Reset(); 281 size_of_CODE_AGE_##name##_.Reset();
291 CODE_AGE_LIST_COMPLETE(SC) 282 CODE_AGE_LIST_COMPLETE(SC)
292 #undef SC 283 #undef SC
293 } 284 }
294 285
286 void Counters::ResetCreateHistogramFunction(CreateHistogramCallback f) {
287 stats_table_.SetCreateHistogramFunction(f);
295 288
296 void Counters::ResetHistograms() {
297 #define HR(name, caption, min, max, num_buckets) name##_.Reset(); 289 #define HR(name, caption, min, max, num_buckets) name##_.Reset();
298 HISTOGRAM_RANGE_LIST(HR) 290 HISTOGRAM_RANGE_LIST(HR)
299 #undef HR 291 #undef HR
300 292
301 #define HT(name, caption, max, res) name##_.Reset(); 293 #define HT(name, caption, max, res) name##_.Reset();
302 HISTOGRAM_TIMER_LIST(HT) 294 HISTOGRAM_TIMER_LIST(HT)
303 #undef HT 295 #undef HT
304 296
305 #define AHT(name, caption) name##_.Reset(); 297 #define AHT(name, caption) name##_.Reset();
306 AGGREGATABLE_HISTOGRAM_TIMER_LIST(AHT) 298 AGGREGATABLE_HISTOGRAM_TIMER_LIST(AHT)
307 #undef AHT 299 #undef AHT
308 300
309 #define HP(name, caption) name##_.Reset(); 301 #define HP(name, caption) name##_.Reset();
310 HISTOGRAM_PERCENTAGE_LIST(HP) 302 HISTOGRAM_PERCENTAGE_LIST(HP)
311 #undef HP 303 #undef HP
312 304
313 #define HM(name, caption) name##_.Reset(); 305 #define HM(name, caption) name##_.Reset();
314 HISTOGRAM_LEGACY_MEMORY_LIST(HM) 306 HISTOGRAM_LEGACY_MEMORY_LIST(HM)
315 HISTOGRAM_MEMORY_LIST(HM) 307 HISTOGRAM_MEMORY_LIST(HM)
316 #undef HM 308 #undef HM
317 } 309 }
318 310
319 void Counters::InitializeHistograms() {
320 #define HR(name, caption, min, max, num_buckets) name##_.Enabled();
321 HISTOGRAM_RANGE_LIST(HR)
322 #undef HR
323
324 #define HT(name, caption, max, res) name##_.Enabled();
325 HISTOGRAM_TIMER_LIST(HT)
326 #undef HT
327
328 #define AHT(name, caption) name##_.Enabled();
329 AGGREGATABLE_HISTOGRAM_TIMER_LIST(AHT)
330 #undef AHT
331
332 #define HP(name, caption) name##_.Enabled();
333 HISTOGRAM_PERCENTAGE_LIST(HP)
334 #undef HP
335
336 #define HM(name, caption) name##_.Enabled();
337 HISTOGRAM_LEGACY_MEMORY_LIST(HM)
338 HISTOGRAM_MEMORY_LIST(HM)
339 #undef HM
340 }
341
342 class RuntimeCallStatEntries { 311 class RuntimeCallStatEntries {
343 public: 312 public:
344 void Print(std::ostream& os) { 313 void Print(std::ostream& os) {
345 if (total_call_count == 0) return; 314 if (total_call_count == 0) return;
346 std::sort(entries.rbegin(), entries.rend()); 315 std::sort(entries.rbegin(), entries.rend());
347 os << std::setw(50) << "Runtime Function/C++ Builtin" << std::setw(12) 316 os << std::setw(50) << "Runtime Function/C++ Builtin" << std::setw(12)
348 << "Time" << std::setw(18) << "Count" << std::endl 317 << "Time" << std::setw(18) << "Count" << std::endl
349 << std::string(88, '=') << std::endl; 318 << std::string(88, '=') << std::endl;
350 for (Entry& entry : entries) { 319 for (Entry& entry : entries) {
351 entry.SetTotal(total_time, total_call_count); 320 entry.SetTotal(total_time, total_call_count);
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 RuntimeCallStats::counters) { 554 RuntimeCallStats::counters) {
586 RuntimeCallCounter* counter = &(this->*counter_id); 555 RuntimeCallCounter* counter = &(this->*counter_id);
587 if (counter->count() > 0) counter->Dump(value); 556 if (counter->count() > 0) counter->Dump(value);
588 } 557 }
589 558
590 in_use_ = false; 559 in_use_ = false;
591 } 560 }
592 561
593 } // namespace internal 562 } // namespace internal
594 } // namespace v8 563 } // namespace v8
OLDNEW
« no previous file with comments | « src/counters.h ('k') | src/isolate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698