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

Side by Side Diff: src/tracing/tracing-category-observer.cc

Issue 2503183002: [Tracing] Implement IC statistics in tracing. (Closed)
Patch Set: update Created 4 years 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
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 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/tracing/tracing-category-observer.h" 5 #include "src/tracing/tracing-category-observer.h"
6 6
7 #include "src/flags.h" 7 #include "src/flags.h"
8 #include "src/tracing/trace-event.h" 8 #include "src/tracing/trace-event.h"
9 #include "src/v8.h" 9 #include "src/v8.h"
10 10
11 namespace v8 { 11 namespace v8 {
12 namespace tracing { 12 namespace tracing {
13 13
14 TracingCategoryObserver* TracingCategoryObserver::instance_ = nullptr; 14 TracingCategoryObserver* TracingCategoryObserver::instance_ = nullptr;
15 15
16 void TracingCategoryObserver::SetUp() { 16 void TracingCategoryObserver::SetUp() {
17 TracingCategoryObserver::instance_ = new TracingCategoryObserver(); 17 TracingCategoryObserver::instance_ = new TracingCategoryObserver();
18 v8::internal::V8::GetCurrentPlatform()->AddTraceStateObserver( 18 v8::internal::V8::GetCurrentPlatform()->AddTraceStateObserver(
19 TracingCategoryObserver::instance_); 19 TracingCategoryObserver::instance_);
20 TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats")); 20 TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats"));
21 TRACE_EVENT_WARMUP_CATEGORY( 21 TRACE_EVENT_WARMUP_CATEGORY(
22 TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats_sampling")); 22 TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats_sampling"));
23 TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("v8.gc_stats")); 23 TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("v8.gc_stats"));
24 TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("v8.ic_stats"));
24 } 25 }
25 26
26 void TracingCategoryObserver::TearDown() { 27 void TracingCategoryObserver::TearDown() {
27 v8::internal::V8::GetCurrentPlatform()->RemoveTraceStateObserver( 28 v8::internal::V8::GetCurrentPlatform()->RemoveTraceStateObserver(
28 TracingCategoryObserver::instance_); 29 TracingCategoryObserver::instance_);
29 delete TracingCategoryObserver::instance_; 30 delete TracingCategoryObserver::instance_;
30 } 31 }
31 32
32 void TracingCategoryObserver::OnTraceEnabled() { 33 void TracingCategoryObserver::OnTraceEnabled() {
33 bool enabled = false; 34 bool enabled = false;
34 TRACE_EVENT_CATEGORY_GROUP_ENABLED( 35 TRACE_EVENT_CATEGORY_GROUP_ENABLED(
35 TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats"), &enabled); 36 TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats"), &enabled);
36 if (enabled) { 37 if (enabled) {
37 v8::internal::FLAG_runtime_stats |= ENABLED_BY_TRACING; 38 v8::internal::FLAG_runtime_stats |= ENABLED_BY_TRACING;
38 } 39 }
39 TRACE_EVENT_CATEGORY_GROUP_ENABLED( 40 TRACE_EVENT_CATEGORY_GROUP_ENABLED(
40 TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats_sampling"), &enabled); 41 TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats_sampling"), &enabled);
41 if (enabled) { 42 if (enabled) {
42 v8::internal::FLAG_runtime_stats |= ENABLED_BY_SAMPLING; 43 v8::internal::FLAG_runtime_stats |= ENABLED_BY_SAMPLING;
43 } 44 }
44 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("v8.gc_stats"), 45 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("v8.gc_stats"),
45 &enabled); 46 &enabled);
46 if (enabled) { 47 if (enabled) {
47 v8::internal::FLAG_gc_stats |= ENABLED_BY_TRACING; 48 v8::internal::FLAG_gc_stats |= ENABLED_BY_TRACING;
48 } 49 }
50 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("v8.ic_stats"),
51 &enabled);
52 if (enabled) {
53 v8::internal::FLAG_ic_stats |= ENABLED_BY_TRACING;
54 }
49 } 55 }
50 56
51 void TracingCategoryObserver::OnTraceDisabled() { 57 void TracingCategoryObserver::OnTraceDisabled() {
52 v8::internal::FLAG_runtime_stats &= 58 v8::internal::FLAG_runtime_stats &=
53 ~(ENABLED_BY_TRACING | ENABLED_BY_SAMPLING); 59 ~(ENABLED_BY_TRACING | ENABLED_BY_SAMPLING);
54 v8::internal::FLAG_gc_stats &= ~ENABLED_BY_TRACING; 60 v8::internal::FLAG_gc_stats &= ~ENABLED_BY_TRACING;
61 v8::internal::FLAG_ic_stats &= ~ENABLED_BY_TRACING;
55 } 62 }
56 63
57 } // namespace tracing 64 } // namespace tracing
58 } // namespace v8 65 } // namespace v8
OLDNEW
« src/frames.cc ('K') | « src/ic/ic-stats.cc ('k') | src/type-hints.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698