Commit 9cfdcf45 authored by Alexander Timin's avatar Alexander Timin Committed by Commit Bot

[scheduler] Switch worker and compositor thread to use MetricsHelper.

This patch starts to actually use WorkerMetricsHelper and
CompositorMetricsHelper introduced in
https://chromium-review.googlesource.com/c/chromium/src/+/859497.

R=alexclarke@chromium.org
BUG=776416

Change-Id: Ifc025a439aba25613c2394a25fff08238f017b39
Reviewed-on: https://chromium-review.googlesource.com/860101Reviewed-by: default avatarAlex Clarke <alexclarke@chromium.org>
Commit-Queue: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528369}
parent 22b01e0c
...@@ -23,9 +23,7 @@ CompositorWorkerScheduler::CompositorWorkerScheduler( ...@@ -23,9 +23,7 @@ CompositorWorkerScheduler::CompositorWorkerScheduler(
: WorkerScheduler( : WorkerScheduler(
std::make_unique<WorkerSchedulerHelper>(std::move(task_queue_manager), std::make_unique<WorkerSchedulerHelper>(std::move(task_queue_manager),
this)), this)),
thread_(thread), thread_(thread) {}
compositor_thread_task_duration_reporter_(
"RendererScheduler.TaskDurationPerThreadType") {}
CompositorWorkerScheduler::~CompositorWorkerScheduler() = default; CompositorWorkerScheduler::~CompositorWorkerScheduler() = default;
...@@ -40,8 +38,8 @@ void CompositorWorkerScheduler::OnTaskCompleted( ...@@ -40,8 +38,8 @@ void CompositorWorkerScheduler::OnTaskCompleted(
const TaskQueue::Task& task, const TaskQueue::Task& task,
base::TimeTicks start, base::TimeTicks start,
base::TimeTicks end) { base::TimeTicks end) {
compositor_thread_task_duration_reporter_.RecordTask( compositor_metrics_helper_.RecordTaskMetrics(worker_task_queue, task, start,
ThreadType::kCompositorThread, end - start); end);
} }
scoped_refptr<base::SingleThreadTaskRunner> scoped_refptr<base::SingleThreadTaskRunner>
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "base/message_loop/message_loop.h" #include "base/message_loop/message_loop.h"
#include "base/single_thread_task_runner.h" #include "base/single_thread_task_runner.h"
#include "platform/PlatformExport.h" #include "platform/PlatformExport.h"
#include "platform/scheduler/child/compositor_metrics_helper.h"
#include "platform/scheduler/child/worker_scheduler.h" #include "platform/scheduler/child/worker_scheduler.h"
#include "platform/scheduler/util/task_duration_metric_reporter.h" #include "platform/scheduler/util/task_duration_metric_reporter.h"
#include "platform/scheduler/util/thread_type.h" #include "platform/scheduler/util/thread_type.h"
...@@ -59,8 +60,8 @@ class PLATFORM_EXPORT CompositorWorkerScheduler ...@@ -59,8 +60,8 @@ class PLATFORM_EXPORT CompositorWorkerScheduler
private: private:
base::Thread* thread_; base::Thread* thread_;
TaskDurationMetricReporter<ThreadType>
compositor_thread_task_duration_reporter_; CompositorMetricsHelper compositor_metrics_helper_;
DISALLOW_COPY_AND_ASSIGN(CompositorWorkerScheduler); DISALLOW_COPY_AND_ASSIGN(CompositorWorkerScheduler);
}; };
......
...@@ -57,9 +57,7 @@ WorkerSchedulerImpl::WorkerSchedulerImpl( ...@@ -57,9 +57,7 @@ WorkerSchedulerImpl::WorkerSchedulerImpl(
idle_helper_.IdleTaskRunner()), idle_helper_.IdleTaskRunner()),
load_tracker_(helper_->NowTicks(), load_tracker_(helper_->NowTicks(),
base::Bind(&ReportWorkerTaskLoad), base::Bind(&ReportWorkerTaskLoad),
kWorkerThreadLoadTrackerReportingInterval), kWorkerThreadLoadTrackerReportingInterval) {
worker_thread_task_duration_reporter_(
"RendererScheduler.TaskDurationPerThreadType") {
initialized_ = false; initialized_ = false;
thread_start_time_ = helper_->NowTicks(); thread_start_time_ = helper_->NowTicks();
load_tracker_.Resume(thread_start_time_); load_tracker_.Resume(thread_start_time_);
...@@ -142,8 +140,7 @@ void WorkerSchedulerImpl::OnTaskCompleted(WorkerTaskQueue* worker_task_queue, ...@@ -142,8 +140,7 @@ void WorkerSchedulerImpl::OnTaskCompleted(WorkerTaskQueue* worker_task_queue,
const TaskQueue::Task& task, const TaskQueue::Task& task,
base::TimeTicks start, base::TimeTicks start,
base::TimeTicks end) { base::TimeTicks end) {
worker_thread_task_duration_reporter_.RecordTask(ThreadType::kWorkerThread, worker_metrics_helper_.RecordTaskMetrics(worker_task_queue, task, start, end);
end - start);
} }
SchedulerHelper* WorkerSchedulerImpl::GetSchedulerHelperForTesting() { SchedulerHelper* WorkerSchedulerImpl::GetSchedulerHelperForTesting() {
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "platform/scheduler/base/task_time_observer.h" #include "platform/scheduler/base/task_time_observer.h"
#include "platform/scheduler/child/idle_canceled_delayed_task_sweeper.h" #include "platform/scheduler/child/idle_canceled_delayed_task_sweeper.h"
#include "platform/scheduler/child/idle_helper.h" #include "platform/scheduler/child/idle_helper.h"
#include "platform/scheduler/child/worker_metrics_helper.h"
#include "platform/scheduler/child/worker_scheduler.h" #include "platform/scheduler/child/worker_scheduler.h"
#include "platform/scheduler/util/task_duration_metric_reporter.h" #include "platform/scheduler/util/task_duration_metric_reporter.h"
#include "platform/scheduler/util/thread_load_tracker.h" #include "platform/scheduler/util/thread_load_tracker.h"
...@@ -73,7 +74,8 @@ class PLATFORM_EXPORT WorkerSchedulerImpl : public WorkerScheduler, ...@@ -73,7 +74,8 @@ class PLATFORM_EXPORT WorkerSchedulerImpl : public WorkerScheduler,
ThreadLoadTracker load_tracker_; ThreadLoadTracker load_tracker_;
bool initialized_; bool initialized_;
base::TimeTicks thread_start_time_; base::TimeTicks thread_start_time_;
TaskDurationMetricReporter<ThreadType> worker_thread_task_duration_reporter_;
WorkerMetricsHelper worker_metrics_helper_;
DISALLOW_COPY_AND_ASSIGN(WorkerSchedulerImpl); DISALLOW_COPY_AND_ASSIGN(WorkerSchedulerImpl);
}; };
......
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