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 3 // found in the LICENSE file. 4 5 #include "src/tracing/tracing-category-observer.h" 6 7 #include "src/flags.h" 8 #include "src/tracing/trace-event.h" 9 #include "src/v8.h" 10 11 namespace v8 { 12 namespace tracing { 13 14 TracingCategoryObserver* TracingCategoryObserver::instance_ = nullptr; 15 SetUp()16void TracingCategoryObserver::SetUp() { 17 TracingCategoryObserver::instance_ = new TracingCategoryObserver(); 18 v8::internal::V8::GetCurrentPlatform()->AddTraceStateObserver( 19 TracingCategoryObserver::instance_); 20 TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats")); 21 TRACE_EVENT_WARMUP_CATEGORY( 22 TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats_sampling")); 23 TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("v8.gc_stats")); 24 } 25 TearDown()26void TracingCategoryObserver::TearDown() { 27 v8::internal::V8::GetCurrentPlatform()->RemoveTraceStateObserver( 28 TracingCategoryObserver::instance_); 29 delete TracingCategoryObserver::instance_; 30 } 31 OnTraceEnabled()32void TracingCategoryObserver::OnTraceEnabled() { 33 bool enabled = false; 34 TRACE_EVENT_CATEGORY_GROUP_ENABLED( 35 TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats"), &enabled); 36 if (enabled) { 37 v8::internal::FLAG_runtime_stats |= ENABLED_BY_TRACING; 38 } 39 TRACE_EVENT_CATEGORY_GROUP_ENABLED( 40 TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats_sampling"), &enabled); 41 if (enabled) { 42 v8::internal::FLAG_runtime_stats |= ENABLED_BY_SAMPLING; 43 } 44 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("v8.gc_stats"), 45 &enabled); 46 if (enabled) { 47 v8::internal::FLAG_gc_stats |= ENABLED_BY_TRACING; 48 } 49 } 50 OnTraceDisabled()51void TracingCategoryObserver::OnTraceDisabled() { 52 v8::internal::FLAG_runtime_stats &= 53 ~(ENABLED_BY_TRACING | ENABLED_BY_SAMPLING); 54 v8::internal::FLAG_gc_stats &= ~ENABLED_BY_TRACING; 55 } 56 57 } // namespace tracing 58 } // namespace v8 59