blob: bf54f5d756ac7351331a1f01ae0f61ce028479cd [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors. All rights reserved.
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 send CLs to chromium-metrics-reviews@google.com rather than to specific
individuals. These CLs will be automatically reassigned to a reviewer within
about 5 minutes. This approach helps the metrics team to load-balance incoming
reviews. Googlers can read more about this at go/gwsq-gerrit.
-->
<histogram-configuration>
<histograms>
<histogram name="Memory.AudioService.PrivateMemoryFootprint" units="MB"
expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->
<owner>marinaciocea@chromium.org</owner>
<owner>maxmorin@chromium.org</owner>
<owner>olka@chromium.org</owner>
<summary>
A rough estimate of the private memory footprint of the audio service
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.AudioService.PrivateSwapFootprint" units="MB"
expires_after="2022-01-10">
<owner>olka@chromium.org</owner>
<owner>guidou@chromium.org</owner>
<summary>
An amount of private memory of the audio service process placed in swap
(VmSwap).
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.AudioService.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 audio service 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 once 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.
</summary>
</histogram>
<histogram name="Memory.AudioService.SharedMemoryFootprint" units="MB"
expires_after="2022-01-10">
<owner>olka@chromium.org</owner>
<owner>guidou@chromium.org</owner>
<summary>
A rough estimate of the shared memory footprint of the audio service
process.
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.BackgroundTask.Browser.PrivateMemoryFootprint" units="MiB"
expires_after="2021-05-30">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
<owner>hnakashima@chromium.org</owner>
<summary>
A rough estimate of the private memory footprint of the browser process
while an Android background task is running. Recorded once per background
task, with a random delay of 0s to 60s after it starts. Available only on
Android.
</summary>
</histogram>
<histogram base="true"
name="Memory.BackgroundTask.Browser.PrivateSwapFootprint" units="MiB"
expires_after="2021-09-15">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
<owner>hnakashima@chromium.org</owner>
<summary>
An amount of private memory the browser process placed in swap (VmSwap) by
the browser process while an Android background task is running in Full
Browser Mode. Recorded once per background task, with a random delay of 0s
to 60s after it starts. Available only on Android.
</summary>
</histogram>
<histogram base="true" name="Memory.BackgroundTask.Browser.ResidentSet"
units="MiB" expires_after="2021-05-30">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
<owner>hnakashima@chromium.org</owner>
<summary>
The size of the resident memory in a browser process while an Android
background task is running. Recorded once per background task, with a random
delay of 0s to 60s after it starts. Available only on Android.
</summary>
</histogram>
<histogram base="true"
name="Memory.BackgroundTask.Browser.SharedMemoryFootprint" units="MiB"
expires_after="2021-09-15">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
<owner>hnakashima@chromium.org</owner>
<summary>
A rough estimate of the shared memory footprint of the browser process while
an Android background task is running. Recorded once per background task,
with a random delay of 0s to 60s after it starts. Available only on Android.
</summary>
</histogram>
<histogram base="true"
name="Memory.BackgroundTask.OfflinePrefetch.Browser.PrivateMemoryFootprint"
units="MiB" expires_after="2021-03-28">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
<owner>hnakashima@chromium.org</owner>
<summary>
A rough estimate of the private memory footprint of the browser process
while the Android Offline Prefetch Android background task is running.
Recorded once per background task, with a random delay of 0s to 60s after it
starts. The same value is recorded into
Memory.BackgroundTask.Browser.PrivateMemoryFootprint, which aggregates all
task types. Available only on Android.
</summary>
</histogram>
<histogram base="true"
name="Memory.BackgroundTask.OfflinePrefetch.Browser.PrivateSwapFootprint"
units="MiB" expires_after="2021-09-15">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
<owner>hnakashima@chromium.org</owner>
<summary>
An amount of private memory the browser process placed in swap (VmSwap) by
the browser process while the Android Offline Prefetch Android background
task is running in Full Browser Mode. Recorded once per background task,
with a random delay of 0s to 60s after it starts. The same value is recorded
into Memory.BackgroundTask.Browser.PrivateSwapFootprint, which aggregates
all task types. Available only on Android.
</summary>
</histogram>
<histogram base="true"
name="Memory.BackgroundTask.OfflinePrefetch.Browser.ResidentSet"
units="MiB" expires_after="2021-09-15">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
<owner>hnakashima@chromium.org</owner>
<summary>
The size of the resident memory in a browser process while the Android
Offline Prefetch Android background task is running. Recorded once per
background task, with a random delay of 0s to 60s after it starts. The same
value is recorded into Memory.BackgroundTask.Browser.ResidentSet, which
aggregates all task types. Available only on Android.
</summary>
</histogram>
<histogram base="true"
name="Memory.BackgroundTask.OfflinePrefetch.Browser.SharedMemoryFootprint"
units="MiB" expires_after="2021-09-15">
<!-- Name completed by histogram_suffixes name="BrowserRunningMode" -->
<owner>hanxi@chromium.org</owner>
<owner>hnakashima@chromium.org</owner>
<summary>
A rough estimate of the shared memory footprint of the browser process while
the Android Offline Prefetch background task is running. Recorded once per
background task, with a random delay of 0s to 60s after it starts. The same
value is recorded into Memory.BackgroundTask.Browser.SharedMemoryFootprint,
which aggregates all task types. Available only on Android.
</summary>
</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>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
iOS is single-process.
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="2021-08-27">
<owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@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="2021-08-27">
<owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@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.
&quot;true&quot; 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="2021-08-27">
<owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@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="2021-08-27">
<owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@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.NumLiveOverscroll" units="tabs"
expires_after="2021-07-11">
<owner>rkgibson@google.com</owner>
<owner>eugenebut@chromium.org</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 live OverscrollActionsControllers
there are. This is recorded every time histograms are uploaded.
</summary>
</histogram>
<histogram name="Memory.Browser.MemoryFootprint.NumOpenTabs" units="tabs"
expires_after="2021-07-11">
<owner>rkgibson@google.com</owner>
<owner>eugenebut@chromium.org</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="2021-08-27">
<owner>eugenebut@chromium.org</owner>
<owner>olivierrobin@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>
<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 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="2022-01-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.
</summary>
</histogram>
<histogram name="Memory.Browser.SharedMemoryFootprint" units="MB"
expires_after="2022-01-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.FreeListReleaseTime" units="ms"
expires_after="2021-08-01">
<owner>thiabaud@google.com</owner>
<owner>lizeb@chromium.org</owner>
<summary>
Records how long it takes for memory to be released from the freelist of the
discardable shared memory allocator with |madvise|.
</summary>
</histogram>
<histogram name="Memory.Discardable.FreelistSize.Foreground" units="KiB"
expires_after="2021-05-30">
<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="2021-07-11">
<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="2021-07-11">
<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="2021-05-30">
<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="2021-05-30">
<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="2021-08-09">
<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.Browser.EGLShaderCacheSize.Android"
units="KB" expires_after="M77">
<owner>ericrk@chromium.org</owner>
<summary>
The size of the EGL_ANDROID_blob_cache cache file on disk. Recorded once per
Chrome launch, after the first page has loaded.
</summary>
</histogram>
<histogram base="true" name="Memory.Experimental.Browser2" units="MB"
expires_after="2022-01-10">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
<owner>erikchen@chromium.org</owner>
<owner>ssid@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="2022-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>
<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="2022-01-10">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->
<owner>erikchen@chromium.org</owner>
<owner>ssid@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="2022-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>
<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 name="Memory.Experimental.Debug.FailedProcessDumpsPerGlobalDump"
units="failures" expires_after="M82">
<owner>ssid@chromium.org</owner>
<owner>erikchen@chromium.org</owner>
<summary>
Records how many failed process dumps there were for a given global dump
completed by the memory instrumentation service
(resource_coordinator/memory_instrumentation/coordinator_impl.h). This is
recorded once each time a global dump request is completed.
</summary>
</histogram>
<histogram name="Memory.Experimental.Debug.GlobalDumpDuration" units="ms"
expires_after="M82">
<owner>ssid@chromium.org</owner>
<owner>erikchen@chromium.org</owner>
<summary>
Records how long it took the memory instrumentation service
(resource_coordinator/memory_instrumentation/coordinator_impl.h) from
starting working on a global memory dump request until complating that
request. This does not include queuing time (requests are handled serially).
This is recorded once each time a request is completed.
</summary>
</histogram>
<histogram name="Memory.Experimental.Debug.GlobalDumpQueueLength"
units="requests" expires_after="M77">
<owner>ssid@chromium.org</owner>
<owner>erikchen@chromium.org</owner>
<summary>
Number of global memory dump requests queued in by the memory
instrumentation service
(resource_coordinator/memory_instrumentation/coordinator_impl.h). This
includes the request currently being worked on if any. This is recorded once
each time a new request is queued. This happens at least once per UMA ping
to in order to compute Memory.Experimental.Renderer2,
Memory.Experimental.Browser2 etc.
</summary>
</histogram>
<histogram base="true" name="Memory.Experimental.Extension2" units="MB"
expires_after="2022-01-10">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
<owner>erikchen@chromium.org</owner>
<owner>ssid@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="2022-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>
<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="2022-01-10">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->
<owner>erikchen@chromium.org</owner>
<owner>ssid@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="2022-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>
<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="2022-01-10">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
<owner>erikchen@chromium.org</owner>
<owner>ssid@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="2022-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>
<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="2022-01-10">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->
<owner>erikchen@chromium.org</owner>
<owner>ssid@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="2022-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>
<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.GpuChannelManagerPressureHandlerDuration"
units="ms" expires_after="2021-06-20">
<!-- Name completed by histogram_suffixes name="GpuChannelManagerPressureHandlerDetails" -->
<owner>sebmarchand@chromium.org</owner>
<owner>catan-team@chromium.org</owner>
<summary>
The time taken by the call to the various memory pressure handlers in
GpuChannelManager::HandleMemoryPressure.
</summary>
</histogram>
<histogram base="true" name="Memory.Experimental.NetworkService2" units="MiB"
expires_after="2022-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>
<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="2022-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>
<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="2022-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>
<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="2022-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>
<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.ReducedBlinkUsageAfter10secs2"
units="MB" expires_after="2019-7-31">
<owner>yuzus@chromium.org</owner>
<owner>keishi@chromium.org</owner>
<summary>
Reduced amount of blink usage after 10 seconds of intervention. This reports
positive numbers when reduced.
</summary>
</histogram>
<histogram
name="Memory.Experimental.OomIntervention.ReducedBlinkUsageAfter20secs2"
units="MB" expires_after="2019-7-31">
<owner>yuzus@chromium.org</owner>
<owner>keishi@chromium.org</owner>
<summary>
Reduced amount of blink usage after 20 seconds of intervention. This reports
positive numbers when reduced.
</summary>
</histogram>
<histogram
name="Memory.Experimental.OomIntervention.ReducedBlinkUsageAfter30secs2"
units="MB" expires_after="2019-7-31">
<owner>yuzus@chromium.org</owner>
<owner>keishi@chromium.org</owner>
<summary>
Reduced amount of blink usage after 30 seconds of intervention. This reports
positive numbers when reduced.
</summary>
</histogram>
<histogram
name="Memory.Experimental.OomIntervention.ReducedRendererPMFAfter10secs2"
units="MB" expires_after="2019-7-31">
<owner>yuzus@chromium.org</owner>
<owner>keishi@chromium.org</owner>
<summary>
Reduced amount of renderer pmf after 10 seconds of intervention. This
reports positive numbers when reduced.
</summary>
</histogram>
<histogram
name="Memory.Experimental.OomIntervention.ReducedRendererPMFAfter20secs2"
units="MB" expires_after="2019-7-31">
<owner>yuzus@chromium.org</owner>
<owner>keishi@chromium.org</owner>
<summary>
Reduced amount of renderer pmf after 20 seconds of intervention. This
reports positive numbers when reduced.
</summary>
</histogram>
<histogram
name="Memory.Experimental.OomIntervention.ReducedRendererPMFAfter30secs2"
units="MB" expires_after="2019-7-31">
<owner>yuzus@chromium.org</owner>
<owner>keishi@chromium.org</owner>
<summary>
Reduced amount of renderer pmf after 30 seconds of intervention. This
reports positive numbers when reduced.
</summary>
</histogram>
<histogram name="Memory.Experimental.OomIntervention.RendererBlinkUsage"
units="MB" expires_after="M85">
<owner>yuzus@chromium.org</owner>
<summary>
The renderer process's memory usage reported every second when OOM
intervention is enabled.
</summary>
</histogram>
<histogram name="Memory.Experimental.OomIntervention.RendererBlinkUsageAtOOM"
units="MB" expires_after="M77">
<owner>ssid@chromium.org</owner>
<summary>
The renderer process' Blink memory usage, as sum of V8, PartitionAlloc and
BlinkGC allocations, when a foreground OOM occurs. This was last recorded
metric by renderer a few seconds before getting killed.
</summary>
</histogram>
<histogram
name="Memory.Experimental.OomIntervention.RendererPrivateMemoryFootprint"
units="MB" expires_after="2020-06-07">
<owner>yuzus@chromium.org</owner>
<summary>
The renderer process's PMF size reported every second when OOM intervention
is enabled.
</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.OomIntervention.RendererSwapFootPrint"
units="MB" expires_after="M85">
<owner>yuzus@chromium.org</owner>
<summary>
The renderer process's swap size reported every second when OOM intervention
is enabled.
</summary>
</histogram>
<histogram
name="Memory.Experimental.OomIntervention.RendererSwapFootprintAtOOM"
units="MB" expires_after="M85">
<owner>ssid@chromium.org</owner>
<owner>bashi@chromium.org</owner>
<summary>
The renderer process' swap size when a foreground OOM occurs. This was last
recorded metric by renderer a few seconds before getting killed.
</summary>
</histogram>
<histogram
name="Memory.Experimental.OomIntervention.RendererTimeSinceLastNavigationAtDetection"
units="seconds" expires_after="2019-07-31">
<owner>yuzus@chromium.org</owner>
<owner>keishi@chromium.org</owner>
<summary>
Records the time since last main frame navigation start on the renderer
process when high memory usage is detected. Record only when navigation
happened at least once.
</summary>
</histogram>
<histogram
name="Memory.Experimental.OomIntervention.RendererTimeSinceLastNavigationAtOOM"
units="seconds" expires_after="M82">
<owner>ssid@chromium.org</owner>
<owner>haraken@chromium.org</owner>
<summary>
Records the time since last main frame navigation start on the renderer
process when it OOMs in foreground visible state. Record 0 if no navigation
was started.
</summary>
</histogram>
<histogram
name="Memory.Experimental.OomIntervention.RendererTimeSinceStartMonitoringAtDetection"
units="seconds" expires_after="2019-07-31">
<owner>yuzus@chromium.org</owner>
<owner>keishi@chromium.org</owner>
<summary>
Records the time since starting monitor on renderer when high memory usage
is detected.
</summary>
</histogram>
<histogram name="Memory.Experimental.OomIntervention.RendererVMSize" units="MB"
expires_after="M85">
<owner>yuzus@chromium.org</owner>
<summary>
The renderer process's virtual memory usage reported every second when OOM
intervention is enabled.
</summary>
</histogram>
<histogram name="Memory.Experimental.OomIntervention.RendererVmSizeAtOOMLarge"
units="MB" expires_after="M85">
<owner>ssid@chromium.org</owner>
<owner>bashi@chromium.org</owner>
<summary>
The renderer process' virtual memory usage, when a foreground OOM occurs.
This was last recorded metric by renderer a few seconds before getting
killed.
</summary>
</histogram>
<histogram name="Memory.Experimental.OomIntervention.V8UsageAfter10secs"
units="MB" expires_after="M85">
<owner>keishi@chromium.org</owner>
<owner>yuzus@chromium.org</owner>
<summary>V8 memory usage 10 seconds after intervention.</summary>
</histogram>
<histogram name="Memory.Experimental.OomIntervention.V8UsageAfter20secs"
units="MB" expires_after="M85">
<owner>keishi@chromium.org</owner>
<owner>yuzus@chromium.org</owner>
<summary>V8 memory usage 20 seconds after intervention.</summary>
</histogram>
<histogram name="Memory.Experimental.OomIntervention.V8UsageAfter30secs"
units="MB" expires_after="2020-02-02">
<owner>keishi@chromium.org</owner>
<owner>yuzus@chromium.org</owner>
<summary>V8 memory usage 30 seconds after intervention.</summary>
</histogram>
<histogram name="Memory.Experimental.OomIntervention.V8UsageBefore" units="MB"
expires_after="M85">
<owner>keishi@chromium.org</owner>
<owner>yuzus@chromium.org</owner>
<summary>V8 memory usage right before intervention.</summary>
</histogram>
<histogram base="true" name="Memory.Experimental.Renderer" units="MB"
expires_after="2021-04-18">
<!-- Name completed by histogram_suffixes name="RendererMemoryAllocator" -->
<owner>keishi@chromium.org</owner>
<summary>
The renderer process's memory usage at the specific timing, i.e. after a
page load and 5/10/15minutes after backgrounded.
</summary>
</histogram>
<histogram name="Memory.Experimental.Renderer.HighestPrivateMemoryFootprint"
units="MB" expires_after="2021-07-11">
<owner>tasak@google.com</owner>
<owner>bartekn@google.com</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.
</summary>
</histogram>
<histogram name="Memory.Experimental.Renderer.LoadsInMainFrameDuringUptime"
units="loads" expires_after="M77">
<owner>keishi@chromium.org</owner>
<summary>
The number of loads in a main frame during the lifetime of a render process
(excludes extensions). Emitted when the processes quits.
</summary>
</histogram>
<histogram
name="Memory.Experimental.Renderer.PeakResidentSet.AtHighestPrivateMemoryFootprint"
units="MB" expires_after="2021-06-06">
<owner>tasak@google.com</owner>
<owner>bartekn@google.com</owner>
<summary>
The peak RSS size(VmHMW) of a render process when the highest private memory
footprint is observed after the first navigation start.
</summary>
</histogram>
<histogram name="Memory.Experimental.Renderer.Uptime" units="ms"
expires_after="2021-06-20">
<owner>keishi@chromium.org</owner>
<summary>
The uptime of a render process in time ticks (excludes extensions). Emitted
when the processes quits.
</summary>
</histogram>
<histogram
name="Memory.Experimental.Renderer.WebpageCount.AtHighestPrivateMemoryFootprint"
units="counts" expires_after="2020-12-31">
<owner>tasak@google.com</owner>
<owner>bartekn@google.com</owner>
<summary>
The number of webpages when the highest private memory footprint of renderer
process is observed after the first navigation start.
</summary>
</histogram>
<histogram base="true" name="Memory.Experimental.Renderer2" units="MB"
expires_after="2022-01-10">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
<owner>erikchen@chromium.org</owner>
<owner>ssid@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="2022-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>
<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="2022-01-10">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->
<owner>erikchen@chromium.org</owner>
<owner>ssid@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="2022-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>
<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.Total2.PrivateMemoryFootprint" units="MB"
expires_after="2022-01-10">
<owner>erikchen@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<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.
</summary>
</histogram>
<histogram
name="Memory.Experimental.UserLevelMemoryPressureSignal.RendererPrivateMemoryFootprintAfter"
units="MB" expires_after="2019-09-30">
<owner>keishi@chromium.org</owner>
<owner>tasak@chromium.org</owner>
<summary>
The renderer process' private memory footprint 10 seconds after a memory
pressure signal is generated.
</summary>
</histogram>
<histogram
name="Memory.Experimental.UserLevelMemoryPressureSignal.RendererPrivateMemoryFootprintBefore"
units="MB" expires_after="2021-06-20">
<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.
</summary>
</histogram>
<histogram base="true" name="Memory.Experimental.Utility2" units="MB"
expires_after="2022-01-10">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" -->
<owner>erikchen@chromium.org</owner>
<owner>ssid@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="2022-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>
<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="2022-01-10">
<!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" -->
<owner>erikchen@chromium.org</owner>
<owner>ssid@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="2022-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>
<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="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->
<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.
</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.
</summary>
</histogram>
<histogram name="Memory.Extension.SharedMemoryFootprint" units="MB"
expires_after="M77">
<owner>erikchen@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
A rough estimate of the shared 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.
</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 &quot;1.5K units related to glyphs per
renderer per page load&quot;.
</summary>
</histogram>
<histogram base="true" name="Memory.GPU.PeakMemoryAllocationSource" units="KB"
expires_after="2021-06-20">
<!-- Name completed by a combination of the following two histogram_suffixes: -->
<!-- histogram_suffixes name="GPU.PeakMemoryAllocationSourceBase" -->
<!-- and histogram_suffixes name="GPU.PeakMemoryAllocationSource" -->
<owner>jonross@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<owner>sadrul@chromium.org</owner>
<summary>
The maximum amount of memory of the GPU process allocated by a particular
source during a user interaction (e.g. tab-switch, page-load, scroll etc.).
See Memory.GPU.PeakMemoryUsage.
</summary>
</histogram>
<histogram base="true" name="Memory.GPU.PeakMemoryUsage" units="KB"
expires_after="2021-06-20">
<!-- Name completed by histogram_suffixes name="GPU.PeakMemoryUsage" -->
<owner>jonross@chromium.org</owner>
<owner>sadrul@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
The maximum amount of memory of the GPU process during a particular
interaction (e.g. tab-switch, page-load, scroll etc.).
</summary>
</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>
<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 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.
</summary>
</histogram>
<histogram name="Memory.Gpu.SharedMemoryFootprint" units="MB"
expires_after="2022-01-10">
<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="M82">
<owner>hajimehoshi@chromium.org</owner>
<owner>erikchen@chromium.org</owner>
<owner>kenjibaheux@google.com</owner>
<owner>kouhei@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.HeapProfiler.Browser.Malloc" units="MB"
expires_after="M81">
<owner>alph@chromium.org</owner>
<owner>erikchen@chromium.org</owner>
<summary>
Browser process memory allocated with malloc when UMA heap profile is taken.
</summary>
</histogram>
<histogram name="Memory.LowMemoryKiller.Count" units="low-memory kills"
expires_after="2021-10-21">
<owner>vovoy@google.com</owner>
<owner>wvk@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="2021-10-21">
<owner>vovoy@google.com</owner>
<owner>wvk@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="2021-10-21">
<owner>vovoy@google.com</owner>
<owner>wvk@google.com</owner>
<summary>The memory size freed by each low memory kill event.</summary>
</histogram>
<histogram name="Memory.LowMemoryKiller.TimeDelta" units="ms"
expires_after="2021-10-21">
<owner>vovoy@google.com</owner>
<owner>wvk@google.com</owner>
<summary>
The elapsed time between the last low memory kill event and the current low
memory kill event.
</summary>
</histogram>
<histogram name="Memory.NativeLibrary.MappedAndResidentMemoryFootprint3"
units="KB" expires_after="2021-09-27">
<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="2021-06-20">
<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="2021-05-30">
<owner>lizeb@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="2019-12-01">
<owner>lizeb@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="2022-01-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 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.
</summary>
</histogram>
<histogram name="Memory.NetworkService.PrivateSwapFootprint" units="MiB"
expires_after="2022-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.ResidentSet" units="MiB"
expires_after="2020-05-06">
<owner>mmenke@chromium.org</owner>
<owner>morlovich@chromium.org</owner>
<owner>erikchen@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
The size of the resident memory in a network service 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.
</summary>
</histogram>
<histogram name="Memory.NetworkService.SharedMemoryFootprint" units="MiB"
expires_after="2022-01-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.OOMKill.Contents.MemAllocatedMB" units="MB"
expires_after="2021-07-04">
<owner>oshima@chromium.org</owner>
<owner>alemate@chromium.org</owner>
<summary>
System-wide memory allocation right after a renderer was killed by
oom-killer, roughly equivalent to the sum of memory allocated with malloc()
in userspace plus graphics driver memory.
</summary>
</histogram>
<histogram name="Memory.OOMKill.Contents.MemAvailableMB" units="MB"
expires_after="2021-07-04">
<owner>oshima@chromium.org</owner>
<owner>alemate@chromium.org</owner>
<summary>
System-wide file-backed memory plus free memory right after a renderer was
killed by oom-killer, which should be smaller than or close to what the
kernel uses to trigger low-memory notifications for tab discards. If this is
higher than the kernel's threshold for tab discards, renderers may be killed
due to reasons other than out-of-memory.
</summary>
</histogram>
<histogram name="Memory.OOMKill.Contents.MemGraphicsMB" units="MB"
expires_after="2021-07-04">
<owner>oshima@chromium.org</owner>
<owner>alemate@chromium.org</owner>
<summary>
Graphics driver (GEM object) memory right after a renderer was killed by
oom-killer.
</summary>
</histogram>
<histogram name="Memory.OOMKill.Contents.MemShmemMB" units="MB"
expires_after="2021-02-25">
<owner>oshima@chromium.org</owner>
<owner>alemate@chromium.org</owner>
<summary>
System-wide shared memory right after a renderer was killed by oom-killer.
Used primarily for shared buffers in the graphics system. Tracked because
it's a historical source of leaks on Chrome OS.
</summary>
</histogram>
<histogram name="Memory.OOMKill.Extensions.MemAllocatedMB" units="MB"
expires_after="2021-07-04">
<owner>oshima@chromium.org</owner>
<owner>alemate@chromium.org</owner>
<summary>
System-wide memory allocation right after a renderer was killed by
oom-killer, roughly equivalent to the sum of memory allocated with malloc()
in userspace plus graphics driver memory.
</summary>
</histogram>
<histogram name="Memory.OOMKill.Extensions.MemAvailableMB" units="MB"
expires_after="2021-02-25">
<owner>oshima@chromium.org</owner>
<owner>alemate@chromium.org</owner>
<summary>
System-wide file-backed memory plus free memory right after a renderer was
killed by oom-killer, which should be smaller than or close to what the
kernel uses to trigger low-memory notifications for tab discards. If this is
higher than the kernel's threshold for tab discards, renderers may be killed
due to reasons other than out-of-memory.
</summary>
</histogram>
<histogram name="Memory.OOMKill.Extensions.MemGraphicsMB" units="MB"
expires_after="2021-07-04">
<owner>oshima@chromium.org</owner>
<owner>alemate@chromium.org</owner>
<summary>
Graphics driver (GEM object) memory right after a renderer was killed by
oom-killer.
</summary>
</histogram>
<histogram name="Memory.OOMKill.Extensions.MemShmemMB" units="MB"
expires_after="2021-05-02">
<owner>oshima@chromium.org</owner>
<owner>alemate@chromium.org</owner>
<summary>
System-wide shared memory right after a renderer was killed by oom-killer.
Used primarily for shared buffers in the graphics system. Tracked because
it's a historical source of leaks on Chrome OS.
</summary>
</histogram>
<histogram name="Memory.OOMKills.Count" units="kills"
expires_after="2021-10-21">
<owner>vovoy@google.com</owner>
<owner>wvk@google.com</owner>
<summary>Cumulative count of OOM kills in one user session.</summary>
</histogram>
<histogram base="true" name="Memory.OpenFDs" units="files" expires_after="M85">
<!-- Name completed by histogram_suffixes name="MemoryFDsBroswerGpuAndRendererProcess" and name="MemoryFDsAllProcesses" -->
<owner>dcastagna@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
The total number of open file descriptors opened per process. Recorded once
per UMA ping.
</summary>
</histogram>
<histogram base="true" name="Memory.OpenFDsSoftLimit" units="files"
expires_after="M85">
<!-- Name completed by histogram_suffixes name="MemoryFDsBroswerGpuAndRendererProcess" -->
<owner>dcastagna@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
The limit of open file descriptors that can be opened per process. Recorded
once per UMA ping.
</summary>
</histogram>
<histogram name="Memory.PaintPreviewCompositor.PrivateMemoryFootprint"
units="MB" expires_after="2021-06-13">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<summary>
A rough estimate of the private memory footprint of the paint preview
compositor 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.PaintPreviewCompositor.PrivateSwapFootprint" units="MB"
expires_after="2021-06-13">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<summary>
An amount of private memory of the paint preview compositor process placed
in swap (VmSwap).
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.PaintPreviewCompositor.ResidentSet" units="MiB"
expires_after="2021-04-10">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<summary>
The size of the resident memory in a paint preview compositor 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 once 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.
</summary>
</histogram>
<histogram name="Memory.PaintPreviewCompositor.SharedMemoryFootprint"
units="MB" expires_after="2021-06-13">
<owner>ckitagawa@chromium.org</owner>
<owner>fredmello@chromium.org</owner>
<owner>mahmoudi@chromium.org</owner>
<summary>
A rough estimate of the shared memory footprint of the paint preview
compositor 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.ParkableImage.TotalSize.5min" units="KiB"
expires_after="M95">
<owner>thiabaud@google.com</owner>
<owner>lizeb@chromium.org</owner>
<summary>
Total size of encoded image data of BitmapImages. Collected once, 5 minutes
after the first BitmapImage is created.
</summary>
</histogram>
<histogram name="Memory.ParkableString.CompressedSizeKb" units="KB"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<summary>
Total size of compressed ParkableStrings, in KB. Recorded at the same time
as &quot;Memory.ParkableString.TotalSizeKb&quot;.
</summary>
</histogram>
<histogram name="Memory.ParkableString.Compression.Latency"
units="microseconds" expires_after="M82">
<owner>lizeb@chromium.org</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="M82">
<owner>lizeb@chromium.org</owner>
<summary>
Size of a compressed ParkableString, recorded at compression time.
</summary>
</histogram>
<histogram name="Memory.ParkableString.Compression.ThroughputMBps" units="MBps"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<summary>
Size of a compressed ParkableString, recorded at compression time.
</summary>
</histogram>
<histogram name="Memory.ParkableString.CompressionRatio.5min" units="%"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Average compression ratio, 100 * compressed_size / initial_size, for all
compressed ParkableStrings. Recorded at the same time as
&quot;Memory.ParkableString.TotalSizeKb.5min&quot;.
</summary>
</histogram>
<histogram name="Memory.ParkableString.Decompression.Latency"
units="microseconds" expires_after="M82">
<owner>lizeb@chromium.org</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.
</summary>
</histogram>
<histogram name="Memory.ParkableString.Decompression.SizeKb" units="KB"
expires_after="M82">
<owner>lizeb@chromium.org</owner>
<summary>
Original size of a compressed ParkableString, recorded at decompression
time.
</summary>
</histogram>
<histogram name="Memory.ParkableString.Decompression.ThroughputMBps"
units="MBps" expires_after="M82">
<owner>lizeb@chromium.org</owner>
<summary>
Original size of a compressed ParkableString, recorded at decompression
time.
</summary>
</histogram>
<histogram name="Memory.ParkableString.DiskIsUsable.5min" enum="BooleanYesNo"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Whether the disk allocator is usable. Recorded at the same time as
&quot;Memory.ParkableString.TotalSizeKb.5min&quot;. The disk may not be
usable for several reasons, including the profile being an Incognito one,
permssions error, or disk write error.
</summary>
</histogram>
<histogram name="Memory.ParkableString.DiskReadTime.5min" units="ms"
expires_after="M87">
<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="M87">
<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.
</summary>
</histogram>
<histogram name="Memory.ParkableString.MainThreadTime.5min" units="ms"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Total main thread time used by ParkableStrings over the first 5 minutes of a
renderer lifetime. Starting time is from the first ParkableString being
added.
</summary>
</histogram>
<histogram name="Memory.ParkableString.MemorySavingsKb.5min" units="KB"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Sum of memory saved by compression and disk discarding, in KB. Recorded at
the same time as &quot;Memory.ParkableString.TotalSizeKb.5min&quot;, when
disk discarding is enabled.
</summary>
</histogram>
<histogram name="Memory.ParkableString.OnDiskFootprintKb.5min" units="KB"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Total disk footprint used by ParkableStrings including allocator waste, in
KB. Recorded once, 5 minutes after the first ParkableString is added to a
renderer, at the same time as
&quot;Memory.ParkableString.MemorySavings.5min&quot;.
</summary>
</histogram>
<histogram name="Memory.ParkableString.OnDiskSizeKb.5min" units="KB"
expires_after="M87">
<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
&quot;Memory.ParkableString.MemorySavings.5min&quot;.
</summary>
</histogram>
<histogram name="Memory.ParkableString.ParkingThreadTime.5min" units="ms"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Total thread time used by ParkableStrings for parking over the first 5
minutes of a renderer lifetime. Starting time is from the first
ParkableString being added.
</summary>
</histogram>
<histogram name="Memory.ParkableString.Read.Latency" units="microseconds"
expires_after="M87">
<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.
</summary>
</histogram>
<histogram name="Memory.ParkableString.Read.SizeKb" units="KB"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>Size read from disk for a ParkableString.</summary>
</histogram>
<histogram name="Memory.ParkableString.Read.ThroughputMBps" units="MBps"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>Read throughput from disk for a ParkableString.</summary>
</histogram>
<histogram name="Memory.ParkableString.SavingsKb" units="KB"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Sum of memory saved by compression, in KB. Recorded at the same time as
&quot;Memory.ParkableString.TotalSizeKb&quot;.
</summary>
</histogram>
<histogram name="Memory.ParkableString.SavingsKb.5min" units="KB"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Sum of memory saved by compression, in KB. Recorded at the same time as
&quot;Memory.ParkableString.TotalSizeKb.5min&quot;.
</summary>
</histogram>
<histogram name="Memory.ParkableString.TotalSizeKb.5min" units="KB"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Total size of ParkableStrings assuming no compression, in KB. Recorded once,
5 minutes after the first ParkableString is added to a renderer, at the same
time as &quot;Memory.ParkableString.MainThreadTime.5min&quot;.
</summary>
</histogram>
<histogram name="Memory.ParkableString.Write.Latency" units="microseconds"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>
Time to write a ParkableString to 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.
</summary>
</histogram>
<histogram name="Memory.ParkableString.Write.SizeKb" units="KB"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>Size of an on-disk ParkableString, recorded at write time.</summary>
</histogram>
<histogram name="Memory.ParkableString.Write.ThroughputMBps" units="MBps"
expires_after="M87">
<owner>lizeb@chromium.org</owner>
<owner>pasko@chromium.org</owner>
<summary>Throughput of a ParkableString disk write.</summary>
</histogram>
<histogram name="Memory.PartitionAlloc.ThreadCache.BatchFillRate{ThreadType}"
units="%" expires_after="M92">
<owner>lizeb@chromium.org</owner>
<owner>bartekn@chromium.org</owner>
<summary>
Fraction of PartitionAlloc's thread cache allocations requests that required
a batch fill, that is cache hits touching the central allocator. Recorded
during memory dumps, at the same time as the Memory.*.PartitionAlloc.*
histograms. Data is collected for {ThreadType}.
</summary>
<token key="ThreadType">
<variant name="" summary="all threads"/>
<variant name=".MainThread" summary="the main thread only"/>
</token>
</histogram>
<histogram name="Memory.PartitionAlloc.ThreadCache.HitRate{ThreadType}"
units="%" expires_after="M92">
<owner>lizeb@chromium.org</owner>
<owner>bartekn@chromium.org</owner>
<summary>
Hit rate for PartitionAlloc's thread cache. Recorded during memory dumps, at
the same time as the Memory.*.PartitionAlloc.* histograms. Data is collected
for {ThreadType}.
</summary>
<token key="ThreadType">
<variant name="" summary="all threads"/>
<variant name=".MainThread" summary="the main thread only"/>
</token>
</histogram>
<histogram name="Memory.PressureLevel" enum="MemoryPressureLevel"
expires_after="2021-06-20">
<owner>chrisha@chromium.org</owner>
<summary>
The memory pressure level, which is recorded periodically. This shows the
cumulative number of seconds that systems spend in each of the memory
pressure states.
</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="2021-06-20">
<!-- Name completed by histogram_suffixes name="Memory.Pressure.TransitionType" -->
<owner>sebmarchand@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="2022-01-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.BlinkCachedMetadataGetResult"
enum="CachedMetadataHandlerState" expires_after="M87">
<owner>pasko@chromium.org</owner>
<owner>leszeks@chromium.org</owner>
<summary>
The state of CachedMetadata on every attempt to use it for a script
resource. Used for experiment in http://crbug.com/1045052.
</summary>
</histogram>
<histogram name="Memory.Renderer.EstimatedDroppableEncodedSize" units="KB"
expires_after="M77">
<owner>hajimehoshi@chromium.org</owner>
<summary>
The esitimated memory size which would be reduced when reusing disk cache is
implemented. If it is 100% sure that the encoded data is in disk cache, the
same data in memory can be dropped to reduce memory usage. This is rencorded
when an ImageResource is pruned. See crbug/664437.
</summary>
</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>
<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.
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.
</summary>
</histogram>
<histogram name="Memory.Renderer.SharedMemoryFootprint" units="MB"
expires_after="2022-01-10">
<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="2021-06-20">
<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="2022-01-10">
<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="2021-06-20">
<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.ShmemDir.AmountOfFreeSpace" units="MB"
expires_after="M77">
<owner>reveman@chromium.org</owner>
<summary>
The amount of free space in temporary directory for shared memory files.
Recorded each time a new discardable memory manager instance is created.
</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.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>
<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 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.RendererPrivateMemoryFootprint" units="MB"
expires_after="2022-01-10">
<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.
</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.
</summary>
</histogram>
<histogram name="Memory.Total.SharedMemoryFootprint" units="MB"
expires_after="2022-01-10">
<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="2021-05-02">
<owner>sadrul@chromium.org</owner>
<owner>zmo@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.Utility.PrivateMemoryFootprint" units="MB"
expires_after="never">
<!-- expires-never: "heartbeat" metric (internal: go/uma-heartbeats) -->
<owner>jam@chromium.org</owner>
<summary>
A rough estimate of the private memory footprint of the utility 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.Utility.PrivateSwapFootprint" units="MB"
expires_after="2022-01-10">
<owner>jam@chromium.org</owner>
<summary>
An amount of private memory of the utility 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.Utility.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 utility 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.
</summary>
</histogram>
<histogram name="Memory.Utility.SharedMemoryFootprint" units="MB"
expires_after="2022-01-10">
<owner>jam@chromium.org</owner>
<owner>erikchen@chromium.org</owner>
<owner>ssid@chromium.org</owner>
<summary>
A rough estimate of the shared memory footprint of the utility 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>
</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.WorkingSetTrim.ArcProcessTrimCount"
units="ProcessesTrimmed" expires_after="M95">
<owner>bgeffon@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
Cumulative number of ARC processes trimmed during a user's session, recorded
each time an ARC process is trimmed. Available on ChromeOS.
</summary>
</histogram>
<histogram name="Memory.WorkingSetTrim.RendererTrimCount"
units="RenderersTrimmed" expires_after="M95">
<owner>bgeffon@chromium.org</owner>
<owner>fdoray@chromium.org</owner>
<summary>
Cumulative number of renderers trimmed during a user's session, recorded
each time a renderer is trimmed. Available on Windows and ChromeOS.
</summary>
</histogram>
<histogram name="MemoryAndroid.DeviceMemoryClass" units="units"
expires_after="2020-06-07">
<owner>hajimehoshi@chromium.org</owner>
<owner>kenjibaheux@google.com</owner>
<owner>kouhei@chromium.org</owner>
<summary>
Value of getMemoryClass() recorded once upon startup. This is an integer,
device-specific constant correlated with the amount of memory available on
Android device.
</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="M85">
<owner>ssid@chromium.org</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()).
Note: The low-RAM determination has changed in M-49, it used to be given
directly by the Android OS.
</summary>
</histogram>
<histogram name="MemoryWarning.OccurrencesPerSession" units="units"
expires_after="M85">
<owner>marq@chromium.org</owner>
<summary>
The number of memory warnings during a given foreground session.
</summary>
</histogram>
</histograms>
</histogram-configuration>