High-resolution (nano/microseconds) performance metrics shouldn't be logged on low-resolution clients |
||||||||||||
Issue descriptionTurns out that TimeTicks::Now() isn't guaranteed to be high-resolution (ref. TimeTicks::IsHighResolution(). I think this explains the non-smooth distribution seen in the histogram. I don't think we want to ignore the histogram on systems that don't have high resolution ticks but we should split the histogram based on TimeTicks::IsHighResolution() to at least unmerge signals from wildly different systems?
,
Feb 1 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9350f6e61ceef7ffacb5f39fbf472c2ac4f95cc9 commit 9350f6e61ceef7ffacb5f39fbf472c2ac4f95cc9 Author: Gabriel Charette <gab@chromium.org> Date: Thu Feb 01 17:31:57 2018 Add Windows.HasHighResolutionTimeTicks metric. This will help identify the portion of our population that is still susceptible to a poor ticks clock (last update on this is in time_win.cc and dates to 2015, not clear which data source this was based on). R=asvitkine@chromium.org Bug: 807615 Change-Id: I76627355c1357f1ad6c80ba461798facd41718b0 Reviewed-on: https://chromium-review.googlesource.com/897606 Commit-Queue: Gabriel Charette <gab@chromium.org> Reviewed-by: Alexei Svitkine <asvitkine@chromium.org> Cr-Commit-Position: refs/heads/master@{#533716} [modify] https://crrev.com/9350f6e61ceef7ffacb5f39fbf472c2ac4f95cc9/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc [modify] https://crrev.com/9350f6e61ceef7ffacb5f39fbf472c2ac4f95cc9/tools/metrics/histograms/histograms.xml
,
Feb 5 2018
Would like to get r533716 on Stable as soon as possible. This is a trivial CL that will give us histogram data to inform development on trunk. Ideally would merge up to M64 and take the next train to a minor Stable update. Thanks!
,
Feb 5 2018
This bug requires manual review: Request affecting a post-stable build Please contact the milestone owner if you have questions. Owners: cmasso@(Android), cmasso@(iOS), kbleicher@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Feb 5 2018
,
Feb 5 2018
Oh and of course I did verify that this WAI on latest Canary. Thanks!
,
Feb 5 2018
What are the implications if we wait until M65? This doesn't seem to be fixing a user-facing critical issue immediately (however the metrics will be helpful). My recommendation is to just wait until M65 if it can wait. If it's absolutely critical, let me know and we'll need to write a postmortem for this in addition.
,
Feb 5 2018
,
Feb 5 2018
This isn't user-facing critical, but it's trivial and will help save a ~4 week wait cycle for devs. This is logging a boolean based on machine state and can't possibly have an undesired side-effect. PS: Thought we were being more lenient on helping getting metrics on Stable when trivial? This was seen as a big burden on dev time at the time (fall is last I heard this being discussed). The problem being that by the time the data is gathered, devs have usually moved on and the problem stuck behind...
,
Feb 5 2018
I agree that if metrics related and very-safe merge requests can be made earlier prior to stable, or even during the first week of stable promotion, then yes we can be lenient towards approving. However for post-stable merges, and especially for M64 which has been out for 2 weeks now, and we're investigating some very critical user facing issues, there should not be an expectation that merges this late are to be approved. However, if these metrics are absolutely needed to solve a very critical issue, then yes. There is a risk with any change, especially if it's touching stable users directly. And at this stage of stable rollout, it's hard to accept risk unless it's absolutely needed. Approving this change for M65.
,
Feb 5 2018
Pls merge your change to M65 branch 3325 ASAP so we can pick it up for tomorrow's dev release. Thank you.
,
Feb 5 2018
I'll take care of the merge as gab@ is UTC+1
,
Feb 5 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dc6fe8973d411dbec0b06513761cea1044300597 commit dc6fe8973d411dbec0b06513761cea1044300597 Author: Gabriel Charette <gab@chromium.org> Date: Mon Feb 05 21:34:19 2018 Add Windows.HasHighResolutionTimeTicks metric. This will help identify the portion of our population that is still susceptible to a poor ticks clock (last update on this is in time_win.cc and dates to 2015, not clear which data source this was based on). R=asvitkine@chromium.org Bug: 807615 Change-Id: I76627355c1357f1ad6c80ba461798facd41718b0 Reviewed-on: https://chromium-review.googlesource.com/897606 Commit-Queue: Gabriel Charette <gab@chromium.org> Reviewed-by: Alexei Svitkine <asvitkine@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#533716}(cherry picked from commit 9350f6e61ceef7ffacb5f39fbf472c2ac4f95cc9) Reviewed-on: https://chromium-review.googlesource.com/902703 Reviewed-by: Robert Liao <robliao@chromium.org> Cr-Commit-Position: refs/branch-heads/3325@{#321} Cr-Branched-From: bc084a8b5afa3744a74927344e304c02ae54189f-refs/heads/master@{#530369} [modify] https://crrev.com/dc6fe8973d411dbec0b06513761cea1044300597/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc [modify] https://crrev.com/dc6fe8973d411dbec0b06513761cea1044300597/tools/metrics/histograms/histograms.xml
,
Feb 5 2018
Got it, thanks And thanks Rob for the merge!
,
Feb 5 2018
,
May 16 2018
As discussed with metrics team, we'll introduce a macro specific to high-resolution metrics that will skip reporting for low-resolution clients. While dropping reports isn't fun. These reports are useless and even splitting them out to a separate metric wouldn't help as the reason the microseconds metrics are as such is because that's where all the data is. As such a ~16ms resolution isn't nearly sufficient and merely adds noise at the moment.
,
May 16 2018
Here's a list of all existing (non-obsolete) metrics with unit="microseconds" (extracted by \1's in regex = r'<histogram .*name=("[^"]+").*(\n.+)*units="microseconds".*(\n.+)*':
Given there are 297 items I suggest we introduce the new macro and add a textual warning to the definition of each of these histograms so that their owners can fix them if they still use them (it's unrealistic to assume manual migration of 297 histograms by a single engineer IMO). Beyond adding a textual warning, I can also send an email to the relevant histogram owners.
"Android.MemoryPressureMonitor.GetMyMemoryState.Failed.Time"
"Android.MemoryPressureMonitor.GetMyMemoryState.Succeeded.Time"
"Blink.Binding.CreateV8ContextForMainFrame"
"Blink.Binding.CreateV8ContextForNonMainFrame"
"Blink.Binding.InitializeMainLocalWindowProxy"
"Blink.Binding.InitializeMainRemoteWindowProxy"
"Blink.Binding.InitializeMainWindowProxy"
"Blink.Binding.InitializeNonMainLocalWindowProxy"
"Blink.Binding.InitializeNonMainRemoteWindowProxy"
"Blink.Binding.InitializeNonMainWindowProxy"
"Blink.Binding.InitializeWindowProxy"
"Blink.Canvas.DrawImage"
"Blink.Canvas.GetImageData"
"Blink.Canvas.OffscreenCommitTimer"
"Blink.Canvas.PutImageData"
"Blink.Canvas.ToBlob.CompleteEncodingDelay"
"Blink.Canvas.ToBlob.IdleEncodeDuration"
"Blink.Canvas.ToBlob.InitiateEncodingDelay"
"Blink.Canvas.ToBlobDuration"
"Blink.Canvas.ToDataURL"
"Blink.Compositing.UpdateTime"
"Blink.CookieJar.SyncCookiesSetTime"
"Blink.CookieJar.SyncCookiesTime"
"Blink.EventListenerDuration.Resize"
"Blink.Fetch.RequestResourceTime"
"Blink.IntersectionObservation.UpdateTime"
"Blink.Paint.UpdateTime"
"Blink.PaintInvalidation.UpdateTime"
"Blink.PrePaint.UpdateTime"
"Blink.ScrollingCoordinator.UpdateTime"
"Blink.StyleAndLayout.UpdateTime"
"Chromoting.Input.EventLatency"
"Compositing.Browser.DisplayListRecordingSource.UpdateUs"
"Compositing.Browser.HitTestTimeToFindClosestLayer"
"Compositing.Browser.LayersUpdateTime"
"Compositing.Browser.LayerTreeImpl.CalculateDrawPropertiesUs"
"Compositing.Browser.PicturePile.UpdateUs"
"Compositing.Browser.RasterTask.RasterUs"
"Compositing.DirectRenderer.GL.DrawFrameUs"
"Compositing.DirectRenderer.Software.DrawFrameUs"
"Compositing.Display.Draw.Occlusion.Calculation.Time"
"Compositing.DisplayListRecordingSource.UpdateUs"
"Compositing.LayerTreeImpl.FindClosestMatchingLayerUs"
"Compositing.PicturePile.UpdateUs"
"Compositing.RasterTask.RasterUs"
"Compositing.Renderer.DisplayListRecordingSource.UpdateUs"
"Compositing.Renderer.HitTestTimeToFindClosestLayer"
"Compositing.Renderer.LayersUpdateTime"
"Compositing.Renderer.LayerTreeImpl.CalculateDrawPropertiesUs"
"Compositing.Renderer.PicturePile.UpdateUs"
"Compositing.Renderer.RasterTask.RasterUs"
"Compositing.SurfaceAggregator.AggregateUs"
"CopylessPaste.ExtractionFailedUs"
"CopylessPaste.ExtractionUs"
"DocumentEventTiming.BeforeUnloadDuration"
"DocumentEventTiming.FreezeDuration"
"DocumentEventTiming.PageHideDuration"
"DocumentEventTiming.PageVibilityHiddenDuration"
"DocumentEventTiming.ResumeDuration"
"DocumentEventTiming.UnloadDuration"
"Download.DatabaseRemoveDownloadsTime"
"Drive.EntireFeedLoadTime"
"Drive.InitialFeedLoadTime"
"Drive.SearchMetadataTime"
"Event.AggregatedLatency.Renderer2"
"Event.CompositorThreadEventQueue.Continuous.HeadQueueingTime"
"Event.CompositorThreadEventQueue.Continuous.TailQueueingTime"
"Event.CompositorThreadEventQueue.NonContinuous.QueueingTime"
"Event.Latency.Browser"
"Event.Latency.Browser.ET_DROP_TARGET_EVENT"
"Event.Latency.Browser.ET_GESTURE_BEGIN"
"Event.Latency.Browser.ET_GESTURE_DOUBLE_TAP"
"Event.Latency.Browser.ET_GESTURE_END"
"Event.Latency.Browser.ET_GESTURE_LONG_PRESS"
"Event.Latency.Browser.ET_GESTURE_LONG_TAP"
"Event.Latency.Browser.ET_GESTURE_MULTIFINGER_SWIPE"
"Event.Latency.Browser.ET_GESTURE_PINCH_BEGIN"
"Event.Latency.Browser.ET_GESTURE_PINCH_END"
"Event.Latency.Browser.ET_GESTURE_PINCH_UPDATE"
"Event.Latency.Browser.ET_GESTURE_SCROLL_BEGIN"
"Event.Latency.Browser.ET_GESTURE_SCROLL_END"
"Event.Latency.Browser.ET_GESTURE_SCROLL_UPDATE"
"Event.Latency.Browser.ET_GESTURE_TAP"
"Event.Latency.Browser.ET_GESTURE_TAP_CANCEL"
"Event.Latency.Browser.ET_GESTURE_TAP_DOWN"
"Event.Latency.Browser.ET_GESTURE_TWO_FINGER_TAP"
"Event.Latency.Browser.ET_KEY_PRESSED"
"Event.Latency.Browser.ET_KEY_RELEASED"
"Event.Latency.Browser.ET_MOUSE_CAPTURE_CHANGED"
"Event.Latency.Browser.ET_MOUSE_DRAGGED"
"Event.Latency.Browser.ET_MOUSE_ENTERED"
"Event.Latency.Browser.ET_MOUSE_EXITED"
"Event.Latency.Browser.ET_MOUSE_MOVED"
"Event.Latency.Browser.ET_MOUSE_RELEASED"
"Event.Latency.Browser.ET_MOUSEWHEEL"
"Event.Latency.Browser.ET_SCROLL"
"Event.Latency.Browser.ET_SCROLL_FLING_CANCEL"
"Event.Latency.Browser.ET_SCROLL_FLING_START"
"Event.Latency.Browser.ET_TOUCH_CANCELLED"
"Event.Latency.Browser.ET_TOUCH_MOVED"
"Event.Latency.Browser.ET_TOUCH_PRESSED"
"Event.Latency.Browser.ET_TOUCH_RELEASED"
"Event.Latency.Browser.ET_TOUCH_STATIONARY"
"Event.Latency.Browser.ET_TRANSLATED_KEY_PRESS"
"Event.Latency.Browser.ET_TRANSLATED_KEY_RELEASE"
"Event.Latency.Browser.ET_UNKNOWN"
"Event.Latency.Browser.KeyPressAcked"
"Event.Latency.Browser.KeyPressUI"
"Event.Latency.Browser.TouchAcked"
"Event.Latency.Browser.TouchUI"
"Event.Latency.Browser.WheelAcked"
"Event.Latency.Browser.WheelUI"
"Event.Latency.EndToEnd.KeyPress"
"Event.Latency.EndToEnd.Mouse"
"Event.Latency.HitTest"
"Event.Latency.HitTestRecursive"
"Event.Latency.OS"
"Event.Latency.Renderer"
"Event.Latency.Renderer2"
"Event.Latency.RendererImpl"
"Event.Latency.RendererImpl.GestureScroll"
"Event.Latency.RendererImpl.GestureScroll2"
"Event.Latency.Scroll.Wheel.TimeToHandled2"
"Event.Latency.Scroll.Wheel.TimeToScrollUpdateSwapBegin2"
"Event.Latency.ScrollBegin.Touch.GpuSwap2"
"Event.Latency.ScrollBegin.Touch.HandledToRendererSwap2"
"Event.Latency.ScrollBegin.Touch.TimeToHandled2"
"Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2"
"Event.Latency.ScrollBegin.Wheel.GpuSwap2"
"Event.Latency.ScrollBegin.Wheel.HandledToRendererSwap2"
"Event.Latency.ScrollBegin.Wheel.TimeToHandled2"
"Event.Latency.ScrollBegin.Wheel.TimeToScrollUpdateSwapBegin2"
"Event.Latency.ScrollUpdate.BrowserNotifiedToBeforeGpuSwap"
"Event.Latency.ScrollUpdate.GpuSwap"
"Event.Latency.ScrollUpdate.HandledToRendererSwap"
"Event.Latency.ScrollUpdate.RendererSwapToBrowserNotified"
"Event.Latency.ScrollUpdate.Touch.GpuSwap2"
"Event.Latency.ScrollUpdate.Touch.HandledToRendererSwap2"
"Event.Latency.ScrollUpdate.Touch.TimeToHandled2"
"Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin2"
"Event.Latency.ScrollUpdate.TouchToHandled"
"Event.Latency.ScrollUpdate.Wheel.GpuSwap2"
"Event.Latency.ScrollUpdate.Wheel.HandledToRendererSwap2"
"Event.Latency.ScrollUpdate.Wheel.TimeToHandled2"
"Event.Latency.ScrollUpdate.Wheel.TimeToScrollUpdateSwapBegin2"
"Event.Latency.Touch.TimeToFirstScrollUpdateSwapBegin2"
"Event.Latency.Touch.TimeToScrollUpdateSwapBegin2"
"Event.Latency.TouchToFirstScrollUpdateSwap"
"Event.Latency.TouchToFirstScrollUpdateSwapBegin"
"Event.Latency.TouchToScrollUpdateSwap"
"Event.Latency.TouchToScrollUpdateSwapBegin"
"Event.Latency.Wheel.TimeToFirstScrollUpdateSwapBegin2"
"Event.Latency.X11EventSource.UpdateServerTime"
"Event.MainThreadEventQueue.Continuous.FreshnessTime"
"Event.MainThreadEventQueue.Continuous.QueueingTime"
"Event.MainThreadEventQueue.NonContinuous.QueueingTime"
"Event.PassiveListeners.ForcedNonBlockingLatency"
"Event.PassiveListeners.ForcedNonBlockingLatencyDueToFling"
"Event.PassiveListeners.Latency"
"Event.Touch.TouchLatencyAfterPageLoad"
"Event.Touch.TouchLatencyBeforePageLoad"
"Event.Touch.TouchLatencyOutsideFling"
"Event.Touch.TouchStartLatencyDuringFling"
"Event.Touch.TouchStartLatencyOutsideFling"
"ExtensionContentVerifyJob.TimeSpentUS"
"Extensions.ApiBindingObjectGenerationTime"
"Extensions.Bindings.NativeBindingCreationTime"
"Extensions.Bindings.UpdateBindingsForContextTime"
"Extensions.ExtensionCreationTime"
"GData.EntireFeedLoadTime"
"GData.InitialFeedLoadTime"
"GPU.ANGLE.ProgramCache.BinaryCacheHitTimeUS"
"GPU.ANGLE.ProgramCache.BinaryCacheMissTimeUS"
"GPU.CollectContextGraphicsInfo"
"GPU.CreateBrowserCompositor"
"GPU.InitializeOneOffTime"
"GPU.ProgramCache.BinaryCacheHitTime"
"GPU.ProgramCache.BinaryCacheMissTime"
"GPU.ProgramCache.CompilationCacheHitTime"
"GPU.ProgramCache.CompilationCacheMissTime"
"GPU.ProgramCache.CompressDataTime"
"GPU.ProgramCache.DecompressDataTime"
"GPU.WinSAT.ReadResultsFileTime"
"Layout.MicroSecondsPerComplexText"
"Layout.MicroSecondsPerFloat"
"Layout.MicroSecondsPerNode"
"Layout.MicroSecondsPerPositioned"
"Layout.MicroSecondsPerSimpleText"
"Layout.MicroSecondsPerTD"
"Layout.ScrollAnchor.TimeToComputeAnchorNodeSelector"
"Layout.ScrollAnchor.TimeToFindAnchor"
"Layout.ScrollAnchor.TimeToRestoreAnchor"
"Linux.X11.ServerRTT"
"Media.Audio.Render.GetSourceDataTime.WebRTC"
"Media.Audio.Render.GetSourceDataTimeMax.WebRTC"
"Navigation.Intercept.WillStart"
"Net.ResourceLoader.ResponseStartToEnd"
"PageSerialization.MhtmlGeneration.EncodingTime.SingleFrame"
"PageSerialization.SerializationTime.CSSElement"
"PageSerialization.SerializationTime.Html"
"PageSerialization.SerializationTime.ImageElement"
"PreloadScanner.ExternalCSS.ScanTime"
"Renderer4.ImageDecodeTaskDurationUs"
"Renderer4.ImageDecodeTaskDurationUs.OutOfRaster"
"Renderer4.TextureCopyLatency"
"RendererScheduler.ExpectedQueueingTimeByTaskQueue"
"RendererScheduler.ExpectedTaskQueueingDuration2"
"RendererScheduler.ExpectedTaskQueueingDuration3"
"RendererScheduler.TaskTime"
"RendererScheduler.TaskTime2"
"SafeBrowsing.V4GetPrefixMatches.TimeUs"
"SB2.RemoteCall.CheckDelta"
"SB2.RemoteCall.CheckDispatchTime"
"Scheduling.ActivateDuration"
"Scheduling.ActivateDuration2"
"Scheduling.BeginImplFrameLatency2"
"Scheduling.BeginMainFrameIntervalCritical"
"Scheduling.BeginMainFrameIntervalCritical2"
"Scheduling.BeginMainFrameIntervalNotCritical"
"Scheduling.BeginMainFrameIntervalNotCritical2"
"Scheduling.BeginMainFrameQueueDurationCritical"
"Scheduling.BeginMainFrameQueueDurationCritical2"
"Scheduling.BeginMainFrameQueueDurationNotCritical"
"Scheduling.BeginMainFrameQueueDurationNotCritical2"
"Scheduling.BeginMainFrameStartToCommitDuration"
"Scheduling.BeginMainFrameStartToCommitDuration2"
"Scheduling.BeginMainFrameToCommitDuration"
"Scheduling.Browser.BeginMainFrameStartToCommit"
"Scheduling.Browser.BeginMainFrameStartToCommit2"
"Scheduling.CommitInterval"
"Scheduling.CommitInterval2"
"Scheduling.CommitToReadyToActivateDuration"
"Scheduling.CommitToReadyToActivateDuration2"
"Scheduling.DrawDuration"
"Scheduling.DrawDuration2"
"Scheduling.DrawInterval"
"Scheduling.DrawInterval2"
"Scheduling.DrawIntervalWithCompositedAnimations2"
"Scheduling.DrawIntervalWithMainThreadAnimations2"
"Scheduling.DrawIntervalWithMainThreadCompositableAnimations2"
"Scheduling.ImageInvalidationUpdateDuration"
"Scheduling.InvalidationToReadyToActivateDuration2"
"Scheduling.MainAndImplFrameTimeDelta"
"Scheduling.MainAndImplFrameTimeDelta2"
"Scheduling.PendingTreeDuration"
"Scheduling.PendingTreeRasterDuration"
"Scheduling.PrepareTilesDuration"
"Scheduling.PrepareTilesDuration2"
"Scheduling.ReadyToActivateToActivationDuration2"
"Scheduling.SwapToAckLatency"
"Scheduling.SwapToAckLatency2"
"Style.AuthorStyleSheet.ParseTime"
"Style.UpdateTime"
"SubresourceFilter.DocumentLoad.Activation.CPUDuration"
"SubresourceFilter.DocumentLoad.Activation.WallDuration"
"SubresourceFilter.DocumentLoad.ActivationComputingDelay"
"SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Allowed"
"SubresourceFilter.IndexRuleset.Verify.WallDuration"
"SubresourceFilter.PageLoad.Activation.CPUDuration"
"SubresourceFilter.PageLoad.Activation.WallDuration"
"SubresourceFilter.SafeBrowsing.CheckDispatchTime"
"SubresourceFilter.SubresourceLoad.Evaluation.CPUDuration"
"SubresourceFilter.SubresourceLoad.Evaluation.WallDuration"
"TaskScheduler.TaskLatencyMicroseconds"
"V8.AsmWasmTranslationMicroSeconds"
"V8.CompileCacheableMicroSeconds"
"V8.CompileDeserializeMicroSeconds"
"V8.CompileEvalMicroSeconds"
"V8.CompileInlineScriptMicroSeconds"
"V8.CompileLazyMicroSeconds"
"V8.CompileMicroSeconds"
"V8.CompileNoncacheableMicroSeconds"
"V8.CompileScriptMicroSeconds"
"V8.CompileScriptMicroSeconds.BackgroundThread"
"V8.CompileScriptMicroSeconds.ConsumeCache"
"V8.CompileScriptMicroSeconds.ConsumeCache.Failed"
"V8.CompileScriptMicroSeconds.IsolateCacheHit"
"V8.CompileScriptMicroSeconds.NoCache.CacheTooCold"
"V8.CompileScriptMicroSeconds.NoCache.InlineScript"
"V8.CompileScriptMicroSeconds.NoCache.Other"
"V8.CompileScriptMicroSeconds.NoCache.ScriptTooSmall"
"V8.CompileScriptMicroSeconds.ProduceCache"
"V8.CompileSerializeMicroSeconds"
"V8.GC.ParallelTaskLatencyMicroSeconds"
"V8.ParseLazyMicroSeconds"
"V8.ParseMicroSeconds"
"V8.PreParseMicroSeconds"
"V8.WasmCompileFunctionMicroSeconds"
"V8.WasmCompileModuleMicroSeconds"
"V8.WasmDecodeFunctionMicroSeconds"
"V8.WasmDecodeModuleMicroSeconds"
"V8.WasmExecutionTimeMicroSeconds"
"V8.WasmInstantiateModuleMicroSeconds"
"V8.WasmLazyCompilationMicroSeconds"
"Variations.HeaderConstructionTime"
"WebCore.DistillabilityUs"
"Windows.ComputeNativeWindowOcclusionTime"
,
May 16 2018
I see a lot of obsolete histograms on the list (e.g., some of the Blink.Canvas, many of the Event.Latency.Browser ones, and so on). Perhaps try again with a better check for obsoleteness? If the actual list of non-obsolete ones is shorter, we might consider a different strategy than the one proposed in comment #17.
,
May 16 2018
Oh oops I totally screwed up my last paste... here's a pass with same regex but first doing a delete pass for anything that matches '<histogram .*name=("[^"]+").*(\n.+)*units="microseconds".*(\n.+)*<obsolete>.*(\n.+)*'
Yields 182 results:
"Android.MemoryPressureMonitor.GetMyMemoryState.Failed.Time"
"Android.MemoryPressureMonitor.GetMyMemoryState.Succeeded.Time"
"Blink.Binding.CreateV8ContextForMainFrame"
"Blink.Binding.CreateV8ContextForNonMainFrame"
"Blink.Binding.InitializeMainLocalWindowProxy"
"Blink.Binding.InitializeMainRemoteWindowProxy"
"Blink.Binding.InitializeNonMainLocalWindowProxy"
"Blink.Binding.InitializeNonMainRemoteWindowProxy"
"Blink.Canvas.DrawImage"
"Blink.Canvas.GetImageData"
"Blink.Canvas.OffscreenCommitTimer"
"Blink.Canvas.PutImageData"
"Blink.Canvas.ToBlob.CompleteEncodingDelay"
"Blink.Canvas.ToBlob.InitiateEncodingDelay"
"Blink.Canvas.ToBlobDuration"
"Blink.Canvas.ToDataURL"
"Blink.Compositing.UpdateTime"
"Blink.CookieJar.SyncCookiesSetTime"
"Blink.CookieJar.SyncCookiesTime"
"Blink.Fetch.RequestResourceTime"
"Blink.IntersectionObservation.UpdateTime"
"Blink.Paint.UpdateTime"
"Blink.PrePaint.UpdateTime"
"Blink.ScrollingCoordinator.UpdateTime"
"Blink.StyleAndLayout.UpdateTime"
"Chromoting.Input.EventLatency"
"Compositing.Browser.HitTestTimeToFindClosestLayer"
"Compositing.Browser.LayersUpdateTime"
"Compositing.Browser.LayerTreeImpl.CalculateDrawPropertiesUs"
"Compositing.Browser.PicturePile.UpdateUs"
"Compositing.Browser.RasterTask.RasterUs"
"Compositing.DirectRenderer.GL.DrawFrameUs"
"Compositing.DirectRenderer.Software.DrawFrameUs"
"Compositing.Display.Draw.Occlusion.Calculation.Time"
"Compositing.Renderer.HitTestTimeToFindClosestLayer"
"Compositing.Renderer.LayersUpdateTime"
"Compositing.Renderer.LayerTreeImpl.CalculateDrawPropertiesUs"
"Compositing.Renderer.PicturePile.UpdateUs"
"Compositing.Renderer.RasterTask.RasterUs"
"Compositing.SurfaceAggregator.AggregateUs"
"CopylessPaste.ExtractionFailedUs"
"CopylessPaste.ExtractionUs"
"DocumentEventTiming.BeforeUnloadDuration"
"DocumentEventTiming.FreezeDuration"
"DocumentEventTiming.PageHideDuration"
"DocumentEventTiming.PageVibilityHiddenDuration"
"DocumentEventTiming.ResumeDuration"
"DocumentEventTiming.UnloadDuration"
"Drive.SearchMetadataTime"
"Event.AggregatedLatency.Renderer2"
"Event.CompositorThreadEventQueue.Continuous.HeadQueueingTime"
"Event.CompositorThreadEventQueue.Continuous.TailQueueingTime"
"Event.CompositorThreadEventQueue.NonContinuous.QueueingTime"
"Event.Latency.EndToEnd.KeyPress"
"Event.Latency.EndToEnd.Mouse"
"Event.Latency.HitTest"
"Event.Latency.HitTestRecursive"
"Event.Latency.OS"
"Event.Latency.Scroll.Wheel.TimeToHandled2"
"Event.Latency.Scroll.Wheel.TimeToScrollUpdateSwapBegin2"
"Event.Latency.ScrollBegin.Touch.GpuSwap2"
"Event.Latency.ScrollBegin.Touch.HandledToRendererSwap2"
"Event.Latency.ScrollBegin.Touch.TimeToHandled2"
"Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2"
"Event.Latency.ScrollBegin.Wheel.GpuSwap2"
"Event.Latency.ScrollBegin.Wheel.HandledToRendererSwap2"
"Event.Latency.ScrollBegin.Wheel.TimeToHandled2"
"Event.Latency.ScrollBegin.Wheel.TimeToScrollUpdateSwapBegin2"
"Event.Latency.ScrollUpdate.Touch.GpuSwap2"
"Event.Latency.ScrollUpdate.Touch.HandledToRendererSwap2"
"Event.Latency.ScrollUpdate.Touch.TimeToHandled2"
"Event.Latency.ScrollUpdate.Touch.TimeToScrollUpdateSwapBegin2"
"Event.Latency.ScrollUpdate.Wheel.GpuSwap2"
"Event.Latency.ScrollUpdate.Wheel.HandledToRendererSwap2"
"Event.Latency.ScrollUpdate.Wheel.TimeToHandled2"
"Event.Latency.ScrollUpdate.Wheel.TimeToScrollUpdateSwapBegin2"
"Event.PassiveListeners.ForcedNonBlockingLatencyDueToFling"
"Event.PassiveListeners.Latency"
"ExtensionContentVerifyJob.TimeSpentUS"
"Extensions.ApiBindingObjectGenerationTime"
"Extensions.Bindings.NativeBindingCreationTime"
"Extensions.Bindings.UpdateBindingsForContextTime"
"Extensions.ExtensionCreationTime"
"GPU.ANGLE.ProgramCache.BinaryCacheHitTimeUS"
"GPU.ANGLE.ProgramCache.BinaryCacheMissTimeUS"
"GPU.CollectContextGraphicsInfo"
"GPU.CreateBrowserCompositor"
"GPU.ProgramCache.BinaryCacheHitTime"
"GPU.ProgramCache.BinaryCacheMissTime"
"GPU.ProgramCache.CompilationCacheHitTime"
"GPU.ProgramCache.CompilationCacheMissTime"
"GPU.ProgramCache.CompressDataTime"
"GPU.ProgramCache.DecompressDataTime"
"GPU.WinSAT.ReadResultsFileTime"
"Layout.MicroSecondsPerComplexText"
"Layout.MicroSecondsPerFloat"
"Layout.MicroSecondsPerNode"
"Layout.MicroSecondsPerPositioned"
"Layout.MicroSecondsPerSimpleText"
"Layout.MicroSecondsPerTD"
"Layout.ScrollAnchor.TimeToComputeAnchorNodeSelector"
"Layout.ScrollAnchor.TimeToFindAnchor"
"Layout.ScrollAnchor.TimeToRestoreAnchor"
"Linux.X11.ServerRTT"
"Media.Audio.Render.GetSourceDataTime.WebRTC"
"Media.Audio.Render.GetSourceDataTimeMax.WebRTC"
"Navigation.Intercept.WillStart"
"Net.ResourceLoader.ResponseStartToEnd"
"PageSerialization.MhtmlGeneration.EncodingTime.SingleFrame"
"PageSerialization.SerializationTime.CSSElement"
"PageSerialization.SerializationTime.Html"
"PageSerialization.SerializationTime.ImageElement"
"PreloadScanner.ExternalCSS.ScanTime"
"Renderer4.ImageDecodeTaskDurationUs"
"Renderer4.ImageDecodeTaskDurationUs.OutOfRaster"
"Renderer4.TextureCopyLatency"
"RendererScheduler.ExpectedTaskQueueingDuration3"
"RendererScheduler.TaskTime2"
"SafeBrowsing.V4GetPrefixMatches.TimeUs"
"SB2.RemoteCall.CheckDelta"
"SB2.RemoteCall.CheckDispatchTime"
"Scheduling.ActivateDuration2"
"Scheduling.BeginImplFrameLatency2"
"Scheduling.BeginMainFrameIntervalCritical2"
"Scheduling.BeginMainFrameIntervalNotCritical2"
"Scheduling.BeginMainFrameQueueDurationCritical2"
"Scheduling.BeginMainFrameQueueDurationNotCritical2"
"Scheduling.BeginMainFrameStartToCommitDuration2"
"Scheduling.CommitInterval2"
"Scheduling.CommitToReadyToActivateDuration2"
"Scheduling.DrawDuration2"
"Scheduling.DrawInterval2"
"Scheduling.DrawIntervalWithCompositedAnimations2"
"Scheduling.DrawIntervalWithMainThreadAnimations2"
"Scheduling.InvalidationToReadyToActivateDuration2"
"Scheduling.MainAndImplFrameTimeDelta2"
"Scheduling.PendingTreeDuration"
"Scheduling.PendingTreeRasterDuration"
"Scheduling.PrepareTilesDuration2"
"Scheduling.ReadyToActivateToActivationDuration2"
"Scheduling.SwapToAckLatency2"
"Style.AuthorStyleSheet.ParseTime"
"Style.UpdateTime"
"SubresourceFilter.DocumentLoad.Activation.CPUDuration"
"SubresourceFilter.DocumentLoad.Activation.WallDuration"
"SubresourceFilter.DocumentLoad.ActivationComputingDelay"
"SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Allowed"
"SubresourceFilter.PageLoad.Activation.CPUDuration"
"SubresourceFilter.PageLoad.Activation.WallDuration"
"SubresourceFilter.SafeBrowsing.CheckDispatchTime"
"SubresourceFilter.SubresourceLoad.Evaluation.CPUDuration"
"SubresourceFilter.SubresourceLoad.Evaluation.WallDuration"
"TaskScheduler.HeartbeatLatencyMicroseconds"
"TaskScheduler.TaskLatencyMicroseconds"
"V8.AsmWasmTranslationMicroSeconds"
"V8.CompileCacheableMicroSeconds"
"V8.CompileDeserializeMicroSeconds"
"V8.CompileEvalMicroSeconds"
"V8.CompileLazyMicroSeconds"
"V8.CompileMicroSeconds"
"V8.CompileScriptMicroSeconds"
"V8.CompileScriptMicroSeconds.BackgroundThread"
"V8.CompileScriptMicroSeconds.ConsumeCache"
"V8.CompileScriptMicroSeconds.ConsumeCache.Failed"
"V8.CompileScriptMicroSeconds.IsolateCacheHit"
"V8.CompileScriptMicroSeconds.NoCache.CacheTooCold"
"V8.CompileScriptMicroSeconds.NoCache.InlineScript"
"V8.CompileScriptMicroSeconds.NoCache.Other"
"V8.CompileScriptMicroSeconds.NoCache.ScriptTooSmall"
"V8.CompileScriptMicroSeconds.ProduceCache"
"V8.CompileSerializeMicroSeconds"
"V8.GC.ParallelTaskLatencyMicroSeconds"
"V8.WasmCompileFunctionMicroSeconds"
"V8.WasmCompileModuleMicroSeconds"
"V8.WasmDecodeFunctionMicroSeconds"
"V8.WasmDecodeModuleMicroSeconds"
"V8.WasmExecutionTimeMicroSeconds"
"V8.WasmInstantiateModuleMicroSeconds"
"V8.WasmLazyCompilationMicroSeconds"
"Variations.HeaderConstructionTime"
"WebCore.DistillabilityUs"
"Windows.ComputeNativeWindowOcclusionTime"
,
May 16 2018
,
May 22 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5ec205887a0b04bb100bd3eb07b432c1b378367c commit 5ec205887a0b04bb100bd3eb07b432c1b378367c Author: Gabriel Charette <gab@chromium.org> Date: Tue May 22 18:07:31 2018 [Metrics] Introduce High-resolution timing histograms/macros. Migrated two metrics to use new APIs and flagged other identified histograms' descriptions to highlight issue on dashboards (I will email relevant owners after this lands). Relevant metrics list extracted from https://crbug.com/807615#c19 R=asvitkine@chromium.org, fdoray@chromium.org Bug: 807615 Change-Id: I84f0f8fb5ca7fd3c5b43ba7209693b89928ade07 Reviewed-on: https://chromium-review.googlesource.com/1062830 Commit-Queue: Gabriel Charette <gab@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Alexei Svitkine <asvitkine@chromium.org> Reviewed-by: François Doray <fdoray@chromium.org> Cr-Commit-Position: refs/heads/master@{#560704} [modify] https://crrev.com/5ec205887a0b04bb100bd3eb07b432c1b378367c/base/metrics/histogram.cc [modify] https://crrev.com/5ec205887a0b04bb100bd3eb07b432c1b378367c/base/metrics/histogram.h [modify] https://crrev.com/5ec205887a0b04bb100bd3eb07b432c1b378367c/base/metrics/histogram_base.cc [modify] https://crrev.com/5ec205887a0b04bb100bd3eb07b432c1b378367c/base/metrics/histogram_base.h [modify] https://crrev.com/5ec205887a0b04bb100bd3eb07b432c1b378367c/base/metrics/histogram_functions.cc [modify] https://crrev.com/5ec205887a0b04bb100bd3eb07b432c1b378367c/base/metrics/histogram_macros.h [modify] https://crrev.com/5ec205887a0b04bb100bd3eb07b432c1b378367c/base/metrics/histogram_macros_local.h [modify] https://crrev.com/5ec205887a0b04bb100bd3eb07b432c1b378367c/base/task_scheduler/task_tracker.cc [modify] https://crrev.com/5ec205887a0b04bb100bd3eb07b432c1b378367c/chromecast/base/metrics/cast_histograms.h [modify] https://crrev.com/5ec205887a0b04bb100bd3eb07b432c1b378367c/tools/metrics/histograms/histograms.xml [modify] https://crrev.com/5ec205887a0b04bb100bd3eb07b432c1b378367c/ui/aura_extra/window_occlusion_impl_win.cc
,
May 22 2018
gab@, I noticed you didn't add the warning label on all the histograms listed in comment #19. For example, you didn't add the warning to any Blink.Canvas histograms. Are the skipped histograms special in some way? What's the next step for them?
,
May 23 2018
@mpearson: nice catch! I missed some with my regexes (again.. :(!) https://chromium-review.googlesource.com/c/chromium/src/+/1069850
,
May 29 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/478e4a770fed9430ac7ff33d3a24a5a9e83d2789 commit 478e4a770fed9430ac7ff33d3a24a5a9e83d2789 Author: Gabriel Charette <gab@chromium.org> Date: Tue May 29 20:51:24 2018 [Metrics] Add missing warnings on microseconds metrics lacking high-resolution filters. My regex wasn't complete in https://chromium-review.googlesource.com/1062830 now there are warnings on 180 metrics as desired (182 identified @ https://bugs.chromium.org/p/chromium/issues/detail?id=807615#c19 minus the 2 fixed in initial CL). R=mpearson@chromium.org Bug: 807615 Change-Id: I4ef7ac8cf84b2a7e2222d3cb06d79aeb07de8108 Reviewed-on: https://chromium-review.googlesource.com/1069850 Reviewed-by: Mark Pearson <mpearson@chromium.org> Commit-Queue: Gabriel Charette <gab@chromium.org> Cr-Commit-Position: refs/heads/master@{#562580} [modify] https://crrev.com/478e4a770fed9430ac7ff33d3a24a5a9e83d2789/tools/metrics/histograms/histograms.xml
,
May 30 2018
|
||||||||||||
►
Sign in to add a comment |
||||||||||||
Comment 1 by gab@chromium.org
, Jan 31 2018