Commit b8820f90 authored by François Doray's avatar François Doray Committed by Commit Bot

[threadpool] Report data from ThreadPool.NumTasksRunWhileQueuing.*

This adds a historical_histogram_data.md file in which data from the
ThreadPool.NumTasksRunWhileQueuing.* histogram is reported. Actions to
improve the situation described by this histogram are recommended.

Bug: 906079
Change-Id: I4872b6e0c38979161547c8e40ff3125bb971d50a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1804789
Commit-Queue: François Doray <fdoray@chromium.org>
Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
Reviewed-by: default avatarEtienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#698464}
parent cbceb79b
# Historical Histogram Data
This page presents data captured from `base::ThreadPool` histograms at a given
point in time so it can be used in future design decisions.
All data is 28-day aggregation on Stable channel.
## Number of tasks between waits
Number of tasks between two waits by a foreground worker thread in a
browser/renderer process.
Histogram name: ThreadPool.NumTasksBetweenWaits.(Browser/Renderer).Foreground
Date: August 2019
Values in tables below are percentiles.
### Windows
| Number of tasks | Browser process | Renderer process |
|-----------------|-----------------|------------------|
| 1 | 87 | 92 |
| 2 | 95 | 98 |
| 5 | 99 | 100 |
### Mac
| Number of tasks | Browser process | Renderer process |
|-----------------|-----------------|------------------|
| 1 | 81 | 90 |
| 2 | 92 | 97 |
| 5 | 98 | 100 |
### Android
| Number of tasks | Browser process | Renderer process |
|-----------------|-----------------|------------------|
| 1 | 92 | 96 |
| 2 | 97 | 98 |
| 5 | 99 | 100 |
## Number of tasks run while queueing
Number of tasks run by ThreadPool while task was queuing (from time task was
posted until time it was run). Recorded for dummy heartbeat tasks in the
*browser* process. The heartbeat recording avoids dependencies between this
report and other work in the system.
Histogram name: ThreadPool.NumTasksRunWhileQueuing.Browser.*
Date: September 2019
Values in tables below are percentiles.
Note: In *renderer* processes, on all platforms/priorities, 0 tasks are run
while queuing at 99.5th percentile.
### Windows
| Number of tasks | USER_BLOCKING | USER_VISIBLE | BEST_EFFORT |
|-----------------|---------------|--------------|-------------|
| 0 | 95 | 93 | 90 |
| 1 | 98 | 95 | 92 |
| 2 | 99 | 96 | 93 |
| 5 | 100 | 98 | 95 |
### Mac
| Number of tasks | USER_BLOCKING | USER_VISIBLE | BEST_EFFORT |
|-----------------|---------------|--------------|-------------|
| 0 | 100 | 100 | 99 |
| 1 | 100 | 100 | 99 |
| 2 | 100 | 100 | 99 |
| 5 | 100 | 100 | 100 |
### Android
| Number of tasks | USER_BLOCKING | USER_VISIBLE | BEST_EFFORT |
|-----------------|---------------|--------------|-------------|
| 0 | 99 | 98 | 97 |
| 1 | 100 | 99 | 99 |
| 2 | 100 | 99 | 99 |
| 5 | 100 | 100 | 100 |
### Chrome OS
For all priorities, 0 tasks are run while queueing at 99.5th percentile.
### Analysis
The number of tasks that run while a BEST_EFFORT task is queued is unexpectedly
low. We should explore creating threads less aggressively, at the expense of
keeping BEST_EFFORT tasks in the queue for a longer time. See
[Bug 906079](https://crbug.com/906079).
......@@ -41,25 +41,6 @@
#include "base/win/windows_version.h"
#endif // defined(OS_WIN)
// Data from deprecated UMA histograms:
//
// ThreadPool.NumTasksBetweenWaits.(Browser/Renderer).Foreground, August 2019
// Number of tasks between two waits by a foreground worker thread in a
// browser/renderer process.
//
// Windows (browser/renderer)
// 1 at 87th percentile / 92th percentile
// 2 at 95th percentile / 98th percentile
// 5 at 99th percentile / 100th percentile
// Mac (browser/renderer)
// 1 at 81th percentile / 90th percentile
// 2 at 92th percentile / 97th percentile
// 5 at 98th percentile / 100th percentile
// Android (browser/renderer)
// 1 at 92th percentile / 96th percentile
// 2 at 97th percentile / 98th percentile
// 5 at 99th percentile / 100th percentile
namespace base {
namespace internal {
......
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