5 #include "src/tracing/tracing-category-observer.h" 7 #include "src/base/atomic-utils.h" 9 #include "src/tracing/trace-event.h" 15 TracingCategoryObserver* TracingCategoryObserver::instance_ =
nullptr;
17 void TracingCategoryObserver::SetUp() {
18 TracingCategoryObserver::instance_ =
new TracingCategoryObserver();
19 v8::internal::V8::GetCurrentPlatform()
22 TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT(
"v8.runtime_stats"));
23 TRACE_EVENT_WARMUP_CATEGORY(
24 TRACE_DISABLED_BY_DEFAULT(
"v8.runtime_stats_sampling"));
25 TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT(
"v8.gc_stats"));
26 TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT(
"v8.ic_stats"));
29 void TracingCategoryObserver::TearDown() {
30 v8::internal::V8::GetCurrentPlatform()
33 delete TracingCategoryObserver::instance_;
36 void TracingCategoryObserver::OnTraceEnabled() {
38 TRACE_EVENT_CATEGORY_GROUP_ENABLED(
39 TRACE_DISABLED_BY_DEFAULT(
"v8.runtime_stats"), &enabled);
41 base::AsAtomic32::Relaxed_Store(
42 &v8::internal::FLAG_runtime_stats,
43 (v8::internal::FLAG_runtime_stats | ENABLED_BY_TRACING));
45 TRACE_EVENT_CATEGORY_GROUP_ENABLED(
46 TRACE_DISABLED_BY_DEFAULT(
"v8.runtime_stats_sampling"), &enabled);
48 base::AsAtomic32::Relaxed_Store(
49 &v8::internal::FLAG_runtime_stats,
50 v8::internal::FLAG_runtime_stats | ENABLED_BY_SAMPLING);
52 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT(
"v8.gc_stats"),
55 v8::internal::FLAG_gc_stats |= ENABLED_BY_TRACING;
57 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT(
"v8.ic_stats"),
60 v8::internal::FLAG_ic_stats |= ENABLED_BY_TRACING;
64 void TracingCategoryObserver::OnTraceDisabled() {
65 base::AsAtomic32::Relaxed_Store(
66 &v8::internal::FLAG_runtime_stats,
67 v8::internal::FLAG_runtime_stats &
68 ~(ENABLED_BY_TRACING | ENABLED_BY_SAMPLING));
69 v8::internal::FLAG_gc_stats &= ~ENABLED_BY_TRACING;
70 v8::internal::FLAG_ic_stats &= ~ENABLED_BY_TRACING;
virtual void AddTraceStateObserver(TraceStateObserver *)
virtual void RemoveTraceStateObserver(TraceStateObserver *)