From 56467ffc3812750eff45ac4f1e817885233bc0ad Mon Sep 17 00:00:00 2001 From: John Daggett Date: Tue, 26 Nov 2013 13:34:31 +0900 Subject: [PATCH] Bug 942054 - bump range and number of buckets for content reflow timings and add interruptible boolean. r=bz --- layout/base/nsPresShell.cpp | 16 +++++++++++++--- toolkit/components/telemetry/Histograms.json | 16 ++++++++++------ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/layout/base/nsPresShell.cpp b/layout/base/nsPresShell.cpp index 5bae532bdd4e..6b0d91808499 100644 --- a/layout/base/nsPresShell.cpp +++ b/layout/base/nsPresShell.cpp @@ -8203,6 +8203,9 @@ PresShell::DoVerifyReflow() } #endif +// used with Telemetry metrics +#define NS_LONG_REFLOW_TIME_MS 5000 + bool PresShell::ProcessReflowCommands(bool aInterruptible) { @@ -8295,6 +8298,9 @@ PresShell::ProcessReflowCommands(bool aInterruptible) } if (mDocument->GetRootElement()) { + TimeDuration elapsed = TimeStamp::Now() - timerStart; + int32_t intElapsed = int32_t(elapsed.ToMilliseconds()); + Telemetry::ID id; if (mDocument->GetRootElement()->IsXUL()) { id = mIsActive @@ -8302,10 +8308,14 @@ PresShell::ProcessReflowCommands(bool aInterruptible) : Telemetry::XUL_BACKGROUND_REFLOW_MS; } else { id = mIsActive - ? Telemetry::HTML_FOREGROUND_REFLOW_MS - : Telemetry::HTML_BACKGROUND_REFLOW_MS; + ? Telemetry::HTML_FOREGROUND_REFLOW_MS_2 + : Telemetry::HTML_BACKGROUND_REFLOW_MS_2; + } + Telemetry::Accumulate(id, intElapsed); + if (intElapsed > NS_LONG_REFLOW_TIME_MS) { + Telemetry::Accumulate(Telemetry::LONG_REFLOW_INTERRUPTIBLE, + aInterruptible ? 1 : 0); } - Telemetry::AccumulateTimeDelta(id, timerStart); } return !interrupted; diff --git a/toolkit/components/telemetry/Histograms.json b/toolkit/components/telemetry/Histograms.json index 260f81fccd90..b914eaf996bb 100644 --- a/toolkit/components/telemetry/Histograms.json +++ b/toolkit/components/telemetry/Histograms.json @@ -3002,18 +3002,22 @@ "n_buckets": 10, "description": "XUL reflows in background windows (ms)" }, - "HTML_FOREGROUND_REFLOW_MS": { + "HTML_FOREGROUND_REFLOW_MS_2": { "kind": "exponential", - "high": "3000", - "n_buckets": 10, + "high": "10000", + "n_buckets": 20, "description": "HTML reflows in foreground windows (ms)" }, - "HTML_BACKGROUND_REFLOW_MS": { + "HTML_BACKGROUND_REFLOW_MS_2": { "kind": "exponential", - "high": "3000", - "n_buckets": 10, + "high": "10000", + "n_buckets": 20, "description": "HTML reflows in background windows (ms)" }, + "LONG_REFLOW_INTERRUPTIBLE": { + "kind": "boolean", + "description": "Long running reflow, interruptible or not" + }, "XUL_INITIAL_FRAME_CONSTRUCTION": { "kind": "exponential", "high": "3000",