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

[scheduler] Add TaskDurationPerTaskType.{Foreground,Background} histograms.

Add new histograms to capture per-task-type task duration for different
renderer visibility states separately.

BUG=820494
R=rkaplow@chromium.org
CC=panicker@chromium.org

Change-Id: Icce8e262cc87a4d3f73809abdbcda34a124a1bb9
Reviewed-on: https://chromium-review.googlesource.com/955855Reviewed-by: default avatarRobert Kaplow <rkaplow@chromium.org>
Commit-Queue: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542222}
parent 1c2b70ba
......@@ -96,6 +96,10 @@ RendererMetricsHelper::RendererMetricsHelper(
DURATION_PER_QUEUE_TYPE_METRIC_NAME ".HiddenMusic"),
per_frame_status_duration_reporter(DURATION_PER_FRAME_TYPE_METRIC_NAME),
per_task_type_duration_reporter(DURATION_PER_TASK_TYPE_METRIC_NAME),
foreground_per_task_type_duration_reporter(
DURATION_PER_TASK_TYPE_METRIC_NAME ".Foreground"),
background_per_task_type_duration_reporter(
DURATION_PER_TASK_TYPE_METRIC_NAME ".Background"),
main_thread_task_load_state(MainThreadTaskLoadState::kUnknown) {
main_thread_load_tracker.Resume(now);
if (renderer_backgrounded) {
......@@ -230,6 +234,9 @@ void RendererMetricsHelper::RecordTaskMetrics(
per_queue_type_task_duration_reporter.RecordTask(queue_type, duration);
TaskType task_type = static_cast<TaskType>(task.task_type());
per_task_type_duration_reporter.RecordTask(task_type, duration);
if (renderer_scheduler_->main_thread_only().renderer_backgrounded) {
background_per_queue_type_task_duration_reporter.RecordTask(queue_type,
duration);
......@@ -276,6 +283,8 @@ void RendererMetricsHelper::RecordTaskMetrics(
backgrounded_at + base::TimeDelta::FromMinutes(5),
std::max(backgrounded_at + base::TimeDelta::FromMinutes(5),
end_time)));
background_per_task_type_duration_reporter.RecordTask(task_type, duration);
} else {
foreground_per_queue_type_task_duration_reporter.RecordTask(queue_type,
duration);
......@@ -310,6 +319,8 @@ void RendererMetricsHelper::RecordTaskMetrics(
foregrounded_at + base::TimeDelta::FromMinutes(3),
std::max(foregrounded_at + base::TimeDelta::FromMinutes(3),
end_time)));
foreground_per_task_type_duration_reporter.RecordTask(task_type, duration);
}
if (renderer_scheduler_->main_thread_only().renderer_hidden) {
......@@ -354,9 +365,6 @@ void RendererMetricsHelper::RecordTaskMetrics(
UMA_HISTOGRAM_ENUMERATION(COUNT_PER_FRAME_METRIC_NAME ".LongerThan1s",
frame_status, FrameStatus::kCount);
}
per_task_type_duration_reporter.RecordTask(
static_cast<TaskType>(task.task_type()), duration);
}
void RendererMetricsHelper::RecordMainThreadTaskLoad(base::TimeTicks time,
......
......@@ -119,6 +119,10 @@ class PLATFORM_EXPORT RendererMetricsHelper : public MetricsHelper {
using TaskDurationPerTaskTypeMetricReporter =
TaskDurationMetricReporter<TaskType>;
TaskDurationPerTaskTypeMetricReporter per_task_type_duration_reporter;
TaskDurationPerTaskTypeMetricReporter
foreground_per_task_type_duration_reporter;
TaskDurationPerTaskTypeMetricReporter
background_per_task_type_duration_reporter;
MainThreadTaskLoadState main_thread_task_load_state;
......
......@@ -112719,6 +112719,7 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
<suffix name="Background"/>
<suffix name="Foreground"/>
<affected-histogram name="RendererScheduler.TaskCPUDurationPerThreadType"/>
<affected-histogram name="RendererScheduler.TaskDurationPerTaskType"/>
<affected-histogram name="RendererScheduler.TaskDurationPerThreadType"/>
</histogram_suffixes>
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