| <!-- |
| Copyright 2020 The Chromium Authors |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <!-- |
| This file is used to generate a comprehensive list of Memory histograms |
| along with a detailed description for each histogram. |
| |
| For best practices on writing histogram descriptions, see |
| https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md |
| |
| Please follow the instructions in the OWNERS file in this directory to find a |
| reviewer. If no OWNERS file exists, please consider signing up at |
| go/reviewing-metrics (Googlers only), as all subdirectories are expected to |
| have an OWNERS file. As a last resort you can send the CL to |
| chromium-metrics-reviews@google.com. |
| --> |
| |
| <histogram-configuration> |
| |
| <histograms> |
| |
| <variants name="GpuPeakMemoryUsage"> |
| <variant name="ChangeTab2" |
| summary="Changing tabs. Note that this histogram uses presentation |
| callbacks to determine the end of the tab change (which is |
| when the tab change is presented on the screen). However, |
| before M110 it was possible that the callback was called even |
| if the next submitted frame failed to present successfully. |
| Since M110, the histogram switched to using presentation |
| callbacks that are only called when the first following frame |
| is successfully presented on the screen (hence version 2)"/> |
| <variant name="PageLoad" summary="Page load"/> |
| <variant name="Scroll" summary="Scroll"/> |
| </variants> |
| |
| <variants name="ProfiledProcess"> |
| <variant name="" summary="all process types, aggregated"/> |
| <variant name=".Browser" summary="the Browser process"/> |
| <variant name=".GPU" summary="the GPU process"/> |
| <variant name=".NetworkService" summary="the NetworkService process"/> |
| <variant name=".Renderer" summary="a Renderer process"/> |
| <variant name=".Utility" summary="a Utility process"/> |
| </variants> |
| |
| <variants name="RecordedTiming"> |
| <variant name="After" |
| summary="Recorded a small delay after all memory-purging tasks are run, |
| to allow time for asynchronous tasks to finish."/> |
| <variant name="Before" |
| summary="Recorded before any memory-purging tasks are run."/> |
| <variant name="Diff" |
| summary="The difference between before and after any memory-purging |
| tasks are run, clamped at 0."/> |
| </variants> |
| |
| <variants name="UtilityProcessType"> |
| <variant name="AudioService"> |
| <owner>olka@chromium.org</owner> |
| <owner>fhernqvist@google.com</owner> |
| <owner>tguilbert@chromium.org</owner> |
| <owner>webrtc-audio-uma@google.com</owner> |
| </variant> |
| <variant name="CdmService"> |
| <owner>xhwang@chromium.org</owner> |
| <owner>media-dev-uma@chromium.org</owner> |
| </variant> |
| <variant name="MediaFoundationService"> |
| <owner>xhwang@chromium.org</owner> |
| <owner>media-dev-uma@chromium.org</owner> |
| </variant> |
| <variant name="PaintPreviewCompositor"> |
| <owner>ckitagawa@chromium.org</owner> |
| <owner>fredmello@chromium.org</owner> |
| </variant> |
| <variant name="Utility"> |
| <owner>jam@chromium.org</owner> |
| </variant> |
| </variants> |
| |
| <variants name="VmmmsClientName"> |
| <variant name="ARCVM" summary="ARCVM"/> |
| <variant name="Host" summary="Host"/> |
| </variants> |
| |
| <variants name="VmmmsVmName"> |
| <variant name="ARCVM" summary="ARCVM"/> |
| </variants> |
| |
| <variants name="VmmSwapVmName"> |
| <variant name="ARCVM" summary="ARCVM"/> |
| </variants> |
| |
| <histogram name="HeapProfiling.AndroidStackUnwinder" |
| enum="AndroidStackUnwinder" expires_after="2025-01-26"> |
| <owner>joenotcharles@google.com</owner> |
| <owner>chrome-memory@google.com</owner> |
| <summary> |
| The stack unwinder implementation used by the SamplingHeapProfiler. Emitted |
| on Android devices only each time the profiler is started, which happens at |
| Chrome launch when HeapProfiling.InProcess.Enabled is true. |
| </summary> |
| </histogram> |
| |
| <histogram name="HeapProfiling.InProcess.Enabled{Process}" |
| enum="BooleanEnabled" expires_after="2025-02-09"> |
| <owner>joenotcharles@google.com</owner> |
| <owner>chrome-memory@google.com</owner> |
| <summary> |
| One metric is emitted on every process start, recording whether the |
| in-process heap profiler is enabled in {Process} for this Chrome session. |
| </summary> |
| <token key="Process" variants="ProfiledProcess"/> |
| </histogram> |
| |
| <histogram name="HeapProfiling.InProcess.SamplesPerSnapshot{Process}" |
| units="samples" expires_after="2025-02-09"> |
| <owner>joenotcharles@google.com</owner> |
| <owner>chrome-memory@google.com</owner> |
| <summary> |
| The number of samples in a heap snapshot taken in {Process}. Emitted once |
| per snapshot when the in-process heap profiler is enabled. |
| </summary> |
| <token key="Process" variants="ProfiledProcess"/> |
| </histogram> |
| |
| <histogram name="HeapProfiling.InProcess.TotalSampledMemory{Process}" |
| units="MB" expires_after="2025-01-05"> |
| <owner>joenotcharles@google.com</owner> |
| <owner>etienneb@chromium.org</owner> |
| <owner>chrome-memory@google.com</owner> |
| <summary> |
| The total amount of memory in a heap snapshot taken in {Process}. This is an |
| estimate of total memory allocations in the code being sampled. Because it |
| is collected through random sampling it is only statistically accurate when |
| aggregated over many reports. Emitted once per snapshot when the in-process |
| heap profiler is enabled. |
| </summary> |
| <token key="Process" variants="ProfiledProcess"/> |
| </histogram> |
| |
| <histogram name="Memory.BackingStore" units="units" expires_after="M85"> |
| <owner>hajimehoshi@chromium.org</owner> |
| <owner>kenjibaheux@google.com</owner> |
| <owner>kouhei@chromium.org</owner> |
| <summary>TBD.</summary> |
| </histogram> |
| |
| <histogram name="Memory.Browser.MemoryFootprint" units="MB" |
| expires_after="never"> |
| <!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ajuma@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <summary> |
| This metric is only recorded on iOS. This measures the sum of |
| PrivateMemoryFootprint and SharedMemoryFootprint, which is possible because |
| Chromium on iOS is single-process. Note that this does not include memory |
| consumed by WebKit-launched processes, such as the WebContent and Network |
| processes. |
| |
| Emitted when closing a log in order to upload it. This happens shortly after |
| startup and again at regular intervals (usually 5 minutes, regardless of the |
| type of network connection). Not emitted in logs that are closed when Chrome |
| loses focus or closes. Yet, it is emitted on logs that are constructed from |
| data persisted from a previous session, i.e., persisted from an unclean |
| shutdown. |
| |
| Many changes in memory usage on iOS come from changes to WebKit, rather than |
| changes within Chromium code. To assess whether a change in this metric is |
| caused by a WebKit change, split by OS version. WebKit changes always come |
| with an OS version change. |
| |
| As with other memory metrics, memory use tends to increase over time. |
| Restarts due to OS or Chrome updates tend to make this metric drop. |
| |
| This histogram is of special interest to the chrome-analysis-team@. Do not |
| change its semantics or retire it without talking to them first. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Browser.MemoryFootprint.Active" units="MB" |
| expires_after="2025-01-05"> |
| <owner>justincohen@chromium.org</owner> |
| <owner>ajuma@chromium.org</owner> |
| <summary> |
| This metric is only recorded on iOS. Same as Memory.Browser.MemoryFootprint |
| but only recorded when UIApplication.sharedApplication.applicationState is |
| UIApplicationStateActive. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Browser.MemoryFootprint.Active.Over200MBWatermark" |
| enum="BooleanGreaterOrEqualThan200MB" expires_after="2025-02-05"> |
| <owner>justincohen@chromium.org</owner> |
| <owner>ajuma@chromium.org</owner> |
| <summary> |
| This metric is only recorded on iOS when |
| UIApplication.sharedApplication.applicationState is |
| UIApplicationStateActive. True if the sum of PrivateMemoryFootprint and |
| SharedMemoryFootprint is greater than 200MB. According to Apple, apps on |
| iPhone 6 and older devices get terminated by the OS if memory usage crosses |
| 200MB watermark, so it's important to keep the memory usage under 200MB. |
| "true" value may not show up on iPhone 6 and older devices if iOS |
| is strict about the advertised watermark. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Browser.MemoryFootprint.Background" units="MB" |
| expires_after="2025-04-28"> |
| <owner>justincohen@chromium.org</owner> |
| <owner>ajuma@chromium.org</owner> |
| <summary> |
| This metric is only recorded on iOS. Same as Memory.Browser.MemoryFootprint |
| but only recorded when UIApplication.sharedApplication.applicationState is |
| UIApplicationStateBackground. According to Apple, apps get terminated by the |
| OS if memory usage in background crosses 50MB watermark, so it's important |
| to keep the memory usage under 50MB. The timing of this metric will line up |
| so that it rarely occurs when the app is in the background. With a small |
| data set, the metrics might be biased in ways that we can't think of right |
| now. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Browser.MemoryFootprint.Inactive" units="MB" |
| expires_after="2025-01-26"> |
| <owner>justincohen@chromium.org</owner> |
| <owner>ajuma@chromium.org</owner> |
| <summary> |
| This metric is only recorded on iOS. Same as Memory.Browser.MemoryFootprint |
| but only recorded when UIApplication.sharedApplication.applicationState is |
| UIApplicationStateInactive. The timing of this metric will line up so that |
| it rarely occurs when the app is inactive. With a small data set, the |
| metrics might be biased in ways that we can't think of right now. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Browser.MemoryFootprint.NumOpenTabs" units="tabs" |
| expires_after="2025-01-05"> |
| <owner>ajuma@chromium.org</owner> |
| <owner>rkgibson@google.com</owner> |
| <summary> |
| Investigation into crbug.com/1102494 shows that OverscrollActionsController |
| is allocating thousands of objects in it's -initWithScrollView:. This is |
| likely because thousands of OverscrollActionsControllers are being |
| initialized. The theory is that there are users that have many many tabs, |
| causing many OverscrollActionsControllers to be allocated. This histogram |
| tests that theory by logging how many open tabs there are. This is recorded |
| every time histograms are uploaded. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Browser.MemoryFootprint.OnBackground" units="MiB" |
| expires_after="2025-02-05"> |
| <owner>justincohen@chromium.org</owner> |
| <owner>ajuma@chromium.org</owner> |
| <summary> |
| This metric is only recorded on iOS. Same as Memory.Browser.MemoryFootprint |
| but recorded right after the app transitions into background. According to |
| Apple, apps get terminated by the OS if memory usage in background crosses |
| 50MiB watermark so it's important to keep the memory usage under 50MiB. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Browser.PrivateMemoryFootprint" units="MB" |
| expires_after="never"> |
| <!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <improvement direction="LOWER_IS_BETTER"/> |
| <summary> |
| A rough estimate of the private memory footprint of the browser process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| |
| This histogram is of special interest to the chrome-analysis-team@. Do not |
| change its semantics or retire it without talking to them first. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Browser.PrivateSwapFootprint" units="MB" |
| expires_after="2025-02-10"> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| An amount of private memory of the browser process placed in swap (VmSwap). |
| Available on Android, Linux and ChromeOS. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Browser.ResidentSet" units="MiB" expires_after="never"> |
| <!-- expires-never: Generic system health metric used to diagnose various performance issues. --> |
| |
| <owner>fdoray@chromium.org</owner> |
| <summary> |
| The size of the resident memory in the browser process. This is influenced |
| by factors we control (e.g. memory that is not accessed can be swapped) and |
| factors we don't control (e.g. an unrelated process using a lot of memory |
| can force memory in our process to be swapped). Recorded on |
| Windows/Linux/ChromeOS/Android. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This resident memory metric cannot be compared across platforms because each |
| platform relies on platform-level APIs for accounting. As such, though this |
| attempts to measure private memory footprint as best as possible, it does |
| not measure the same thing on each platform. We have not found a good way to |
| compare any system level memory metric across platforms due to the different |
| nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Browser.SharedMemoryFootprint" units="MB" |
| expires_after="2025-02-10"> |
| <owner>erikchen@chromium.org</owner> |
| <summary> |
| A rough estimate of the shared memory footprint of the browser process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.CachedFontAndDC" units="units" expires_after="M85"> |
| <owner>hajimehoshi@chromium.org</owner> |
| <owner>kenjibaheux@google.com</owner> |
| <owner>kouhei@chromium.org</owner> |
| <summary>TBD.</summary> |
| </histogram> |
| |
| <histogram name="Memory.Discardable.FreelistSize.Foreground" units="KiB" |
| expires_after="2023-03-05"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Freelist size used by ClientDiscardableMemoryManager in the foreground only. |
| Recorded during |OnMemoryDump|. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Discardable.LargeAllocationFromFreelist" |
| enum="BooleanLargeAllocationFromFreelist" expires_after="2023-03-19"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Boolean metric which tracks whether or not large chunks of discardable |
| memory are allocated from the freelist or via IPC. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Discardable.LockingSuccess" |
| enum="BooleanLockingSuccess" expires_after="2023-05-07"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Boolean metric which tracks whether or not discardable memory had already |
| been discarded when an attempt is made to lock it. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Discardable.Size.Foreground" units="KiB" |
| expires_after="2023-03-05"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Effective memory used by ClientDiscardableMemoryManager in the foreground |
| only. Recorded during |OnMemoryDump|. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Discardable.VirtualSize.Foreground" units="KiB" |
| expires_after="2023-03-19"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Virtual memory used by ClientDiscardableMemoryManager in the foreground |
| only. Recorded during |OnMemoryDump|. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.DiscardableAllocationSize" units="KB" |
| expires_after="2023-03-19"> |
| <owner>reveman@chromium.org</owner> |
| <owner>thiabaud@google.com</owner> |
| <summary> |
| The discardable memory allocation size in KB. Recorded each time a new |
| discardable memory instance is created. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Experimental.AvailableMemoryMB" units="MB" |
| expires_after="2024-07-14"> |
| <owner>anthonyvd@chromium.org</owner> |
| <owner>catan-team@chromium.org</owner> |
| <summary> |
| The amount of available physical memory on the system as reported by |
| base::SysInfo::AmountOfAvailablePhysicalMemory(). |
| |
| Recorded every 2 minutes. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Experimental.AvailableMemoryPercent" units="%" |
| expires_after="2025-01-05"> |
| <owner>anthonyvd@chromium.org</owner> |
| <owner>catan-team@chromium.org</owner> |
| <summary> |
| The percentage of physical memory on the system considered |
| "available" by base::SysInfo::AmountOfAvailablePhysicalMemory() |
| and base::SysInfo::AmountOfPhysicalMemory(). |
| |
| Recorded every 2 minutes. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Browser2" units="MB" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The browser process's memory usage reported by the memory instrumentation |
| service in MB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Browser2.Custom" units="bytes" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorCustom2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The browser process's memory usage reported by the memory instrumentation |
| service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Browser2.Small" units="KB" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The browser process's memory usage reported by the memory instrumentation |
| service in KB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Browser2.Tiny" units="bytes" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorTiny2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The browser process's memory usage reported by the memory instrumentation |
| service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Extension2" units="MB" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The extension process's memory usage reported by the memory instrumentation |
| service in MB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Extension2.Custom" |
| units="bytes" expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorCustom2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The extension process's memory usage reported by the memory instrumentation |
| service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Extension2.Small" units="KB" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The extension process's memory usage reported by the memory instrumentation |
| service in KB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Extension2.Tiny" units="bytes" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorTiny2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The extension process's memory usage reported by the memory instrumentation |
| service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Experimental.Gpu.PhysicalFootprint.MacOS" units="MB" |
| expires_after="M85"> |
| <owner>erikchen@chromium.org</owner> |
| <summary> |
| The physical footprint of the GPU process on macOS. Other measurements fail |
| to correctly account for OpenGL memory usage. This metric also has flaws and |
| is not intended for permanent use. It's an emergency measure added to help |
| debug https://crbug.com/713854. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Gpu2" units="MB" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The gpu process's memory usage reported by the memory instrumentation |
| service in MB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Gpu2.Custom" units="bytes" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorCustom2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The gpu process's memory usage reported by the memory instrumentation |
| service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Gpu2.Small" units="KB" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The gpu process's memory usage reported by the memory instrumentation |
| service in KB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Gpu2.Tiny" units="bytes" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorTiny2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The gpu process's memory usage reported by the memory instrumentation |
| service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Experimental.MacAvailableMemoryPercentFreePageCache2" |
| units="%" expires_after="2025-01-05"> |
| <owner>anthonyvd@chromium.org</owner> |
| <owner>catan-team@chromium.org</owner> |
| <summary> |
| The percentage of physical memory on the system considered |
| "available" by base::SysInfo::AmountOfAvailablePhysicalMemory() |
| and base::SysInfo::AmountOfPhysicalMemory(). The amount of |
| "file-backed" memory is subtracted from the amount of available |
| memory to attempt to estimate the available memory, counting the Page Cache |
| as available. |
| |
| Recorded every 2 minutes on MacOS. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Experimental.MacFileBackedMemoryMB2" units="MB" |
| expires_after="2025-01-05"> |
| <owner>anthonyvd@chromium.org</owner> |
| <owner>catan-team@chromium.org</owner> |
| <summary> |
| The amount of memory reported as "file-backed" or associated to |
| "external_pages" by vm_stat. |
| |
| Recorded every 2 minutes on MacOS. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.NetworkService2" units="MiB" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" --> |
| |
| <owner>mmenke@chromium.org</owner> |
| <owner>morlovich@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The network service process's memory usage reported by the memory |
| instrumentation service in MiB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.NetworkService2.Custom" |
| units="bytes" expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorCustom2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The network service process's memory usage reported by the memory |
| instrumentation service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.NetworkService2.Small" |
| units="KiB" expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" --> |
| |
| <owner>mmenke@chromium.org</owner> |
| <owner>morlovich@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The network service process's memory usage reported by the memory |
| instrumentation service in KiB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.NetworkService2.Tiny" |
| units="bytes" expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorTiny2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The network service process's memory usage reported by the memory |
| instrumentation service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Memory.Experimental.OomIntervention.RendererPrivateMemoryFootprintAtOOM" |
| units="MB" expires_after="M85"> |
| <owner>ssid@chromium.org</owner> |
| <owner>bashi@chromium.org</owner> |
| <summary> |
| The renderer process' private memory footprint when a foreground OOM occurs. |
| This was last recorded metric by renderer a few seconds before getting |
| killed. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Experimental.Renderer.HighestPrivateMemoryFootprint" |
| units="MB" expires_after="2024-12-24"> |
| <owner>tasak@google.com</owner> |
| <owner>mikt@chromium.org</owner> |
| <summary> |
| The highest private memory footprint of a renderer process in (X mins after |
| the first page navigation, Y mins after the first page navigation]. (X, Y] |
| is (0, 2], (2, 4], (4, 8], and (8, 16]. The metric is recorded at the Y's |
| timing. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Renderer2" units="MB" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The renderer process's memory usage reported by the memory instrumentation |
| service in MB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Renderer2.Custom" |
| units="bytes" expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorCustom2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The renderer process's memory usage reported by the memory instrumentation |
| service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Renderer2.Small" units="KB" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The renderer process's memory usage reported by the memory instrumentation |
| service in KB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Renderer2.Tiny" units="bytes" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorTiny2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The renderer process's memory usage reported by the memory instrumentation |
| service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Memory.Experimental.UserLevelMemoryPressureSignal.RendererPrivateMemoryFootprintBefore" |
| units="MB" expires_after="2022-05-01"> |
| <owner>keishi@chromium.org</owner> |
| <owner>tasak@chromium.org</owner> |
| <summary> |
| The renderer process' private memory footprint right before a memory |
| pressure signal is generated. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Memory.Experimental.UserLevelMemoryPressureSignal.TotalPrivateMemoryFootprintAfter" |
| units="MB" expires_after="2024-12-30"> |
| <owner>tasak@google.com</owner> |
| <owner>chrome-memory-tok@google.com</owner> |
| <summary> |
| The total private memory footprint 10 seconds after a user-level memory |
| pressure signal is generated. Recorded on Android. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Memory.Experimental.UserLevelMemoryPressureSignal.TotalPrivateMemoryFootprintBefore" |
| units="MB" expires_after="2024-12-30"> |
| <owner>tasak@google.com</owner> |
| <owner>chrome-memory-tok@google.com</owner> |
| <summary> |
| The total private memory footprint right before a user-level memory pressure |
| signal is generated. Recorded on Android. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Memory.Experimental.UserLevelMemoryPressureSignal.TotalPrivateMemoryFootprintVisibleOrHigherPriorityRenderersAfter" |
| units="MB" expires_after="2024-05-05"> |
| <owner>tasak@google.com</owner> |
| <owner>chrome-memory-tok@google.com</owner> |
| <summary> |
| The total private memory footprint excluding lower priority renderers' 10 |
| seconds after a user-level memory pressure signal is generated. Recorded on |
| Android. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Memory.Experimental.UserLevelMemoryPressureSignal.TotalPrivateMemoryFootprintVisibleOrHigherPriorityRenderersBefore" |
| units="MB" expires_after="2024-05-05"> |
| <owner>tasak@google.com</owner> |
| <owner>chrome-memory-tok@google.com</owner> |
| <summary> |
| The total private memory footprint excluding lower priority renderers' right |
| before a user-level memory pressure signal is generated. Recorded on |
| Android. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Utility2" units="MB" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The utility process's memory usage reported by the memory instrumentation |
| service in MB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Utility2.Custom" units="bytes" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorCustom2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The utility process's memory usage reported by the memory instrumentation |
| service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Utility2.Small" units="KB" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The utility process's memory usage reported by the memory instrumentation |
| service in KB. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.Experimental.Utility2.Tiny" units="bytes" |
| expires_after="2025-01-10"> |
| <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorTiny2" --> |
| |
| <owner>sashamcintosh@chromium.org</owner> |
| <owner>chromeos-gfx@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| The utility process's memory usage reported by the memory instrumentation |
| service in bytes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Extension.PrivateMemoryFootprint" units="MB" |
| expires_after="2025-02-10"> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| A rough estimate of the private memory footprint of the extension process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Extension.ResidentSet" units="MiB" |
| expires_after="never"> |
| <!-- expires-never: Generic system health metric used to diagnose various performance issues. --> |
| |
| <owner>fdoray@chromium.org</owner> |
| <summary> |
| The size of the resident memory in an extension process. This is influenced |
| by factors we control (e.g. memory that is not accessed can be swapped) and |
| factors we don't control (e.g. an unrelated process using a lot of memory |
| can force memory in our process to be swapped). Recorded on |
| Windows/Linux/ChromeOS. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This resident memory metric cannot be compared across platforms because each |
| platform relies on platform-level APIs for accounting. As such, though this |
| attempts to measure private memory footprint as best as possible, it does |
| not measure the same thing on each platform. We have not found a good way to |
| compare any system level memory metric across platforms due to the different |
| nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.GlyphPagesPerLoad" units="units" expires_after="M85"> |
| <owner>hajimehoshi@chromium.org</owner> |
| <owner>kenjibaheux@google.com</owner> |
| <owner>kouhei@chromium.org</owner> |
| <summary> |
| The number of glyph pages present in the renderer when it commits a load. |
| Since this is per-sub-process, you can get the average number of glyph pages |
| in the system by multiplying this number with the average number of |
| renderers. Note that this typically won't count the glyph pages added as a |
| result of the load that just committed, since layout will happen after the |
| commit. There are 512 bytes per glyph page, but this number also very |
| closely approximates the number of glyph width map pages in the same |
| renderer. The only difference is that if you have font fallback, it will |
| make a new glyph page and no width page, but in most common cases there is |
| no fallback). Width pages are 1K each (256 floats), so you could think of |
| this value as being the number of "1.5K units related to glyphs per |
| renderer per page load". |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.GPU.PeakMemoryAllocationSource2.{Usage}.{Source}" |
| units="MB" expires_after="2025-01-05"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| The maximum amount of memory of the GPU process allocated by {Source} during |
| the following user interaction: {Usage}. |
| |
| See Memory.GPU.PeakMemoryUsage2. |
| </summary> |
| <token key="Usage" variants="GpuPeakMemoryUsage"/> |
| <token key="Source"> |
| <variant name="CommandBuffer" summary="GPU command buffer"/> |
| <variant name="SharedContextState" summary="Shared Context State"/> |
| <variant name="SharedImageStub" summary="Shared Image Stub"/> |
| <variant name="Skia" summary="Skia"/> |
| <variant name="Unknown" summary="an unknown source"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Memory.GPU.PeakMemoryUsage2.{Usage}" units="MB" |
| expires_after="2025-01-05"> |
| <owner>jonross@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| The maximum amount of memory of the GPU process during the following user |
| interaction: {Usage}. |
| </summary> |
| <token key="Usage" variants="GpuPeakMemoryUsage"/> |
| </histogram> |
| |
| <histogram name="Memory.Gpu.PrivateMemoryFootprint" units="MB" |
| expires_after="never"> |
| <!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <improvement direction="LOWER_IS_BETTER"/> |
| <summary> |
| A rough estimate of the private memory footprint of the gpu process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| |
| WARNING: This metric does not include the footprint of the graphics buffers |
| on all platforms. Concretely, this means that on these platforms, this |
| metric will drastically underestimate the true cost of rendering. On devices |
| with unified memory (most Android, laptop and desktop clients with |
| integrated graphics, and all ARM64 mac clients), graphics buffers come from |
| the same memory pool as system RAM. For more details, alternative metrics to |
| monitor, and the state of various platforms, see |
| docs/memory/graphics_metrics.md. |
| |
| This histogram is of special interest to the chrome-analysis-team@. Do not |
| change its semantics or retire it without talking to them first. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Gpu.PrivateSwapFootprint" units="MB" |
| expires_after="M77"> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| An amount of private memory of the GPU process placed in swap (VmSwap). |
| Available on Android, Linux and ChromeOS. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Gpu.ResidentSet" units="MiB" expires_after="never"> |
| <!-- expires-never: Generic system health metric used to diagnose various performance issues. --> |
| |
| <owner>fdoray@chromium.org</owner> |
| <summary> |
| The size of the resident memory in the GPU process. This is influenced by |
| factors we control (e.g. memory that is not accessed can be swapped) and |
| factors we don't control (e.g. an unrelated process using a lot of memory |
| can force memory in our process to be swapped). Recorded on |
| Windows/Linux/ChromeOS/Android. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This resident memory metric cannot be compared across platforms because each |
| platform relies on platform-level APIs for accounting. As such, though this |
| attempts to measure private memory footprint as best as possible, it does |
| not measure the same thing on each platform. We have not found a good way to |
| compare any system level memory metric across platforms due to the different |
| nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Gpu.SharedMemoryFootprint" units="MB" |
| expires_after="2025-02-02"> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| A rough estimate of the shared memory footprint of the gpu process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Graphics" units="MB" expires_after="never"> |
| <!-- expires-never: "heartbeat" metric (internal: used for chromeos memory) --> |
| |
| <owner>hajimehoshi@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>kenjibaheux@google.com</owner> |
| <owner>kouhei@chromium.org</owner> |
| <owner>bgeffon@chromium.org</owner> |
| <summary> |
| System-wide graphics driver memory consumption. Recorded on Chrome OS for |
| platforms where it is exposed by the kernel (for example, Intel i915 and |
| Exynos Mali). Recorded once per UMA ping. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.LowMemoryKiller.Count" units="low-memory kills" |
| expires_after="2025-02-10"> |
| <owner>khmel@google.com</owner> |
| <owner>vovoy@google.com</owner> |
| <summary> |
| Cumulative count of low memory kills in one user session. This is recorded |
| by MemoryKillsMonitor every time a low memory kill occurs. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.LowMemoryKiller.FirstKillLatency" units="ms" |
| expires_after="2024-12-08"> |
| <owner>khmel@google.com</owner> |
| <owner>vovoy@google.com</owner> |
| <summary> |
| When Chrome OS is in low memory state, TabManager kills some victims to free |
| memory. This value is the elapsed time between TabManager receiving the low |
| memory notification and the first kill. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.LowMemoryKiller.FreedSize" units="KB" |
| expires_after="2024-07-21"> |
| <owner>khmel@google.com</owner> |
| <owner>vovoy@google.com</owner> |
| <summary>The memory size freed by each low memory kill event.</summary> |
| </histogram> |
| |
| <histogram name="Memory.NativeLibrary.MappedAndResidentMemoryFootprint3" |
| units="KB" expires_after="2025-01-05"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>pasko@chromium.org</owner> |
| <summary> |
| The size of the resident memory for the native library code across all |
| processes. This metric is computed by parsing proc/self/pagemap and counting |
| native library pages that are mapped and present in RAM for at least one |
| Chrome process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Memory.NativeLibrary.MappedAndResidentMemoryFootprintCollectionStatus" |
| enum="MappedAndResidentPagesDumpState" expires_after="2024-02-04"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>pasko@chromium.org</owner> |
| <summary> |
| Result of an attempt to read /proc/self/pagemap when determining the amount |
| of resident memory mapped by the current process. Reading the file is |
| performed as part of computing the |
| Memory.NativeLibrary.MappedAndResidentMemoryFootprint2 histogram. Available |
| only on Android. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.NativeLibrary.NotResidentOrderedCodeMemoryFootprint" |
| units="KB" expires_after="2024-04-28"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>pasko@chromium.org</owner> |
| <summary> |
| The size of the native library code which was ordered, yet is not resident |
| in memory, across all processes. This metric is computed by parsing |
| proc/self/pagemap and counting native library pages that are mapped and |
| present in RAM for at least one Chrome process. Available only on Android. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.NativeLibrary.ResidentNotOrderedCodeMemoryFootprint" |
| units="KB" expires_after="2024-02-04"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>pasko@chromium.org</owner> |
| <summary> |
| The size of the native library code which is outside the ordered section, |
| yet is resident in memory, across all processes. This metric is computed by |
| parsing proc/self/pagemap and counting native library pages that are mapped |
| and present in RAM for at least one Chrome process. Available only on |
| Android. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.NetworkService.PrivateMemoryFootprint" units="MiB" |
| expires_after="2025-01-05"> |
| <owner>mmenke@chromium.org</owner> |
| <owner>morlovich@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| A rough estimate of the private memory footprint of the network service |
| process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.NetworkService.PrivateSwapFootprint" units="MiB" |
| expires_after="2023-01-10"> |
| <owner>mmenke@chromium.org</owner> |
| <owner>morlovich@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| An amount of private memory of the network service process placed in swap |
| (VmSwap). Available on Android, Linux and ChromeOS. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| Note: Histogram data may be missing for mid-2020 due to expiry. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.NetworkService.SharedMemoryFootprint" units="MiB" |
| expires_after="2025-02-10"> |
| <owner>mmenke@chromium.org</owner> |
| <owner>morlovich@chromium.org</owner> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| A rough estimate of the shared memory footprint of the network service |
| process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| Note: Histogram data may be missing for mid-2020 due to expiry. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.OOMKills.Count" units="kills" |
| expires_after="2025-01-05"> |
| <owner>vovoy@google.com</owner> |
| <owner>wvk@google.com</owner> |
| <summary>Cumulative count of OOM kills in one user session.</summary> |
| </histogram> |
| |
| <histogram name="Memory.OOMKills.Daily" units="kills" |
| expires_after="2025-01-05"> |
| <owner>vovoy@google.com</owner> |
| <owner>src/chromeos/ash/components/memory/OWNERS</owner> |
| <summary> |
| The number of OOM kills since last emit. The emit interval is at least 24 |
| hours, see metrics::DailyEvent for more details. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableImage.OnDiskSize.5min" units="KiB" |
| expires_after="2024-06-30"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Size of encoded image data of ParkableImages that are on disk. Collected |
| once, 5 minutes after the first ParkableImage is created. |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableImage.Read.Latency" units="microseconds" |
| expires_after="2024-06-30"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Recorded each time a ParkableImage is read from disk. Records the time taken |
| to read a ParkableImage from disk. Note: This metric drops reports on |
| clients with low-resolution clocks, which means these reports will be biased |
| against a portion of the population on Windows. See |
| Windows.HasHighResolutionTimeTicks for the affected sample. |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableImage.Read.Throughput" units="MiBps" |
| expires_after="2024-06-30"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Recorded each time a ParkableImage is read from disk. Records the throughput |
| of reading the ParkableImage from disk, in MiB/s. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableImage.TotalReadTime.5min" units="ms" |
| expires_after="2025-02-10"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Total time spent reading images from disk. Collected once, 5 minutes after |
| the first ParkableImage is created. |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableImage.TotalSize.5min" units="KiB" |
| expires_after="2024-06-30"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Total size of encoded image data of ParkableImages. Collected once, 5 |
| minutes after the first ParkableImage is created. |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableImage.TotalWriteTime.5min" units="ms" |
| expires_after="2024-06-30"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Total time spent writing images to disk. Collected once, 5 minutes after the |
| first ParkableImage is created. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableImage.UnparkedSize.5min" units="KiB" |
| expires_after="2024-09-22"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Size of encoded image data of ParkableImages that are not written to disk. |
| Collected once, 5 minutes after the first ParkableImage is created. |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableImage.Write.Latency" units="microseconds" |
| expires_after="2024-06-30"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Recorded each time a ParkableImage is written to disk. Records the time |
| taken to write the ParkableImage to disk. Note: This metric drops reports on |
| clients with low-resolution clocks, which means these reports will be biased |
| against a portion of the population on Windows. See |
| Windows.HasHighResolutionTimeTicks for the affected sample. |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableImage.Write.Size" units="KiB" |
| expires_after="2024-06-30"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Recorded each time a ParkableImage is written to disk. Records the size of |
| the write, in KiB. |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableString.Compression.Latency" |
| units="microseconds" expires_after="2025-01-26"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>thiabaud@google.com</owner> |
| <summary> |
| Time to compress a ParkableString, in us. Note: This metric drops reports on |
| clients with low-resolution clocks, which means these reports will be biased |
| against a portion of the population on Windows. See |
| Windows.HasHighResolutionTimeTicks for the affected sample. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableString.Compression.SizeKb" units="KB" |
| expires_after="2025-01-26"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>thiabaud@google.com</owner> |
| <summary> |
| Size of a compressed ParkableString, recorded at compression time. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableString.Decompression.Latency" |
| units="microseconds" expires_after="2025-02-02"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>thiabaud@google.com</owner> |
| <summary> |
| Time to decompress a ParkableString, in us. Note: This metric drops reports |
| on clients with low-resolution clocks, which means these reports will be |
| biased against a portion of the population on Windows. See |
| Windows.HasHighResolutionTimeTicks for the affected sample. |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableString.Decompression.ThroughputMBps" |
| units="MBps" expires_after="2025-02-10"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>thiabaud@google.com</owner> |
| <summary> |
| Original size of a compressed ParkableString, recorded at decompression |
| time. |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableString.DiskReadTime.5min" units="ms" |
| expires_after="2025-02-10"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>pasko@chromium.org</owner> |
| <summary> |
| Total main thread time used by ParkableStrings for reading over the first 5 |
| minutes of a renderer lifetime. Starting time is from the first |
| ParkableString being added. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableString.DiskWriteTime.5min" units="ms" |
| expires_after="2025-02-16"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>pasko@chromium.org</owner> |
| <summary> |
| Total time used by ParkableStrings for writing to disk over the first 5 |
| minutes of a renderer lifetime. Starting time is from the first |
| ParkableString being added. |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableString.OnDiskSizeKb.5min" units="KB" |
| expires_after="2025-02-10"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>pasko@chromium.org</owner> |
| <summary> |
| Total size of ParkableStrings discarded to disk, excluding allocator waste, |
| in KB. Recorded once, 5 minutes after the first ParkableString is added to a |
| renderer, at the same time as |
| "Memory.ParkableString.MemorySavings.5min". |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableString.Read.Latency" units="microseconds" |
| expires_after="2025-02-09"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>pasko@chromium.org</owner> |
| <summary> |
| Time to read a ParkableString from disk, in us. Note: This metric drops |
| reports on clients with low-resolution clocks, which means these reports |
| will be biased against a portion of the population on Windows. See |
| Windows.HasHighResolutionTimeTicks for the affected sample. |
| |
| This histogram was expired before 2024-03-19, be careful of missing data. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableString.TotalParkingThreadTime.5min" units="ms" |
| expires_after="2024-12-24"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>pasko@chromium.org</owner> |
| <summary> |
| Total thread time (on background threads) used by ParkableStrings for |
| compression over the first 5 minutes of a renderer lifetime. Starting time |
| is from the first ParkableString being added. This always happens on |
| background thread, so the reported value is thread time, not wall clock. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ParkableString.TotalUnparkingTime.5min" units="ms" |
| expires_after="2024-12-24"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>pasko@chromium.org</owner> |
| <summary> |
| Total time used by ParkableStrings for unparking over the first 5 minutes of |
| a renderer lifetime. Starting time is from the first ParkableString being |
| added. Note that unparking can happen on the main thread or on a background |
| one, so this is not the sum of main thread time. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.PartitionAlloc.MemoryReclaim" units="microseconds" |
| expires_after="2025-01-05"> |
| <owner>yukishiino@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Time it takes for PartitionAlloc's MemoryReclaimer to reclaim once. |
| Collected at each reclaim, for all process types. |
| |
| Note that clients without high-resolution clocks will report 0 for very |
| short times. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.PartitionAlloc.PartitionRoot.ExtrasSize" units="bytes" |
| expires_after="2025-02-10"> |
| <owner>keishi@chromium.org</owner> |
| <owner>kdlee@chromium.org</owner> |
| <summary> |
| Size of the extras configured for PartitionAlloc's `PartitionRoot` struct. |
| This is specific to the main partition, which powers the bulk of |
| PartitionAlloc-Everywhere. Recorded once for each process during allocator |
| shim configuration. |
| |
| Extras are optional. Extras can include the PartitionAlloc cookie (16B) and |
| the MiraclePtr ref-count (up to 16B). |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.PartitionAlloc.PeriodicPurge" units="microseconds" |
| expires_after="2025-02-10"> |
| <owner>yukishiino@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Time it takes for PartitionAlloc's periodic purge to run once. Collected at |
| each purge, for all process types. |
| |
| Note that clients without high-resolution clocks will report 0 for very |
| short times. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.PreFreeze2.Gpu.PrivateMemoryFootprint.{Timing}" |
| units="MiB" expires_after="2025-02-01"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@google.com</owner> |
| <summary> |
| Deprecated in favor of |
| "Memory.PreFreeze2.GPU.PrivateMemoryFootprint.*". |
| </summary> |
| <token key="Timing" variants="RecordedTiming"/> |
| </histogram> |
| |
| <histogram name="Memory.PreFreeze2.RecordMetricsFailureType" |
| enum="PreFreezeMetricsFailureType" expires_after="2025-02-01"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@google.com</owner> |
| <summary> |
| Recorded when a pre-freeze notification arrives or when we try to record |
| metrics (after pre-freeze trimming should have finished) and fail. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.PreFreeze2{Process}.PrivateMemoryFootprint.{Timing}" |
| units="MiB" expires_after="2025-02-01"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@google.com</owner> |
| <summary> |
| The private memory footprint of {Process}, recorded when we get a |
| notification that the application is about to be frozen. {Timing} Recorded |
| only on Android 14+, and only recorded if at least one task has been |
| registered with PreFreeze. |
| </summary> |
| <token key="Process" variants="ProfiledProcess"/> |
| <token key="Timing" variants="RecordedTiming"/> |
| </histogram> |
| |
| <histogram name="Memory.PreFreeze2{Process}.Vulkan.{Timing}" units="MiB" |
| expires_after="2025-02-01"> |
| <owner>thiabaud@google.com</owner> |
| <owner>lizeb@google.com</owner> |
| <summary> |
| The Vulkan memory usage of {Process}, recorded when we get a notification |
| that the application is about to be frozen. {Timing} Recorded only on |
| Android 14+, and only recorded if at least one task has been registered with |
| PreFreeze, and only if Vulkan is being used. |
| </summary> |
| <token key="Process" variants="ProfiledProcess"/> |
| <token key="Timing" variants="RecordedTiming"/> |
| </histogram> |
| |
| <histogram name="Memory.PressureLevel2" enum="MemoryPressureLevel" |
| expires_after="never"> |
| <!-- expires-never: Generic system health metric used to diagnose various performance issues. --> |
| |
| <owner>fdoray@chromium.org</owner> |
| <owner>catan-team@chromium.org</owner> |
| <summary> |
| The time spent in each memory pressure state, in seconds. Recorded when the |
| memory pressure state changes, at shutdown, or when it hasn't been recorded |
| in the last 5 minutes. |
| |
| The values from this histogram shouldn't be used directly, users of this |
| metric should look at the percentage of samples in each bucket to understand |
| the average time that Chrome spend in each pressure state. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.PressureLevelChanges" enum="MemoryPressureLevelChanges" |
| expires_after="M85"> |
| <owner>chrisha@chromium.org</owner> |
| <summary> |
| The number of pressure level state changes for each possible pairwise state |
| change. |
| </summary> |
| </histogram> |
| |
| <histogram base="true" name="Memory.PressureWindowDuration" units="ms" |
| expires_after="2025-02-10"> |
| <!-- Name completed by histogram_suffixes name="Memory.Pressure.TransitionType" --> |
| |
| <owner>fdoray@chromium.org</owner> |
| <owner>catan-team@chromium.org</owner> |
| <summary> |
| The time spent in each of the memory pressure state. Recorded when |
| transitioning from a memory pressure state to the other and when exiting |
| memory pressure. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.ProcessCount" units="processes" |
| expires_after="2025-02-10"> |
| <owner>creis@chromium.org</owner> |
| <owner>nasko@chromium.org</owner> |
| <summary> |
| The count of all active processes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Renderer.EvictedLockedResources.{Source}" units="KB" |
| expires_after="2025-02-10"> |
| <owner>jonross@chromium.org</owner> |
| <owner>chrome-gpu-memory@google.com</owner> |
| <summary> |
| The estimated memory size of viz::TransferableResources that are locked |
| against deletion. This is reported by a ClientResourceProvider once it has |
| been evicted by the Viz Host, and whose cc::LayerTreeHostImpl has been |
| hidden. |
| |
| This counts the {Source} that are locked. These will not be freed when Viz |
| instructs us to ReclaimResources. |
| </summary> |
| <token key="Source"> |
| <variant name="AR" summary="AR sources"/> |
| <variant name="Canvas" summary="Canvas sources"/> |
| <variant name="DrawingBuffer" |
| summary="DrawingBuffer sources, which can have mixed origins,"/> |
| <variant name="ExoBuffer" summary="ExoBuffer sources"/> |
| <variant name="HeadsUpDisplay" summary="HeadsUpDisplay sources"/> |
| <variant name="ImageLayerBridge" summary="ImageLayerBridge sources"/> |
| <variant name="PepperGraphics2D" summary="PepperGraphics2D sources"/> |
| <variant name="PPBGraphics3D" summary="PPBGraphics3D sources"/> |
| <variant name="StaleContent" summary="StaleContent sources"/> |
| <variant name="Test" summary="Test sources, which should not be seen,"/> |
| <variant name="TileRasterTask" summary="TileRasterTask sources"/> |
| <variant name="Total" summary="Total of all sources"/> |
| <variant name="UI" summary="UI sources"/> |
| <variant name="Unknown" summary="Unknown sources, which are unexpected,"/> |
| <variant name="Video" summary="Video sources"/> |
| <variant name="ViewTransition" summary="ViewTransition sources"/> |
| <variant name="WebGPUSwapBuffer" summary="WebGPUSwapBuffer sources"/> |
| </token> |
| </histogram> |
| |
| <histogram name="Memory.Renderer.PrivateMemoryFootprint" units="MB" |
| expires_after="never"> |
| <!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>speed-metrics-dev@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <improvement direction="LOWER_IS_BETTER"/> |
| <summary> |
| A rough estimate of the private memory footprint of the renderer process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| |
| Do not modify this metric in any way without contacting |
| speed-metrics-dev@chromium.org AND chrome-analysis-team@google.com. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Renderer.ResidentSet" units="MiB" expires_after="never"> |
| <!-- expires-never: Generic system health metric used to diagnose various performance issues. --> |
| |
| <owner>fdoray@chromium.org</owner> |
| <summary> |
| The size of the resident memory in a renderer process. This is influenced by |
| factors we control (e.g. memory that is not accessed can be swapped) and |
| factors we don't control (e.g. an unrelated process using a lot of memory |
| can force memory in our process to be swapped). Recorded on |
| Windows/Linux/ChromeOS/Android. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This resident memory metric cannot be compared across platforms because each |
| platform relies on platform-level APIs for accounting. As such, though this |
| attempts to measure private memory footprint as best as possible, it does |
| not measure the same thing on each platform. We have not found a good way to |
| compare any system level memory metric across platforms due to the different |
| nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Renderer.SharedMemoryFootprint" units="MB" |
| expires_after="2024-03-24"> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| A rough estimate of the shared memory footprint of the renderer process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.RendererProcessCount" units="processes" |
| expires_after="2025-01-05"> |
| <owner>creis@chromium.org</owner> |
| <owner>nasko@chromium.org</owner> |
| <summary> |
| The count of active renderer processes. Excludes renderers hosting |
| chrome-extension:// and/or chrome:// URLs. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| Computed based on OS data. |
| |
| WARNINGS: Not reliable on Android, see https://crbug.com/875400. Ignores |
| processes that do not host a widget, see https://crbug.com/949977#c36. |
| Consider using Memory.RenderProcessHost.Count.* instead. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.RenderProcessHost.Count.All" units="processes" |
| expires_after="2025-02-02"> |
| <owner>alexmos@chromium.org</owner> |
| <owner>creis@chromium.org</owner> |
| <owner>lukasza@chromium.org</owner> |
| <owner>nasko@chromium.org</owner> |
| <summary> |
| The count of all renderer processes. Covers all renderer processes, |
| including ones hosting web content (i.e. http(s):// and/or file://), |
| extensions (i.e. chrome-extension://) and WebUI (i.e. chrome://). |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| Computed based on count of RenderProcessHost objects, even if 1) they have |
| not been launched yet (e.g. during session restore) or 2) they are dead |
| (e.g. killed by the browser process or the OS). |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.RenderProcessHost.Count.InitializedAndNotDead" |
| units="processes" expires_after="2025-02-02"> |
| <owner>alexmos@chromium.org</owner> |
| <owner>creis@chromium.org</owner> |
| <owner>lukasza@chromium.org</owner> |
| <owner>nasko@chromium.org</owner> |
| <summary> |
| The count of active renderer processes. Recorded once per UMA ping. Covers |
| all renderer processes, including ones hosting web content (i.e. http(s):// |
| and/or file://), extensions (i.e. chrome-extension://) and WebUI (i.e. |
| chrome://). |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| Computed based on count of RenderProcessHost objects that are |
| IsInitializedAndNotDead (i.e. have been launched and not terminated yet). |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.RenderProcessHost.Count.OriginAgentClusterOverhead" |
| units="processes" expires_after="2025-02-16"> |
| <owner>wjmaclean@chromium.org</owner> |
| <owner>alexmos@chromium.org</owner> |
| <owner>creis@chromium.org</owner> |
| <summary> |
| An estimate of additional processes created due to origin-keyed processes, |
| including OriginAgentCluster (OAC) headers and OriginKeyedProcessesByDefault |
| mode. Computed assuming no coalescing of multiple BrowsingInstances into a |
| single RenderProcess (including no subframe process reuse), and only when |
| cross-process origin isolation occurs due to the OAC header or |
| OriginKeyedProcessesByDefault. Given this, the count of additional |
| SiteInstances corresponds exactly to the additional number of |
| RenderProcesses that that are due to origin-keying, and therefore gives a |
| sense of how much process count overhead it creates. Recorded once per UMA |
| ping. |
| |
| Note: when the feature OriginKeyedProcessesByDefault is enabled, all |
| navigations are treated as if the OAC opt-in header is present, unless the |
| OAC opt-out header is present. As a result, any analyses of this metric |
| should separate users with and without OriginKeyedProcessesByDefault, to |
| distinguish actual header adoption. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.RenderProcessHost.Count.SandboxedIframeOverhead" |
| units="processes" expires_after="2025-01-26"> |
| <owner>wjmaclean@chromium.org</owner> |
| <owner>alexmos@chromium.org</owner> |
| <owner>creis@chromium.org</owner> |
| <summary> |
| The number of renderer processes that represent sandboxed iframes, computed |
| by counting the number of RenderProcessHosts allocated to them. This will be |
| zero when SiteIsolationPolicy::AreIsolatedSandboxedIframesEnabled() is |
| false. Recorded once per UMA ping. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.RenderProcessHost.Percent.OriginAgentClusterOverhead" |
| units="%" expires_after="2025-02-16"> |
| <owner>wjmaclean@chromium.org</owner> |
| <owner>alexmos@chromium.org</owner> |
| <owner>creis@chromium.org</owner> |
| <summary> |
| The percentage of the total renderer process count that is due to |
| origin-keyed processes, based on the overhead estimate from |
| Memory.RenderProcessHost.Count.OriginAgentClusterProcesses. That value is |
| computed assuming no coalescing of multiple BrowsingInstances into a single |
| RenderProcess (including no subframe process reuse), and only when |
| cross-process origin isolation occurs due to origin-keying. Given this, the |
| percentage of total SiteInstances due to origin-keying corresponds exactly |
| to the percentage of RenderProcesses that origin-keying gives rise to. |
| Recorded once per UMA ping. |
| |
| Note: when the feature OriginKeyedProcessesByDefault is enabled, all |
| navigations are treated as if the OAC opt-in header is present, unless the |
| OAC opt-out header is present. As a result, any analyses of this metric |
| should separate users with and without OriginKeyedProcessesByDefault, to |
| distinguish actual header adoption. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.StackSamplingProfiler.StackSampleSize2" units="KB" |
| expires_after="2025-01-26"> |
| <owner>iby@chromium.org</owner> |
| <owner>chromeos-data-eng@google.com</owner> |
| <summary> |
| The size of the stack copied during a stack profiler capture. One sample per |
| 199 stack captures. Only recorded by clients in the stack-sampled metrics |
| experiment or recording a Chrometto trace. ChromeOS only. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Swap.Worker" units="KB" expires_after="M85"> |
| <owner>hajimehoshi@chromium.org</owner> |
| <owner>kenjibaheux@google.com</owner> |
| <owner>kouhei@chromium.org</owner> |
| <summary> |
| The swap used by each worker process. Each worker process provides one |
| sample. Recorded once per process per UMA ping if the system has swapped. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.System.MemAvailableMB" units="MB" |
| expires_after="2025-02-10"> |
| <owner>andreaorru@chromium.org</owner> |
| <owner>hidehiko@chromium.org</owner> |
| <summary> |
| System-wide estimate of memory available in ChromeOS, without swapping. |
| Calculated from MemFree, SReclaimable, the size of the file LRU lists, and |
| the low watermarks in each zone. The estimate takes into account that the |
| system needs some page cache to function well, and that not all reclaimable |
| slab will be reclaimable, due to items being in use. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.System.MemUsedMB" units="MB" expires_after="2025-02-10"> |
| <owner>andreaorru@chromium.org</owner> |
| <owner>hidehiko@chromium.org</owner> |
| <summary> |
| System-wide estimate of memory used in ChromeOS, calculated as the |
| difference between the amount of total and available memory. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.GpuMappedMemory" units="MB" |
| expires_after="2025-01-05"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>chrome-memory@chromium.org</owner> |
| <summary> |
| Total size of all mapped memory buffers for GPU to/from client transfers. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.HibernatedCanvas.OriginalSize" units="MB" |
| expires_after="2025-01-05"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>chrome-memory@chromium.org</owner> |
| <summary> |
| Total size of all hibernated canvases across all renderers, prior to |
| compression. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.HibernatedCanvas.Size" units="MB" |
| expires_after="2025-01-05"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>chrome-memory@chromium.org</owner> |
| <summary> |
| Total size of all hibernated canvases across all renderers. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.PrivateMemoryFootprint" units="MB" |
| expires_after="never"> |
| <!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <owner>chrome-analysis-team@google.com</owner> |
| <improvement direction="LOWER_IS_BETTER"/> |
| <summary> |
| A rough estimate of the private memory footprint of all processes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| |
| This histogram is of special interest to the chrome-analysis-team@. Do not |
| change its semantics or retire it without talking to them first. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.PrivateMemoryFootprintExcludingWaivedRenderers" |
| units="MB" expires_after="2025-01-05"> |
| <owner>ckitagawa@chromium.org</owner> |
| <owner>yfriedman@chromium.org</owner> |
| <summary> |
| A rough estimate of the private memory footprint of all processes on Android |
| ignoring Renderers with only Waived process bindings. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Memory.Total.PrivateMemoryFootprintVisibleOrHigherPriorityRenderers" |
| units="MB" expires_after="2025-01-05"> |
| <owner>ckitagawa@chromium.org</owner> |
| <owner>yfriedman@chromium.org</owner> |
| <summary> |
| A rough estimate of the private memory footprint of all visible or higher |
| importance processes on Android. This ignores Renderers with Waived or Not |
| Perceptible effective process bindings. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.RendererBlinkGC" units="MB" |
| expires_after="2024-09-15"> |
| <owner>fdoray@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Memory from the Blink heap in all renderer processes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.RendererBlinkGC.Fragmentation" units="MB" |
| expires_after="2024-09-15"> |
| <owner>fdoray@chromium.org</owner> |
| <owner>lizeb@chromium.org</owner> |
| <summary> |
| Memory from the Blink heap which is not used by allocated objects in all |
| renderer processes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.RendererMalloc" units="MB" |
| expires_after="2025-01-31"> |
| <owner>keishi@chromium.org</owner> |
| <owner>kdlee@chromium.org</owner> |
| <summary> |
| A rough estimate of memory allocated by malloc in all renderer processes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.RendererPrivateMemoryFootprint" units="MB" |
| expires_after="2025-01-05"> |
| <owner>tommckee@chromium.org</owner> |
| <summary> |
| A rough estimate of the private memory footprint of all renderer processes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.RendererPrivateMemoryFootprintExcludingWaived" |
| units="MB" expires_after="2024-11-03"> |
| <owner>ckitagawa@chromium.org</owner> |
| <owner>yfriedman@chromium.org</owner> |
| <summary> |
| A rough estimate of the private memory footprint of all renderer processes |
| on Android ignoring Renderers with only Waived process bindings. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android. |
| </summary> |
| </histogram> |
| |
| <histogram |
| name="Memory.Total.RendererPrivateMemoryFootprintVisibleOrHigherPriority" |
| units="MB" expires_after="2025-01-05"> |
| <owner>ckitagawa@chromium.org</owner> |
| <owner>yfriedman@chromium.org</owner> |
| <summary> |
| A rough estimate of the private memory footprint of all renderer processes |
| with visible or higher importance on Android. This ignores Renderers with |
| Waived or Not Perceptible effective process bindings. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.ResidentSet" units="MiB" expires_after="never"> |
| <!-- expires-never: Generic system health metric used to diagnose various performance issues. --> |
| |
| <owner>fdoray@chromium.org</owner> |
| <summary> |
| The size of the resident memory in all processes. This is influenced by |
| factors we control (e.g. memory that is not accessed can be swapped) and |
| factors we don't control (e.g. an unrelated process using a lot of memory |
| can force memory in our process to be swapped). Recorded on |
| Windows/Linux/ChromeOS/Android. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| Note: This metric is a simple sum of the resident set of all processes and |
| this cause some double accounting for the shared portion of the working set. |
| As a result this metric doesn't give an exact representation of how much |
| physical memory is used by Chrome. |
| |
| This resident memory metric cannot be compared across platforms because each |
| platform relies on platform-level APIs for accounting. As such, though this |
| attempts to measure private memory footprint as best as possible, it does |
| not measure the same thing on each platform. We have not found a good way to |
| compare any system level memory metric across platforms due to the different |
| nature of memory management on each platform. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.SharedMemoryFootprint" units="MB" |
| expires_after="2025-02-02"> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| A rough estimate of the shared memory footprint of all processes. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.SystemCommitLimit" units="GB" |
| expires_after="2023-05-07"> |
| <owner>zmo@chromium.org</owner> |
| <owner>graphics-dev@chromium.org</owner> |
| <summary> |
| Records the system commit limit (number of total pages) x page size, |
| collected in the info collection GPU process, once per UMA ping. This is |
| Windows platform only. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.Total.TileMemory" units="MB" expires_after="2025-01-05"> |
| <owner>lizeb@chromium.org</owner> |
| <owner>chrome-gpu-memory@google.com</owner> |
| <summary> |
| Total (GPU) memory used for tiles, across all consumers. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.VMMMS.{ClientName}.DecisionLatency" units="ms" |
| expires_after="2024-12-30"> |
| <owner>kalutes@google.com</owner> |
| <owner>cwd@google.com</owner> |
| <owner>cros-vm-technology@google.com</owner> |
| <summary> |
| The time the Virtual Machine Memory Management Service added to a kill |
| decision from a client. Logged after a client asks the VMMMS to change a |
| balloon size to avoid killing an app or discarding a tab. |
| </summary> |
| <token key="ClientName" variants="VmmmsClientName"/> |
| </histogram> |
| |
| <histogram name="Memory.VMMMS.{ClientName}.DecisionTimeout" |
| enum="VmmmsRequestPriority" expires_after="2024-12-30"> |
| <owner>kalutes@google.com</owner> |
| <owner>cwd@google.com</owner> |
| <owner>cros-vm-technology@google.com</owner> |
| <summary> |
| The priority of each kill decision request that timed out. Logged after a |
| client asks the VMMMS to change a balloon size to avoid killing an app or |
| discarding a tab. |
| </summary> |
| <token key="ClientName" variants="VmmmsClientName"/> |
| </histogram> |
| |
| <histogram name="Memory.VMMMS.{ClientName}.UnnecessaryKill" |
| enum="VmmmsRequestPriority" expires_after="2024-12-30"> |
| <owner>kalutes@google.com</owner> |
| <owner>cwd@google.com</owner> |
| <owner>cros-vm-technology@google.com</owner> |
| <summary> |
| The priority of each kill decision request that timed out leading to an |
| unnecessary app kill or tab discard. Logged after a client asks the VMMMS to |
| change a balloon size to avoid killing an app or discarding a tab. |
| </summary> |
| <token key="ClientName" variants="VmmmsClientName"/> |
| </histogram> |
| |
| <histogram name="Memory.VMMMS.{VmName}.Deflate" units="MiB" |
| expires_after="2024-12-30"> |
| <owner>kalutes@google.com</owner> |
| <owner>cwd@google.com</owner> |
| <owner>cros-vm-technology@google.com</owner> |
| <summary> |
| When the balloon for a given VM is deflated, the size of the deflation. |
| </summary> |
| <token key="VmName" variants="VmmmsVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VMMMS.{VmName}.Inflate" units="MiB" |
| expires_after="2024-12-30"> |
| <owner>kalutes@google.com</owner> |
| <owner>cwd@google.com</owner> |
| <owner>cros-vm-technology@google.com</owner> |
| <summary> |
| When the balloon for a given VM is inflated, the size of the inlfation. |
| </summary> |
| <token key="VmName" variants="VmmmsVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VMMMS.{VmName}.ResizeInterval" units="ms" |
| expires_after="2024-12-30"> |
| <owner>kalutes@google.com</owner> |
| <owner>cwd@google.com</owner> |
| <owner>cros-vm-technology@google.com</owner> |
| <summary> |
| When the balloon for a given VM resizes, the time since the previous resize. |
| </summary> |
| <token key="VmName" variants="VmmmsVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VMMMS.{VmName}.Size10Minutes" units="MiB" |
| expires_after="2024-12-30"> |
| <owner>kalutes@google.com</owner> |
| <owner>cwd@google.com</owner> |
| <owner>cros-vm-technology@google.com</owner> |
| <summary> |
| The size of the balloon for a given VM. Logged every 10 minutes. |
| </summary> |
| <token key="VmName" variants="VmmmsVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VMMMS.{VmName}.StallThroughput" units="MiB/s" |
| expires_after="2024-12-30"> |
| <owner>kalutes@google.com</owner> |
| <owner>cwd@google.com</owner> |
| <owner>cros-vm-technology@google.com</owner> |
| <summary>The inflation rate of a balloon when a stall is detected.</summary> |
| <token key="VmName" variants="VmmmsVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VmmSwap.TotalBytesWrittenInAWeek" units="MiB" |
| expires_after="2025-02-10"> |
| <owner>kawasin@google.com</owner> |
| <owner>sstan@google.com</owner> |
| <summary> |
| The total bytes written by vmm-swap feature for a week. This is sent weekly |
| once any disk writes for vmm-swap has done. Once reporting has started it |
| reports weekly even if the total bytes written is zero. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.VmmSwap.{VmName}.ActiveAfterEnableDuration" |
| units="Hours" expires_after="2025-02-10"> |
| <owner>kawasin@google.com</owner> |
| <owner>sstan@google.com</owner> |
| <summary> |
| The duration how long it was spent with vmm-swap enabled. This is sent with |
| ".InactiveBeforeEnableDuration" metrics when vmm-swap is disabled. |
| Shorter ".InactiveBeforeEnableDuration" and longer |
| ".ActiveAfterEnableDuration" indicates the vmm-swap policies are |
| doing a good job at deciding when to enable vmm-swap. |
| </summary> |
| <token key="VmName" variants="VmmSwapVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VmmSwap.{VmName}.AvgPagesInFile" units="Pages" |
| expires_after="2025-02-10"> |
| <owner>kawasin@google.com</owner> |
| <owner>sstan@google.com</owner> |
| <summary> |
| An lower bound estimate of the average number of pages resident on disk over |
| the duration of the vmm-swap period. Even if the actual page size is not |
| 4KiB, it is recalculated to be the number of 4KiB pages. This is sent when |
| vmm-swap is disabled. |
| </summary> |
| <token key="VmName" variants="VmmSwapVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VmmSwap.{VmName}.DisableReason" |
| enum="VmmSwapDisableReason" expires_after="2025-02-10"> |
| <owner>kawasin@google.com</owner> |
| <owner>sstan@google.com</owner> |
| <summary> |
| Tracks events that would cause vmm-swap to be disabled. This is sent |
| regardless of whether or not vmm-swap was actually active - i.e. alongside |
| both ".ActiveAfterEnableDuration" and |
| ".InactiveNoEnableDuration". Each event type is broken down into |
| two enum values - one for the inactive and one for the active case. |
| </summary> |
| <token key="VmName" variants="VmmSwapVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VmmSwap.{VmName}.InactiveBeforeEnableDuration" |
| units="Hours" expires_after="2024-10-06"> |
| <owner>kawasin@google.com</owner> |
| <owner>sstan@google.com</owner> |
| <summary> |
| The duration how long it was spent waiting to enable vmm-swap since it |
| becomes swappable-idle. This is sent with |
| ".ActiveAfterEnableDuration" metrics when vmm-swap is disabled. |
| </summary> |
| <token key="VmName" variants="VmmSwapVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VmmSwap.{VmName}.InactiveNoEnableDuration" |
| units="Hours" expires_after="2025-02-10"> |
| <owner>kawasin@google.com</owner> |
| <owner>sstan@google.com</owner> |
| <summary> |
| The duration how long it was spend without vmm-swap enabled and it exits |
| swappable-idle. This is sent when vmm-swap is disabled. If reported values |
| are mostly long, it indicates that the policies are missing chances to |
| enable vmm-swap. |
| </summary> |
| <token key="VmName" variants="VmmSwapVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VmmSwap.{VmName}.MinPagesInFile" units="Pages" |
| expires_after="2025-02-10"> |
| <owner>kawasin@google.com</owner> |
| <owner>sstan@google.com</owner> |
| <summary> |
| The minimum number of pages resident on disk any given point during the |
| vmm-swap period. Even if the actual page size is not 4KiB, it is |
| recalculated to be the number of 4KiB pages. This is sent when vmm-swap is |
| disabled. |
| </summary> |
| <token key="VmName" variants="VmmSwapVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VmmSwap.{VmName}.PageAverageDurationInFile" |
| units="Seconds" expires_after="2025-02-10"> |
| <owner>kawasin@google.com</owner> |
| <owner>sstan@google.com</owner> |
| <summary> |
| The average duration of each page of the guest memory lives in the swap |
| file. We expect most cold pages live in the swap file for a long time and |
| hot pages are not swapped out but kept in the memory. The durations are |
| measured every 10 minutes to estimate the average duration. This is sent |
| when vmm-swap is disabled. |
| </summary> |
| <token key="VmName" variants="VmmSwapVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VmmSwap.{VmName}.PolicyResult" |
| enum="VmmSwapPolicyResult" expires_after="2025-02-10"> |
| <owner>kawasin@google.com</owner> |
| <owner>sstan@google.com</owner> |
| <summary> |
| Tracks the policy decision made when deciding how to handle a swap enable |
| dbus request. Indicates if a request was accepted or why it was rejected. |
| Each decision result is further broken down into whether it occured while |
| handling an initial enable request or a maintenance request. |
| </summary> |
| <token key="VmName" variants="VmmSwapVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.VmmSwap.{VmName}.State" enum="VmmSwapState" |
| expires_after="2025-02-10"> |
| <owner>kawasin@google.com</owner> |
| <owner>sstan@google.com</owner> |
| <summary> |
| Sends the vmm-swap state (enabled or disabled) every 10 minutes while the vm |
| is swappable-idle. Vmm-swap may not be enabled by policies to protect disk. |
| This metrics indicates what percentage of time in the swappable-idle state |
| is spent with vmm-swap enabled and how well the policies works. |
| </summary> |
| <token key="VmName" variants="VmmSwapVmName"/> |
| </histogram> |
| |
| <histogram name="Memory.Worker" units="KB" expires_after="M85"> |
| <owner>hajimehoshi@chromium.org</owner> |
| <owner>kenjibaheux@google.com</owner> |
| <owner>kouhei@chromium.org</owner> |
| <summary> |
| The private working set used by each worker process. Each worker process |
| provides one sample. Recorded once per process per UMA ping. |
| </summary> |
| </histogram> |
| |
| <histogram name="Memory.{UtilityProcessType}.PrivateMemoryFootprint" units="MB" |
| expires_after="never"> |
| <!-- expires-never: useful diagnostic metric for changes in |
| Memory.Total.PrivateMemoryFootprint, which never expires. --> |
| |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| A rough estimate of the private memory footprint of the {UtilityProcessType} |
| process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This memory footprint metric cannot be compared across platforms because |
| each platform relies on platform-level APIs for accounting. As such, though |
| this attempts to measure private memory footprint as best as possible, it |
| does not measure the same thing on each platform. We have not found a good |
| way to compare any system level memory metric across platforms due to the |
| different nature of memory management on each platform. |
| </summary> |
| <token key="UtilityProcessType" variants="UtilityProcessType"/> |
| </histogram> |
| |
| <histogram name="Memory.{UtilityProcessType}.PrivateSwapFootprint" units="MB" |
| expires_after="2025-02-10"> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| An amount of private memory of the {UtilityProcessType} process placed in |
| swap (VmSwap). Available on Android, Linux and ChromeOS. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| Note: Histogram data may be missing for mid-2020 due to expiry. |
| </summary> |
| <token key="UtilityProcessType" variants="UtilityProcessType"/> |
| </histogram> |
| |
| <histogram name="Memory.{UtilityProcessType}.ResidentSet" units="MiB" |
| expires_after="never"> |
| <!-- expires-never: Generic system health metric used to diagnose various performance issues. --> |
| |
| <owner>fdoray@chromium.org</owner> |
| <summary> |
| The size of the resident memory in a {UtilityProcessType} process. This is |
| influenced by factors we control (e.g. memory that is not accessed can be |
| swapped) and factors we don't control (e.g. an unrelated process using a lot |
| of memory can force memory in our process to be swapped). Recorded on |
| Windows/Linux/ChromeOS/Android. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| This resident memory metric cannot be compared across platforms because each |
| platform relies on platform-level APIs for accounting. As such, though this |
| attempts to measure private memory footprint as best as possible, it does |
| not measure the same thing on each platform. We have not found a good way to |
| compare any system level memory metric across platforms due to the different |
| nature of memory management on each platform. |
| </summary> |
| <token key="UtilityProcessType" variants="UtilityProcessType"/> |
| </histogram> |
| |
| <histogram name="Memory.{UtilityProcessType}.SharedMemoryFootprint" units="MB" |
| expires_after="2025-02-10"> |
| <owner>erikchen@chromium.org</owner> |
| <owner>ssid@chromium.org</owner> |
| <summary> |
| A rough estimate of the shared memory footprint of the {UtilityProcessType} |
| process. |
| |
| Recorded at Poisson sampled time intervals with a mean of 5 minutes on |
| Android and 30 minutes on other platforms. |
| |
| Note: Histogram data may be missing between M77 to M87 due to expiry. |
| </summary> |
| <token key="UtilityProcessType" variants="UtilityProcessType"/> |
| </histogram> |
| |
| <histogram name="MemoryAndroid.EvictedTreeSize2" units="units" |
| expires_after="2024-09-01"> |
| <owner>jonross@chromium.org</owner> |
| <owner>chrome-gpu-metrics@google.com</owner> |
| <summary> |
| The total count of viz::SurfaceIds being evicted for the current FrameTree. |
| Along with any surfaces that were embedded before a navigation occurred. |
| |
| This will be emitted whenever we evict one DelegatedFrameHostAndroid. |
| </summary> |
| </histogram> |
| |
| <histogram name="MemoryAndroid.EvictionReason" enum="AndroidEvictionReason" |
| expires_after="M85"> |
| <owner>hajimehoshi@chromium.org</owner> |
| <owner>kenjibaheux@google.com</owner> |
| <owner>kouhei@chromium.org</owner> |
| <summary> |
| Reasons behind evictions of individual tabs, recorded upon each tab |
| eviction. |
| </summary> |
| </histogram> |
| |
| <histogram name="MemoryAndroid.LowMemoryLoadedTabCount" units="units" |
| expires_after="M85"> |
| <owner>hajimehoshi@chromium.org</owner> |
| <owner>kenjibaheux@google.com</owner> |
| <owner>kouhei@chromium.org</owner> |
| <summary> |
| Number of loaded (memory-resident) tabs when LowMemory notification is |
| delivered. |
| </summary> |
| </histogram> |
| |
| <histogram name="MemoryAndroid.LowRamDevice" enum="Boolean" |
| expires_after="never"> |
| <!-- expires-never: used internally for filtering --> |
| |
| <owner>ssid@chromium.org</owner> |
| <owner>chrome-metrics-team@google.com</owner> |
| <summary> |
| Whether Chrome is running in low ram mode. This histogram is reported on |
| every upload by Android devices. A device is considered low-RAM if it has |
| 512MiB of RAM or lower (see SysUtils.detectLowEndDevice()). |
| </summary> |
| </histogram> |
| |
| </histograms> |
| |
| </histogram-configuration> |