diff options
author | Gabriel Charette <gab@chromium.org> | 2018-06-09 14:45:34 +0900 |
---|---|---|
committer | Qijiang Fan <fqj@google.com> | 2020-06-05 09:38:20 +0900 |
commit | 7089697fb53fa61fe7bd7e1b96c6e6991341dd93 (patch) | |
tree | bcb9457dba378413dc540a9dc229e03777fc0bfd /base/message_loop/incoming_task_queue.cc | |
parent | edddfa6b735c0cb4e86127544347a02beb827fd5 (diff) | |
download | libchrome-7089697fb53fa61fe7bd7e1b96c6e6991341dd93.tar.gz |
[MessageLoop] Add metrics to diagnose delayed task queue issues.
TBR=fdoray@chromium.org
Bug: 850450, 786597
Change-Id: Iaa8a9d713c5202f371b0fd549d140bbe791e4089
Reviewed-on: https://chromium-review.googlesource.com/1094296
Commit-Queue: Gabriel Charette <gab@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565867}
CrOS-Libchrome-Original-Commit: a6b3d9d7242e5625cf85e51892591bc6597c9387
Diffstat (limited to 'base/message_loop/incoming_task_queue.cc')
-rw-r--r-- | base/message_loop/incoming_task_queue.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/base/message_loop/incoming_task_queue.cc b/base/message_loop/incoming_task_queue.cc index d6f4d640bf..83800d1675 100644 --- a/base/message_loop/incoming_task_queue.cc +++ b/base/message_loop/incoming_task_queue.cc @@ -11,6 +11,7 @@ #include "base/callback_helpers.h" #include "base/location.h" #include "base/message_loop/message_loop.h" +#include "base/metrics/histogram_macros.h" #include "base/synchronization/waitable_event.h" #include "base/time/time.h" #include "build/build_config.h" @@ -84,6 +85,10 @@ bool IncomingTaskQueue::AddToIncomingQueue(const Location& from_here, pending_task.is_high_res = true; } #endif + + if (!delay.is_zero()) + UMA_HISTOGRAM_LONG_TIMES("MessageLoop.DelayedTaskQueue.PostedDelay", delay); + return PostPendingTask(&pending_task); } @@ -126,6 +131,12 @@ void IncomingTaskQueue::RunTask(PendingTask* pending_task) { task_annotator_.RunTask("MessageLoop::PostTask", pending_task); } +void IncomingTaskQueue::ReportMetricsOnIdle() const { + UMA_HISTOGRAM_COUNTS_1M( + "MessageLoop.DelayedTaskQueue.PendingTasksCountOnIdle", + delayed_tasks_.Size()); +} + IncomingTaskQueue::TriageQueue::TriageQueue(IncomingTaskQueue* outer) : outer_(outer) {} @@ -250,6 +261,11 @@ void IncomingTaskQueue::DelayedQueue::Clear() { Pop(); } +size_t IncomingTaskQueue::DelayedQueue::Size() const { + DCHECK_CALLED_ON_VALID_SEQUENCE(outer_->sequence_checker_); + return queue_.size(); +} + IncomingTaskQueue::DeferredQueue::DeferredQueue(IncomingTaskQueue* outer) : outer_(outer) {} |