Commit 46290e3f authored by Greg Kraynov's avatar Greg Kraynov Committed by Commit Bot

Trace scheduler/base independently.

It's getting moved to //base, so renderer.scheduler tracing
category is inappropriate.

Bug: 783309
Change-Id: I8280a218188f2de721f752f1c58cdf6555cb0943
Reviewed-on: https://chromium-review.googlesource.com/1052130Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
Reviewed-by: default avatarBruce Dawson <brucedawson@chromium.org>
Reviewed-by: default avatarSami Kyöstilä <skyostil@chromium.org>
Commit-Queue: Greg Kraynov <kraynov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557531}
parent 4cdea8db
...@@ -69,7 +69,7 @@ const char* const kFilteredEventGroupNames[] = { ...@@ -69,7 +69,7 @@ const char* const kFilteredEventGroupNames[] = {
"gpu", // 0x20 "gpu", // 0x20
"input", // 0x40 "input", // 0x40
"netlog", // 0x80 "netlog", // 0x80
"renderer.scheduler", // 0x100 "sequence_manager", // 0x100
"toplevel", // 0x200 "toplevel", // 0x200
"v8", // 0x400 "v8", // 0x400
"disabled-by-default-cc.debug", // 0x800 "disabled-by-default-cc.debug", // 0x800
......
...@@ -52,7 +52,7 @@ base::Optional<base::TimeDelta> RealTimeDomain::DelayTillNextTask( ...@@ -52,7 +52,7 @@ base::Optional<base::TimeDelta> RealTimeDomain::DelayTillNextTask(
return base::TimeDelta(); // Makes DoWork post an immediate continuation. return base::TimeDelta(); // Makes DoWork post an immediate continuation.
base::TimeDelta delay = next_run_time - now; base::TimeDelta delay = next_run_time - now;
TRACE_EVENT1("renderer.scheduler", "RealTimeDomain::DelayTillNextTask", TRACE_EVENT1("sequence_manager", "RealTimeDomain::DelayTillNextTask",
"delay_ms", delay.InMillisecondsF()); "delay_ms", delay.InMillisecondsF());
// The next task is sometime in the future. DoWork will make sure it gets // The next task is sometime in the future. DoWork will make sure it gets
......
...@@ -7,12 +7,12 @@ ...@@ -7,12 +7,12 @@
#include <memory> #include <memory>
#include <utility> #include <utility>
#include "base/strings/stringprintf.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "base/trace_event/blame_context.h" #include "base/trace_event/blame_context.h"
#include "third_party/blink/renderer/platform/scheduler/base/task_queue_manager_impl.h" #include "third_party/blink/renderer/platform/scheduler/base/task_queue_manager_impl.h"
#include "third_party/blink/renderer/platform/scheduler/base/time_domain.h" #include "third_party/blink/renderer/platform/scheduler/base/time_domain.h"
#include "third_party/blink/renderer/platform/scheduler/base/work_queue.h" #include "third_party/blink/renderer/platform/scheduler/base/work_queue.h"
#include "third_party/blink/renderer/platform/scheduler/util/tracing_helper.h"
namespace blink { namespace blink {
namespace scheduler { namespace scheduler {
...@@ -467,7 +467,7 @@ void TaskQueueImpl::WakeUpForDelayedWork(LazyNow* lazy_now) { ...@@ -467,7 +467,7 @@ void TaskQueueImpl::WakeUpForDelayedWork(LazyNow* lazy_now) {
void TaskQueueImpl::TraceQueueSize() const { void TaskQueueImpl::TraceQueueSize() const {
bool is_tracing; bool is_tracing;
TRACE_EVENT_CATEGORY_GROUP_ENABLED( TRACE_EVENT_CATEGORY_GROUP_ENABLED(
TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), &is_tracing); TRACE_DISABLED_BY_DEFAULT("sequence_manager"), &is_tracing);
if (!is_tracing) if (!is_tracing)
return; return;
...@@ -477,7 +477,7 @@ void TaskQueueImpl::TraceQueueSize() const { ...@@ -477,7 +477,7 @@ void TaskQueueImpl::TraceQueueSize() const {
return; return;
base::AutoLock lock(immediate_incoming_queue_lock_); base::AutoLock lock(immediate_incoming_queue_lock_);
TRACE_COUNTER1(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), GetName(), TRACE_COUNTER1(TRACE_DISABLED_BY_DEFAULT("sequence_manager"), GetName(),
immediate_incoming_queue().size() + immediate_incoming_queue().size() +
main_thread_only().immediate_work_queue->Size() + main_thread_only().immediate_work_queue->Size() +
main_thread_only().delayed_work_queue->Size() + main_thread_only().delayed_work_queue->Size() +
...@@ -513,7 +513,10 @@ void TaskQueueImpl::AsValueInto(base::TimeTicks now, ...@@ -513,7 +513,10 @@ void TaskQueueImpl::AsValueInto(base::TimeTicks now,
DCHECK(main_thread_only().delayed_work_queue); DCHECK(main_thread_only().delayed_work_queue);
DCHECK(main_thread_only().immediate_work_queue); DCHECK(main_thread_only().immediate_work_queue);
state->SetString("task_queue_id", PointerToString(this)); state->SetString(
"task_queue_id",
base::StringPrintf("0x%" PRIx64, static_cast<uint64_t>(
reinterpret_cast<uintptr_t>(this))));
state->SetBoolean("enabled", IsQueueEnabled()); state->SetBoolean("enabled", IsQueueEnabled());
state->SetString("time_domain_name", state->SetString("time_domain_name",
main_thread_only().time_domain->GetName()); main_thread_only().time_domain->GetName());
...@@ -539,7 +542,13 @@ void TaskQueueImpl::AsValueInto(base::TimeTicks now, ...@@ -539,7 +542,13 @@ void TaskQueueImpl::AsValueInto(base::TimeTicks now,
"delayed_fence_seconds_from_now", "delayed_fence_seconds_from_now",
(main_thread_only().delayed_fence.value() - now).InSecondsF()); (main_thread_only().delayed_fence.value() - now).InSecondsF());
} }
if (AreVerboseSnapshotsEnabled()) {
bool verbose = false;
TRACE_EVENT_CATEGORY_GROUP_ENABLED(
TRACE_DISABLED_BY_DEFAULT("sequence_manager.verbose_snapshots"),
&verbose);
if (verbose) {
state->BeginArray("immediate_incoming_queue"); state->BeginArray("immediate_incoming_queue");
QueueAsValueInto(immediate_incoming_queue(), now, state); QueueAsValueInto(immediate_incoming_queue(), now, state);
state->EndArray(); state->EndArray();
......
...@@ -65,9 +65,16 @@ TaskQueueManagerImpl::TaskQueueManagerImpl( ...@@ -65,9 +65,16 @@ TaskQueueManagerImpl::TaskQueueManagerImpl(
weak_factory_(this) { weak_factory_(this) {
// TODO(altimin): Create a sequence checker here. // TODO(altimin): Create a sequence checker here.
DCHECK(controller_->RunsTasksInCurrentSequence()); DCHECK(controller_->RunsTasksInCurrentSequence());
TRACE_EVENT_WARMUP_CATEGORY("sequence_manager");
TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("sequence_manager"));
TRACE_EVENT_WARMUP_CATEGORY(
TRACE_DISABLED_BY_DEFAULT("sequence_manager.debug"));
TRACE_EVENT_WARMUP_CATEGORY(
TRACE_DISABLED_BY_DEFAULT("sequence_manager.verbose_snapshots"));
TRACE_EVENT_OBJECT_CREATED_WITH_ID( TRACE_EVENT_OBJECT_CREATED_WITH_ID(
TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), "TaskQueueManager", TRACE_DISABLED_BY_DEFAULT("sequence_manager"), "TaskQueueManager", this);
this);
main_thread_only().selector.SetTaskQueueSelectorObserver(this); main_thread_only().selector.SetTaskQueueSelectorObserver(this);
RegisterTimeDomain(main_thread_only().real_time_domain.get()); RegisterTimeDomain(main_thread_only().real_time_domain.get());
...@@ -78,8 +85,7 @@ TaskQueueManagerImpl::TaskQueueManagerImpl( ...@@ -78,8 +85,7 @@ TaskQueueManagerImpl::TaskQueueManagerImpl(
TaskQueueManagerImpl::~TaskQueueManagerImpl() { TaskQueueManagerImpl::~TaskQueueManagerImpl() {
TRACE_EVENT_OBJECT_DELETED_WITH_ID( TRACE_EVENT_OBJECT_DELETED_WITH_ID(
TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), "TaskQueueManager", TRACE_DISABLED_BY_DEFAULT("sequence_manager"), "TaskQueueManager", this);
this);
// TODO(altimin): restore default task runner automatically when // TODO(altimin): restore default task runner automatically when
// ThreadController is destroyed. // ThreadController is destroyed.
...@@ -152,9 +158,8 @@ void TaskQueueManagerImpl::SetObserver(Observer* observer) { ...@@ -152,9 +158,8 @@ void TaskQueueManagerImpl::SetObserver(Observer* observer) {
void TaskQueueManagerImpl::UnregisterTaskQueueImpl( void TaskQueueManagerImpl::UnregisterTaskQueueImpl(
std::unique_ptr<internal::TaskQueueImpl> task_queue) { std::unique_ptr<internal::TaskQueueImpl> task_queue) {
TRACE_EVENT1("renderer.scheduler", TRACE_EVENT1("sequence_manager", "TaskQueueManagerImpl::UnregisterTaskQueue",
"TaskQueueManagerImpl::UnregisterTaskQueue", "queue_name", "queue_name", task_queue->GetName());
task_queue->GetName());
DCHECK_CALLED_ON_VALID_THREAD(main_thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(main_thread_checker_);
main_thread_only().selector.RemoveQueue(task_queue.get()); main_thread_only().selector.RemoveQueue(task_queue.get());
...@@ -185,7 +190,7 @@ void TaskQueueManagerImpl::ReloadEmptyWorkQueues( ...@@ -185,7 +190,7 @@ void TaskQueueManagerImpl::ReloadEmptyWorkQueues(
} }
void TaskQueueManagerImpl::WakeUpReadyDelayedQueues(LazyNow* lazy_now) { void TaskQueueManagerImpl::WakeUpReadyDelayedQueues(LazyNow* lazy_now) {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"TaskQueueManagerImpl::WakeUpReadyDelayedQueues"); "TaskQueueManagerImpl::WakeUpReadyDelayedQueues");
for (TimeDomain* time_domain : main_thread_only().time_domains) { for (TimeDomain* time_domain : main_thread_only().time_domains) {
...@@ -260,7 +265,7 @@ base::Optional<base::PendingTask> TaskQueueManagerImpl::TakeTask() { ...@@ -260,7 +265,7 @@ base::Optional<base::PendingTask> TaskQueueManagerImpl::TakeTask() {
CHECK(Validate()); CHECK(Validate());
DCHECK_CALLED_ON_VALID_THREAD(main_thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(main_thread_checker_);
TRACE_EVENT0("renderer.scheduler", "TaskQueueManagerImpl::TakeTask"); TRACE_EVENT0("sequence_manager", "TaskQueueManagerImpl::TakeTask");
IncomingImmediateWorkMap queues_to_reload; IncomingImmediateWorkMap queues_to_reload;
...@@ -280,9 +285,8 @@ base::Optional<base::PendingTask> TaskQueueManagerImpl::TakeTask() { ...@@ -280,9 +285,8 @@ base::Optional<base::PendingTask> TaskQueueManagerImpl::TakeTask() {
bool should_run = bool should_run =
main_thread_only().selector.SelectWorkQueueToService(&work_queue); main_thread_only().selector.SelectWorkQueueToService(&work_queue);
TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID( TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID(
TRACE_DISABLED_BY_DEFAULT("renderer.scheduler.debug"), TRACE_DISABLED_BY_DEFAULT("sequence_manager.debug"), "TaskQueueManager",
"TaskQueueManager", this, this, AsValueWithSelectorResult(should_run, work_queue));
AsValueWithSelectorResult(should_run, work_queue));
if (!should_run) if (!should_run)
return base::nullopt; return base::nullopt;
...@@ -371,7 +375,7 @@ void TaskQueueManagerImpl::DidQueueTask( ...@@ -371,7 +375,7 @@ void TaskQueueManagerImpl::DidQueueTask(
void TaskQueueManagerImpl::NotifyWillProcessTask(ExecutingTask* executing_task, void TaskQueueManagerImpl::NotifyWillProcessTask(ExecutingTask* executing_task,
LazyNow* time_before_task) { LazyNow* time_before_task) {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"TaskQueueManagerImpl::NotifyWillProcessTaskObservers"); "TaskQueueManagerImpl::NotifyWillProcessTaskObservers");
if (executing_task->task_queue->GetQuiescenceMonitored()) if (executing_task->task_queue->GetQuiescenceMonitored())
main_thread_only().task_was_run_on_quiescence_monitored_queue = true; main_thread_only().task_was_run_on_quiescence_monitored_queue = true;
...@@ -385,14 +389,14 @@ void TaskQueueManagerImpl::NotifyWillProcessTask(ExecutingTask* executing_task, ...@@ -385,14 +389,14 @@ void TaskQueueManagerImpl::NotifyWillProcessTask(ExecutingTask* executing_task,
if (executing_task->task_queue->GetShouldNotifyObservers()) { if (executing_task->task_queue->GetShouldNotifyObservers()) {
{ {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"TaskQueueManager.WillProcessTaskObservers"); "TaskQueueManager.WillProcessTaskObservers");
for (auto& observer : main_thread_only().task_observers) for (auto& observer : main_thread_only().task_observers)
observer.WillProcessTask(executing_task->pending_task); observer.WillProcessTask(executing_task->pending_task);
} }
{ {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"TaskQueueManager.QueueNotifyWillProcessTask"); "TaskQueueManager.QueueNotifyWillProcessTask");
executing_task->task_queue->NotifyWillProcessTask( executing_task->task_queue->NotifyWillProcessTask(
executing_task->pending_task); executing_task->pending_task);
...@@ -408,14 +412,14 @@ void TaskQueueManagerImpl::NotifyWillProcessTask(ExecutingTask* executing_task, ...@@ -408,14 +412,14 @@ void TaskQueueManagerImpl::NotifyWillProcessTask(ExecutingTask* executing_task,
MonotonicTimeInSeconds(executing_task->task_start_time); MonotonicTimeInSeconds(executing_task->task_start_time);
{ {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"TaskQueueManager.WillProcessTaskTimeObservers"); "TaskQueueManager.WillProcessTaskTimeObservers");
for (auto& observer : main_thread_only().task_time_observers) for (auto& observer : main_thread_only().task_time_observers)
observer.WillProcessTask(task_start_time_sec); observer.WillProcessTask(task_start_time_sec);
} }
{ {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"TaskQueueManager.QueueOnTaskStarted"); "TaskQueueManager.QueueOnTaskStarted");
executing_task->task_queue->OnTaskStarted( executing_task->task_queue->OnTaskStarted(
executing_task->pending_task, executing_task->task_start_time); executing_task->pending_task, executing_task->task_start_time);
...@@ -431,7 +435,7 @@ void TaskQueueManagerImpl::NotifyWillProcessTask(ExecutingTask* executing_task, ...@@ -431,7 +435,7 @@ void TaskQueueManagerImpl::NotifyWillProcessTask(ExecutingTask* executing_task,
void TaskQueueManagerImpl::NotifyDidProcessTask( void TaskQueueManagerImpl::NotifyDidProcessTask(
const ExecutingTask& executing_task, const ExecutingTask& executing_task,
LazyNow* time_after_task) { LazyNow* time_after_task) {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"TaskQueueManagerImpl::NotifyDidProcessTaskObservers"); "TaskQueueManagerImpl::NotifyDidProcessTaskObservers");
base::ThreadTicks task_end_thread_time; base::ThreadTicks task_end_thread_time;
...@@ -448,28 +452,28 @@ void TaskQueueManagerImpl::NotifyDidProcessTask( ...@@ -448,28 +452,28 @@ void TaskQueueManagerImpl::NotifyDidProcessTask(
if (task_start_time_sec) { if (task_start_time_sec) {
task_end_time_sec = MonotonicTimeInSeconds(time_after_task->Now()); task_end_time_sec = MonotonicTimeInSeconds(time_after_task->Now());
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"TaskQueueManager.DidProcessTaskTimeObservers"); "TaskQueueManager.DidProcessTaskTimeObservers");
for (auto& observer : main_thread_only().task_time_observers) for (auto& observer : main_thread_only().task_time_observers)
observer.DidProcessTask(task_start_time_sec, task_end_time_sec); observer.DidProcessTask(task_start_time_sec, task_end_time_sec);
} }
{ {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"TaskQueueManager.DidProcessTaskObservers"); "TaskQueueManager.DidProcessTaskObservers");
for (auto& observer : main_thread_only().task_observers) for (auto& observer : main_thread_only().task_observers)
observer.DidProcessTask(executing_task.pending_task); observer.DidProcessTask(executing_task.pending_task);
} }
{ {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"TaskQueueManager.QueueNotifyDidProcessTask"); "TaskQueueManager.QueueNotifyDidProcessTask");
executing_task.task_queue->NotifyDidProcessTask( executing_task.task_queue->NotifyDidProcessTask(
executing_task.pending_task); executing_task.pending_task);
} }
{ {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"TaskQueueManager.QueueOnTaskCompleted"); "TaskQueueManager.QueueOnTaskCompleted");
if (task_start_time_sec && task_end_time_sec) { if (task_start_time_sec && task_end_time_sec) {
executing_task.task_queue->OnTaskCompleted( executing_task.task_queue->OnTaskCompleted(
......
...@@ -71,7 +71,7 @@ void ThreadControllerImpl::ScheduleWork() { ...@@ -71,7 +71,7 @@ void ThreadControllerImpl::ScheduleWork() {
} }
any_sequence().immediate_do_work_posted = true; any_sequence().immediate_do_work_posted = true;
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"ThreadControllerImpl::ScheduleWork::PostTask"); "ThreadControllerImpl::ScheduleWork::PostTask");
task_runner_->PostTask(FROM_HERE, immediate_do_work_closure_); task_runner_->PostTask(FROM_HERE, immediate_do_work_closure_);
} }
...@@ -101,7 +101,7 @@ void ThreadControllerImpl::ScheduleDelayedWork(base::TimeTicks now, ...@@ -101,7 +101,7 @@ void ThreadControllerImpl::ScheduleDelayedWork(base::TimeTicks now,
} }
base::TimeDelta delay = std::max(base::TimeDelta(), run_time - now); base::TimeDelta delay = std::max(base::TimeDelta(), run_time - now);
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"ThreadControllerImpl::ScheduleDelayedWork::PostDelayedTask", "ThreadControllerImpl::ScheduleDelayedWork::PostDelayedTask",
"delay_ms", delay.InMillisecondsF()); "delay_ms", delay.InMillisecondsF());
...@@ -234,7 +234,7 @@ void ThreadControllerImpl::OnBeginNestedRunLoop() { ...@@ -234,7 +234,7 @@ void ThreadControllerImpl::OnBeginNestedRunLoop() {
any_sequence().nesting_depth++; any_sequence().nesting_depth++;
if (!any_sequence().immediate_do_work_posted) { if (!any_sequence().immediate_do_work_posted) {
any_sequence().immediate_do_work_posted = true; any_sequence().immediate_do_work_posted = true;
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("renderer.scheduler"), TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("sequence_manager"),
"ThreadControllerImpl::OnBeginNestedRunLoop::PostTask"); "ThreadControllerImpl::OnBeginNestedRunLoop::PostTask");
task_runner_->PostTask(FROM_HERE, immediate_do_work_closure_); task_runner_->PostTask(FROM_HERE, immediate_do_work_closure_);
} }
......
...@@ -17,14 +17,6 @@ const char kTracingCategoryNameInfo[] = ...@@ -17,14 +17,6 @@ const char kTracingCategoryNameInfo[] =
const char kTracingCategoryNameDebug[] = const char kTracingCategoryNameDebug[] =
TRACE_DISABLED_BY_DEFAULT("renderer.scheduler.debug"); TRACE_DISABLED_BY_DEFAULT("renderer.scheduler.debug");
namespace {
// No trace events should be created with this category.
const char kTracingCategoryNameVerboseSnapshots[] =
TRACE_DISABLED_BY_DEFAULT("renderer.scheduler.enable_verbose_snapshots");
} // namespace
namespace internal { namespace internal {
void ValidateTracingCategory(const char* category) { void ValidateTracingCategory(const char* category) {
...@@ -40,19 +32,11 @@ void ValidateTracingCategory(const char* category) { ...@@ -40,19 +32,11 @@ void ValidateTracingCategory(const char* category) {
} // namespace internal } // namespace internal
bool AreVerboseSnapshotsEnabled() {
bool result = false;
TRACE_EVENT_CATEGORY_GROUP_ENABLED(kTracingCategoryNameVerboseSnapshots,
&result);
return result;
}
void WarmupTracingCategories() { void WarmupTracingCategories() {
// No need to warm-up toplevel category here. // No need to warm-up toplevel category here.
TRACE_EVENT_WARMUP_CATEGORY(kTracingCategoryNameDefault); TRACE_EVENT_WARMUP_CATEGORY(kTracingCategoryNameDefault);
TRACE_EVENT_WARMUP_CATEGORY(kTracingCategoryNameInfo); TRACE_EVENT_WARMUP_CATEGORY(kTracingCategoryNameInfo);
TRACE_EVENT_WARMUP_CATEGORY(kTracingCategoryNameDebug); TRACE_EVENT_WARMUP_CATEGORY(kTracingCategoryNameDebug);
TRACE_EVENT_WARMUP_CATEGORY(kTracingCategoryNameVerboseSnapshots);
} }
std::string PointerToString(const void* pointer) { std::string PointerToString(const void* pointer) {
......
...@@ -34,8 +34,6 @@ PLATFORM_EXPORT void ValidateTracingCategory(const char* category); ...@@ -34,8 +34,6 @@ PLATFORM_EXPORT void ValidateTracingCategory(const char* category);
PLATFORM_EXPORT void WarmupTracingCategories(); PLATFORM_EXPORT void WarmupTracingCategories();
PLATFORM_EXPORT bool AreVerboseSnapshotsEnabled();
PLATFORM_EXPORT std::string PointerToString(const void* pointer); PLATFORM_EXPORT std::string PointerToString(const void* pointer);
PLATFORM_EXPORT double TimeDeltaToMilliseconds(const base::TimeDelta& value); PLATFORM_EXPORT double TimeDeltaToMilliseconds(const base::TimeDelta& value);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment