blob: e1584e8a4cf45dbb970573551c6af4714b9387b5 [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 V8 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>
<histogram name="V8.ArrayBufferLargeAllocations" units="MB"
expires_after="2022-06-30">
<owner>gdeepti@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<summary>
Number of bytes requested in array buffer allocations greater than one
megabyte.
</summary>
</histogram>
<histogram name="V8.ArrayBufferNewSizeFailures" units="MB"
expires_after="2022-06-30">
<owner>gdeepti@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<summary>Array buffer sizes for which V8 failed to allocate memory.</summary>
</histogram>
<histogram name="V8.CagedMemoryAllocationOutcome"
enum="V8CagedMemoryAllocationOutcome" expires_after="2022-09-30">
<owner>saelo@chromium.org</owner>
<owner>ishell@chromium.org</owner>
<summary>
The outcome of attempts to allocate memory pages inside the virtual memory
cage. Recorded at each allocation attempt, such as when allocating WASM
memory buffers, but only if the virtual memory cage is active.
</summary>
</histogram>
<histogram name="V8.CodeCacheRejectReason" enum="V8CodeCacheRejectReason"
expires_after="M77">
<owner>yangguo@chromium.org</owner>
<summary>
Reason code data has been rejected when attempting to deserialize.
</summary>
</histogram>
<histogram name="V8.CodeCacheSizeRatio" units="%" expires_after="2022-05-01">
<owner>yangguo@chromium.org</owner>
<summary>Cache size to source size ratio when caching compiled code.</summary>
</histogram>
<histogram name="V8.CollectSourcePositions" units="microseconds"
expires_after="M85">
<owner>delphick@chromium.org</owner>
<summary>
Time spent collecting source positions to generate stack traces.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileCacheableMicroSeconds" units="microseconds"
expires_after="M85">
<owner>yangguo@chromium.org</owner>
<summary>
Time spent compiling a script that may be subject to caching.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileDeserializeMicroSeconds" units="microseconds"
expires_after="2022-04-24">
<owner>vogelheim@chromium.org</owner>
<summary>
Time spent deseriailzing code, used by V8 code caching.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileEvalMicroSeconds" units="microseconds"
expires_after="M77">
<owner>yangguo@chromium.org</owner>
<summary>
Time spent in V8 compiler (full codegen) for eval.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileLazyMicroSeconds" units="microseconds"
expires_after="2022-06-26">
<owner>hablich@chromium.org</owner>
<summary>
Aggregated time spent compiling functions lazily during a single script
execution.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileMicroSeconds" units="microseconds"
expires_after="2022-05-15">
<owner>yangguo@chromium.org</owner>
<summary>
Time spent in V8 compiler (full codegen) excluding parser.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileScript.CacheBehaviour" enum="V8CacheBehaviour"
expires_after="2022-07-03">
<owner>leszeks@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
The cache behaviour of compiling a V8 script, including whether we produced
or consumed a code cache, whether we hit V8's isolate's cache, and if we
didn't use the code cache, the reason why not.
</summary>
</histogram>
<histogram name="V8.CompileScriptMicroSeconds" units="microseconds"
expires_after="2022-06-19">
<owner>leszeks@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing/caching).
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.BackgroundThread"
units="microseconds" expires_after="2022-04-24">
<owner>leszeks@chromium.org</owner>
<owner>rmcilroy@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) on a background
thread.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.ConsumeCache"
units="microseconds" expires_after="2022-06-19">
<owner>leszeks@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script when the 'compilation' is
deserializing it from the code cache.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.ConsumeCache.Failed"
units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing/caching) when the
compilation tried to deserialize it from the code cache, but failed.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.IsolateCacheHit"
units="microseconds" expires_after="2021-04-04">
<owner>leszeks@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing/caching) in the case
where the V8 isolate's compilation cache is hit.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.NoCache.CacheTooCold"
units="microseconds" expires_after="2021-12-12">
<owner>leszeks@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) when the cache is too
cold to use.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.NoCache.InlineScript"
units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) when the script is an
inline script.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.NoCache.Other"
units="microseconds" expires_after="2021-02-01">
<owner>leszeks@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) when we do not want
to cache it.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.NoCache.ScriptTooSmall"
units="microseconds" expires_after="2021-10-17">
<owner>leszeks@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) when the script is
too small to be cached.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.ProduceCache"
units="microseconds" expires_after="2022-05-01">
<owner>leszeks@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Total time spent in compiling a script (incl. parsing) and serializing it
for the code cache.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileScriptMicroSeconds.StreamingFinalization"
units="microseconds" expires_after="2022-04-24">
<owner>leszeks@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Total time spent in finalizing a script that was streaming compiled.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.CompileSerializeMicroSeconds" units="microseconds"
expires_after="M77">
<owner>vogelheim@chromium.org</owner>
<summary>
Time spent serializing code, used by V8 code caching.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.ContextSnapshotDecompress" units="microseconds"
expires_after="2022-05-22">
<owner>sky@chromium.org</owner>
<owner>yukishiino@chromium.org</owner>
<summary>
Total time spent decompressing snapshots for a context. This is emitted
immediately after decompressing the snapshots.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.DebugFeatureUsage" enum="V8DebugFeature"
expires_after="2022-04-24">
<owner>yangguo@chromium.org</owner>
<owner>bmeurer@chromium.org</owner>
<summary>
Debugger feature used at least once per isolate, recorded on first use.
</summary>
</histogram>
<histogram name="V8.ErrorsThrownPerContext" units="errors"
expires_after="2020-02-23">
<owner>hablich@chromium.org</owner>
<summary>
The amount of JavaScript errors thrown by V8 per context. It does not count
custom errors and ignores catched errors thrown by V8. This is collected
after the context is detached.
</summary>
</histogram>
<histogram name="V8.Execute" units="ms" expires_after="M94">
<obsolete>
Use V8.ExecuteMicroSeconds after M94, which correctly accounts nested timers
with nested V8.Execute blocks.
</obsolete>
<owner>cbruni@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Time spent in JavaScript Execution, including runtime calls, callbacks, and
lazy compilation.
</summary>
</histogram>
<histogram name="V8.ExecuteMicroSeconds" units="microseconds"
expires_after="2022-06-26">
<owner>cbruni@chromium.org</owner>
<owner>v8-runtime@google.com</owner>
<summary>
Time spent in JavaScript Execution, including runtime calls, and lazy
compilation. This histogram excludes time spent in embedder callbacks.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.CollectionRate.Full.Cpp" units="%"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
The percentage of managed C++ memory that has been collected by a garbage
collection of the managed C++ heap. Reported at the end of the garbage
collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.CollectionRate.Young" units="%"
expires_after="M109">
<owner>nikolaos@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
The percentage of managed JavaScript memory that has been collected by a
young generation garbage collection of the managed JavaScript heap. Reported
at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Efficiency.Full.Cpp" units="KB/ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
The speed at which garbage collection of the managed C++ heap reclaims
unused memory. Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Efficiency.MainThread.Full.Cpp" units="KB/ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
The speed at which garbage collection of the managed C++ heap reclaims
unused memory on the main thread only. This histogram ignores concurrent
garbage collection. Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Efficiency.MainThread.Young" units="KB/ms"
expires_after="M109">
<owner>nikolaos@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
The speed at which a young generation garbage collection of the managed
JavaScript heap reclaims unused memory on the main thread only. This
histogram ignores concurrent garbage collection. Reported at the end of the
garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Efficiency.Young" units="KB/ms"
expires_after="M109">
<owner>nikolaos@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
The speed at which a young generation garbage collection of the managed
JavaScript heap reclaims unused memory. Reported at the end of the garbage
collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Full.Compact.Cpp" units="ms" expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent on compaction during a whole garbage collection of the managed
C++ heap. Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Full.Cpp" units="ms" expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Overall duration of a whole garbage collection of the managed C++ heap.
Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Full.Mark.Cpp" units="ms" expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent on marking during a whole garbage collection of the managed C++
heap. Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Full.Sweep.Cpp" units="ms" expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent on sweeping during a whole garbage collection of the managed C++
heap. Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Full.Weak.Cpp" units="ms" expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent on weakness handling during a whole garbage collection of the
managed C++ heap. Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.MainThread.Full.Atomic.Compact.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Overall duration of compaction on the main thread during the atomic pause of
a garbage collection of the managed C++ heap. There is only a single atomic
pause compaction event per cycle but it may cover several sub-events.
Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.MainThread.Full.Atomic.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Overall main thread duration of the atomic pause of a garbage collection of
the managed C++ heap. There is only a single atomic pause event per cycle
but it may cover several sub-events. Reported at the end of the garbage
collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.MainThread.Full.Atomic.Mark.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Overall duration of marking on the main thread during the atomic pause of a
garbage collection of the managed C++ heap. There is only a single atomic
pause marking event per cycle but it may cover several sub-events. Reported
at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.MainThread.Full.Atomic.Sweep.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Overall duration of sweeping on the main thread during the atomic pasue of a
garbage collection of the managed C++ heap. There is only a single atomic
pause sweeping event per cycle but it may cover several sub-events. Reported
at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.MainThread.Full.Atomic.Weak.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Overall duration of weakness handling on the main thread during the atomic
pause of a garbage collection of the managed C++ heap. There is only a
single atomic pause weakness handling event per cycle but it may cover
several sub-events. Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.MainThread.Full.Compact.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent on compaction on the main thread during a whole garbage
collection of the cpp heap. Reported at the end of the garbage collection
cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.MainThread.Full.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Main thread only duration of a whole garbage collection of the managed C++
heap. Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.MainThread.Full.Mark.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent on marking on the main thread during a whole garbage collection
of the managed C++ heap. Reported at the end of the garbage collection
cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.MainThread.Full.Sweep.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent on sweeping on the main thread during a whole garbage collection
of the managed C++ heap. Reported at the end of the garbage collection
cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.MainThread.Full.Weak.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent on weakness handling on the main thread during a whole garbage
collection of the managed C++ heap. Reported at the end of the garbage
collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.MainThread.Young" units="ms" expires_after="M109">
<owner>nikolaos@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Main-thread only duration of a young generation garbage collection of the
JavaScript heap. Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Memory.Freed.Full.Cpp" units="KB"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Amount of allocated memory freed by a garbage collection of the managed C++
heap. Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Objects.After.Full.Cpp" units="KB"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Amount of used memory after a garbage collection of the managed C++ heap.
Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Objects.Before.Full.Cpp" units="KB"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Amount of used memory before a garbage collection of the managed C++ heap.
Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Objects.Freed.Full.Cpp" units="KB"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Amount of used memory freed by a garbage collection of the managed C++ heap.
Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Reason.Young" enum="GarbageCollectionReason"
expires_after="M109">
<owner>nikolaos@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Reason a young generation garbage collection was started in V8. Reported at
the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Cycle.Young" units="ms" expires_after="M109">
<owner>nikolaos@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Overall duration of a young generation garbage collection of the JavaScript
heap. Reported at the end of the garbage collection cycle.
</summary>
</histogram>
<histogram name="V8.GC.Event.MainThread.Full.Atomic.Compact.Cpp" units="ms"
expires_after="M100">
<obsolete>
Removed 09/2021. Renamed to V8.GC.Cycle.MainThread.Full.Atomic.Compact.Cpp.
</obsolete>
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Duration of individual compaction steps on the main thread during the atomic
pause of a garbage collection of the managed C++ heap.
</summary>
</histogram>
<histogram name="V8.GC.Event.MainThread.Full.Atomic.Cpp" units="ms"
expires_after="M100">
<obsolete>
Removed 09/2021. Renamed to V8.GC.Cycle.MainThread.Full.Atomic.Cpp.
</obsolete>
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Duration of individual steps on the main thread during the atomic pause of a
garbage collection of the managed C++ heap.
</summary>
</histogram>
<histogram name="V8.GC.Event.MainThread.Full.Atomic.Mark.Cpp" units="ms"
expires_after="M100">
<obsolete>
Removed 09/2021. Renamed to V8.GC.Cycle.MainThread.Full.Atomic.Mark.Cpp.
</obsolete>
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Duration of individual marking steps on the main thread during the atomic
pause of a garbage collection of the managed C++ heap.
</summary>
</histogram>
<histogram name="V8.GC.Event.MainThread.Full.Atomic.Sweep.Cpp" units="ms"
expires_after="M100">
<obsolete>
Removed 09/2021. Renamed to V8.GC.Cycle.MainThread.Full.Atomic.Sweep.Cpp.
</obsolete>
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Duration of individual sweeping steps on the main thread during the atomic
pause of a garbage collection of the managed C++ heap.
</summary>
</histogram>
<histogram name="V8.GC.Event.MainThread.Full.Atomic.Weak.Cpp" units="ms"
expires_after="M100">
<obsolete>
Removed 09/2021. Renamed to V8.GC.Cycle.MainThread.Full.Atomic.Weak.Cpp.
</obsolete>
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Duration of individual weakness handling steps on the main thread during the
atomic pause of a garbage collection of the managed C++ heap.
</summary>
</histogram>
<histogram name="V8.GC.Event.MainThread.Full.Incremental.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Duration of individual incremental steps on the main thread during a garbage
collection of the managed C++ heap.
</summary>
</histogram>
<histogram name="V8.GC.Event.MainThread.Full.Incremental.Mark.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Duration of individual incremental marking steps on the main thread during a
garbage collection of the managed C++ heap.
</summary>
</histogram>
<histogram name="V8.GC.Event.MainThread.Full.Incremental.Sweep.Cpp" units="ms"
expires_after="M109">
<owner>omerkatz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Duration of individual incremental sweeping steps on the main thread during
a garbage collection of the managed C++ heap.
</summary>
</histogram>
<histogram name="V8.GC.TimeToCollectionOnBackground" units="microseconds"
expires_after="2022-07-03">
<owner>dinfuehr@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time between requesting GC from background thread and actually starting
collection on main thread. This is reported each time a background thread
requests a GC.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.GC.TimeToSafepoint" units="microseconds"
expires_after="2022-02-06">
<owner>dinfuehr@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in stopping other threads to reach a safepoint. This is reported
each time a safepoint is reached.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.GCBackgroundMarking" units="ms" expires_after="2022-06-26">
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in background tasks doing marking in one GC cycle. It is recorded
after each GC.
</summary>
</histogram>
<histogram name="V8.GCBackgroundScavenger" units="ms"
expires_after="2021-12-19">
<obsolete>
Removed 11/2021. Superseded by V8.GC.Cycle.Young.
</obsolete>
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in background tasks doing scavenging in one GC cycle. It is
recorded after each GC.
</summary>
</histogram>
<histogram name="V8.GCBackgroundSweeping" units="ms" expires_after="2022-06-05">
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in background tasks doing sweeping in one GC cycle. It is
recorded after each GC.
</summary>
</histogram>
<histogram name="V8.GCCompactor" units="ms" expires_after="2022-05-01">
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>Time spent in mark-sweep phase of GC.</summary>
</histogram>
<histogram name="V8.GCCompactorBackground" units="ms"
expires_after="2022-04-01">
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in mark-sweep phase of GC in a background isolate.
</summary>
</histogram>
<histogram name="V8.GCCompactorForeground" units="ms"
expires_after="2022-08-09">
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in mark-sweep phase of GC in a foreground isolate.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMC" units="ms" expires_after="2022-06-19">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the final atomic pause of incremental latency-optimized
Mark-Compact GC.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMC.Clear" units="ms" expires_after="2022-04-01">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the clearing phase of incremental latency-optimized
Mark-Compact GC.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMC.Epilogue" units="ms"
expires_after="2022-04-01">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the epilogue of incremental latency-optimized Mark-Compact GC.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMC.Evacuate" units="ms"
expires_after="2022-08-09">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the evacuation phase of incremental latency-optimized
Mark-Compact GC.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMC.Finish" units="ms" expires_after="2022-08-09">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the finish phase of incremental latency-optimized Mark-Compact
GC.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMC.Mark" units="ms" expires_after="2022-08-09">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the marking phase of incremental latency-optimized
Mark-Compact GC.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMC.Prologue" units="ms"
expires_after="2022-06-05">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the prologue of incremental latency-optimized Mark-Compact GC.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMC.Sweep" units="ms" expires_after="2022-04-01">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the sweeping phase of incremental latency-optimized
Mark-Compact GC.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMCBackground" units="ms"
expires_after="2022-04-01">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the final atomic pause of incremental latency-optimized
Mark-Compact GC in a background isolate.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMCForeground" units="ms"
expires_after="2022-04-01">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the final atomic pause of incremental latency-optimized
Mark-Compact GC in a foreground isolate.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMCReduceMemory" units="ms"
expires_after="2022-07-03">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the final atomic pause of incremental memory-optimized
Mark-Compact GC.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMCReduceMemoryBackground" units="ms"
expires_after="2022-04-01">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the final atomic pause of incremental memory-optimized
Mark-Compact GC in a background isolate.
</summary>
</histogram>
<histogram name="V8.GCFinalizeMCReduceMemoryForeground" units="ms"
expires_after="2022-04-01">
<owner>mlippautz@chromium.org</owner>
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in the final atomic pause of incremental memory-optimized
Mark-Compact GC in a foreground isolate.
</summary>
</histogram>
<histogram name="V8.GCIncrementalMarking" units="ms" expires_after="M103">
<owner>hpayer@chromium.org</owner>
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>Time spent doing incremental marking steps during GC.</summary>
</histogram>
<histogram name="V8.GCIncrementalMarkingFinalize" units="ms"
expires_after="2022-06-05">
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>Time spent in finalizing incremental marking.</summary>
</histogram>
<histogram name="V8.GCIncrementalMarkingReason" enum="GarbageCollectionReason"
expires_after="2022-06-26">
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>Reason an incremental marking was started in V8.</summary>
</histogram>
<histogram name="V8.GCIncrementalMarkingStart" units="ms"
expires_after="2022-05-01">
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>Time spent in starting incremental marking.</summary>
</histogram>
<histogram name="V8.GCIncrementalMarkingSum" units="ms"
expires_after="2022-06-19">
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
The total time spent in incremental marking steps in one GC cycle. It is
only recorded if the time is non-zero.
</summary>
</histogram>
<histogram name="V8.GCMainThreadMarkingThroughput" units="MB/s"
expires_after="M103">
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Marking throughput considering all durations of all marking phases on the
main thread and marked bytes within one V8 garbage collection cycle.
Reported once per garbage collection cycle. Only reported for platforms
supporting high resolution clocks and when more than 1MB of live objects
have been found.
</summary>
</histogram>
<histogram name="V8.GCMarkCompactor" units="ms" expires_after="2022-01-02">
<obsolete>
Unused as of 2022-01-02.
</obsolete>
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Sum of all durations of individual phases within one V8 mark-compact garbage
collection. Reported once per garbage collection.
</summary>
</histogram>
<histogram name="V8.GCMarkCompactReason" enum="GarbageCollectionReason"
expires_after="2022-06-26">
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>Reason a mark-compact garbage collection was started in V8.</summary>
</histogram>
<histogram name="V8.GCMarkingSum" units="ms" expires_after="M103">
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Sum of all durations of all marking phases (incremental and non-incremental)
within one V8 garbage collection cycle. Reported once per garbage collection
at the end.
</summary>
</histogram>
<histogram name="V8.GCScavenger" units="ms" expires_after="2022-06-05">
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>Time spent in scavenging phase of GC.</summary>
</histogram>
<histogram name="V8.GCScavenger.ScavengeMain" units="ms"
expires_after="2022-06-05">
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Wall time spent in the main scavenging phase that copies over all reachable
objects during a V8 scavenge.
</summary>
</histogram>
<histogram name="V8.GCScavenger.ScavengeRoots" units="ms"
expires_after="2022-06-05">
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>Time spent in scavenging the roots during a V8 scavenge.</summary>
</histogram>
<histogram name="V8.GCScavengerBackground" units="ms"
expires_after="2022-04-01">
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in scavenging phase of GC in a background isolate.
</summary>
</histogram>
<histogram name="V8.GCScavengeReason" enum="GarbageCollectionReason"
expires_after="2022-06-05">
<owner>mlippautz@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>Reason a scavenge garbage collection was started in V8.</summary>
</histogram>
<histogram name="V8.GCScavengerForeground" units="ms"
expires_after="2022-06-05">
<owner>hpayer@chromium.org</owner>
<owner>v8-memory-sheriffs@google.com</owner>
<summary>
Time spent in scavenging phase of GC in a foreground isolate.
</summary>
</histogram>
<histogram name="V8.Initializer.LoadV8Snapshot.Result"
enum="V8InitializerLoadV8SnapshotResult" expires_after="M77">
<owner>oth@chromium.org</owner>
<summary>Results from snapshot loading.</summary>
</histogram>
<histogram name="V8.Initializer.OpenV8File.Result"
enum="V8InitializerOpenV8FileResult" expires_after="2020-05-10">
<owner>oth@chromium.org</owner>
<summary>Results from opening V8 snapshot files.</summary>
</histogram>
<histogram name="V8.LiftoffBailoutReasons" enum="LiftoffBailoutReason"
expires_after="2022-06-12">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<summary>
Liftoff (V8's baseline compiler for WebAssembly) bails out if it hits the
first unsupported feature in a function. The function is recompiled with
TurboFan then. This histogram records the bailout reason (or success) per
WebAssembly function compilation in Liftoff.
</summary>
</histogram>
<histogram name="V8.MaxArrayBufferCageReservationSize" units="GB"
expires_after="2022-06-30">
<obsolete>
Removed 09/2021. Superseded by V8.VirtualMemoryCageSizeGB.
</obsolete>
<owner>saelo@chromium.org</owner>
<owner>ishell@chromium.org</owner>
<summary>
Largest possible size of the virtual memory region for an ArrayBuffer cage.
Measured and reported at process startup, right before initializing V8, by
attempting to reserve memory regions with decreasing size until the
reservation succeeds, then immediately freeing it again.
This experiment is part of the V8 Heap Sandbox and the V8 ArrayBuffer Caging
proposal. Its goal is to estimate the maximum possible size of an
ArrayBuffer cage region.
</summary>
</histogram>
<histogram name="V8.MemoryExternalFragmentationCodeSpace" units="%"
expires_after="2020-03-01">
<owner>hpayer@chromium.org</owner>
<summary>
External memory fragmentation in the code space after each GC in percent.
</summary>
</histogram>
<histogram name="V8.MemoryExternalFragmentationLoSpace" units="%"
expires_after="2020-06-01">
<owner>hpayer@chromium.org</owner>
<summary>
External memory fragmentation in the large object space after each GC in
percent.
</summary>
</histogram>
<histogram name="V8.MemoryExternalFragmentationMapSpace" units="%"
expires_after="2020-02-23">
<owner>hpayer@chromium.org</owner>
<summary>
External memory fragmentation in the map space after each GC in percent.
</summary>
</histogram>
<histogram name="V8.MemoryExternalFragmentationOldSpace" units="%"
expires_after="2020-03-01">
<owner>hpayer@chromium.org</owner>
<summary>
External memory fragmentation in the old space after each GC in percent.
</summary>
</histogram>
<histogram name="V8.MemoryExternalFragmentationTotal" units="%"
expires_after="M81">
<owner>hpayer@chromium.org</owner>
<summary>
Total external memory fragmentation after each GC in percent.
</summary>
</histogram>
<histogram name="V8.MemoryHeapSampleCodeSpaceCommitted" units="KB"
expires_after="M77">
<owner>hpayer@chromium.org</owner>
<summary>
The size of committed memory in the code space after each GC in KB.
</summary>
</histogram>
<histogram name="V8.MemoryHeapSampleMapSpaceCommitted" units="KB"
expires_after="2020-03-01">
<owner>hpayer@chromium.org</owner>
<summary>
The size of committed memory in the map space after each GC in KB.
</summary>
</histogram>
<histogram name="V8.MemoryHeapSampleMaximumCommitted" units="KB"
expires_after="M77">
<owner>hpayer@chromium.org</owner>
<summary>
The maximum size of committed memory used by V8 after each GC in KB.
</summary>
</histogram>
<histogram name="V8.MemoryHeapSampleTotalCommitted" units="KB"
expires_after="2022-06-12">
<owner>hpayer@chromium.org</owner>
<summary>
The total size of committed memory used by V8 after each GC in KB.
</summary>
</histogram>
<histogram name="V8.MemoryHeapSampleTotalUsed" units="KB"
expires_after="2021-09-12">
<owner>hpayer@chromium.org</owner>
<summary>
The total size of live memory used by V8 after each GC in KB.
</summary>
</histogram>
<histogram name="V8.RegExpBacktracks" units="backtracks"
expires_after="2022-06-26">
<owner>jgruber@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
The number of backtracks performed in a single regexp execution.
</summary>
</histogram>
<histogram name="V8.SharedArrayAllocationSizes" units="MB"
expires_after="2020-12-02">
<owner>gdeepti@chromium.org</owner>
<owner>ulan@chromium.org</owner>
<summary>
Number of megabytes requested in shared array buffer allocations.
</summary>
</histogram>
<histogram name="V8.SnapshotDecompress" units="microseconds"
expires_after="2022-05-22">
<owner>sky@chromium.org</owner>
<owner>yukishiino@chromium.org</owner>
<summary>
Total time spent decompressing snapshots for the isolate. This is emitted
immediately after decompressing the snapshots (from Snapshot::Initialize()).
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.StopTheWorld" units="ms" expires_after="2021-10-01">
<obsolete>
Removed 02/2021. Renamed to V8.GC.TimeToSafepoint due to switch to
microseconds.
</obsolete>
<owner>dinfuehr@chromium.org</owner>
<owner>ulan@chromium.org</owner>
<summary>Time spent in stopping other threads before performing GC.</summary>
</histogram>
<histogram name="V8.TimeToCollection" units="ms" expires_after="2021-10-01">
<obsolete>
Removed 02/2021. Renamed to V8.GC.TimeToCollectionBackground due to switch
to microseconds.
</obsolete>
<owner>dinfuehr@chromium.org</owner>
<owner>ulan@chromium.org</owner>
<summary>
Time between requesting GC from background thread and actually starting
collection on main thread.
</summary>
</histogram>
<histogram name="V8.TurboFan1KTicks" units="1000 ticks"
expires_after="2020-01-23">
<owner>tebbi@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
Number of ticks (in 1000s of ticks) from starting optimizing to installing
the code object. Recorded on each regular optimization of a function.
Similar to V8.TurboFanOptimizeTotalTime, but instead of counting time, we
count a deterministic number of ticks sprinkled throughout the Turbofan
compiler.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizeConcurrentTotalTime" units="microseconds"
expires_after="2022-06-05">
<owner>bmeurer@chromium.org</owner>
<owner>mslekova@chromium.org</owner>
<summary>
Total time from starting optimizing to installing the code object. Recorded
on each regular, concurrent optimization of a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizeExecute" units="microseconds"
expires_after="2022-06-05">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
Time spent in the execution phase of TurboFan optimization. Recorded on each
regular optimization of a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizeFinalize" units="microseconds"
expires_after="2022-06-05">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
Time spent in the finalization phase of TurboFan optimization. Recorded on
each regular optimization of a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizeForOnStackReplacementExecute"
units="microseconds" expires_after="2022-06-05">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
Time spent in the execution phase of TurboFan optimization for On Stack
Replacement (OSR). Recorded on each optimization for on-stack replacement of
a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizeForOnStackReplacementFinalize"
units="microseconds" expires_after="2022-06-05">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
Time spent in the finalization phase of TurboFan optimization for On Stack
Replacement (OSR). Recorded on each optimization for on-stack replacement of
a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizeForOnStackReplacementPrepare"
units="microseconds" expires_after="2022-06-05">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
Time spent in the preparation phase of TurboFan optimization for On Stack
Replacement (OSR). Recorded on each optimization for on-stack replacement of
a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizeForOnStackReplacementTotalTime"
units="microseconds" expires_after="2022-06-05">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
Total time from starting optimizing for On Stack Replacement (OSR) to
installing the code object. Recorded on each optimization for on-stack
replacement of a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizeNonConcurrentTotalTime"
units="microseconds" expires_after="2022-06-05">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<owner>mslekova@chromium.org</owner>
<summary>
Total time from starting optimizing to installing the code object. Recorded
on each regular, non-concurrent optimization of a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizePrepare" units="microseconds"
expires_after="2022-06-05">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
Time spent in the preparation phase of TurboFan optimization. Recorded on
each regular optimization of a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizeTotalBackground" units="microseconds"
expires_after="2022-06-05">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
Total time spent on a background thread during TurboFan optimization.
Recorded on each regular optimization of a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizeTotalForeground" units="microseconds"
expires_after="2022-06-05">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
Total time spent on the main thread during TurboFan optimization. Recorded
on each regular optimization of a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.TurboFanOptimizeTotalTime" units="microseconds"
expires_after="2022-06-05">
<owner>neis@chromium.org</owner>
<owner>mvstanton@chromium.org</owner>
<summary>
Total time from starting optimizing to installing the code object. Recorded
on each regular optimization of a function.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.VirtualMemoryCageMode" enum="V8VirtualMemoryCageMode"
expires_after="2022-09-30">
<owner>saelo@chromium.org</owner>
<owner>ishell@chromium.org</owner>
<summary>
Mode of operation of V8's virtual memory cage.
V8's virtual memory cage can operate in two different modes: the normal,
secure mode, and an insecure fallback mode, used if a normal cage can, for
whatever reason, not be created. The insecure mode does not have the desired
security properties but allows V8 to otherwise operate normally. The mode of
the cage is recorded as enum value during the initialization of V8, after
the virtual memory cage has been initialized.
</summary>
</histogram>
<histogram name="V8.VirtualMemoryCageSizeGB" units="GB"
expires_after="2022-09-30">
<owner>saelo@chromium.org</owner>
<owner>ishell@chromium.org</owner>
<summary>
Size of the virtual memory cage, in GB.
Recorded during initialization of V8, after the virtual memory cage has been
created. If the initial reservation attempt fails, the size of the cage is
reduced until either the reservation succeeds or a minimum size is reached.
A value of zero indicates that even the minimum size could not be reserved,
implying that the cage initialization failed.
This value excludes the size of any guard regions placed around the cage and
so represents only the usable size of the cage.
</summary>
</histogram>
<histogram name="V8.WasmAddressSpaceUsageMiB" units="MB" expires_after="M98">
<obsolete>
Received no values since M79.
</obsolete>
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>ahaas@chromium.org</owner>
<summary>
The total amount of address space reserved by the backing stores of all live
WebAssembly.Memory backing stores in MiB. Recorded on each memory
reservation.
</summary>
</histogram>
<histogram name="V8.WasmCacheCount" units="count" expires_after="2022-06-30">
<owner>ahaas@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Number of times a WebAssembly module being added to the browser cache. With
dynamic tiering, caching is triggered repeatedly whenever the amount of
generated optimized code reaches a threshold. Recorded every time a new
version of the WebAssembly module is being added to the cache, and also when
the module is compiled initially.
</summary>
</histogram>
<histogram name="V8.WasmCatchCount" units="count" expires_after="2022-09-01">
<owner>thibaudm@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Number of exceptions caught so far in an isolate, recorded on each caught
exception.
</summary>
</histogram>
<histogram name="V8.WasmCompileAfterDeserializeMilliSeconds" units="ms"
expires_after="2022-06-30">
<owner>ahaas@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
After deserialization, all functions that were not in the serialized module
are compiled with the baseline compiler. This metric measures the time spent
by the baseline compiler on compiling missing functions. Recorded after the
baseline compilation of the missing functions finishes.
</summary>
</histogram>
<histogram name="V8.WasmCompileFunctionMicroSeconds" units="microseconds"
expires_after="2022-06-12">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time to compile a WebAssembly function. Recorded on each compilation of a
single function, either synchronous, asynchronous, or lazily.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.WasmCompileFunctionPeakMemoryBytes" units="bytes"
expires_after="2022-06-19">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Peak memory used to compile a WebAssembly function. Recorded for each
TurboFan compilation of a WebAssembly function.
</summary>
</histogram>
<histogram name="V8.WasmCompileHugeFunctionMilliSeconds" units="ms"
expires_after="2022-06-12">
<owner>clemensb@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time to compile a huge WebAssembly function. A function is considered huge
if it is larger than 100kB. Recorded on each compilation of such a function,
either synchronous, asynchronous, or lazily.
</summary>
</histogram>
<histogram name="V8.WasmCompileHugeFunctionPeakMemoryBytes" units="bytes"
expires_after="2022-06-19">
<owner>clemensb@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Peak memory used to compile a huge WebAssembly function. A function is
considered huge if it is larger than 100kB. Recorded for each TurboFan
compilation of such a function.
</summary>
</histogram>
<histogram name="V8.WasmCompileModuleAsyncMicroSeconds" units="microseconds"
expires_after="2022-05-15">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time to asynchronously compile a WebAssembly module (using the
'WebAssembly.compile' API). Recorded on each asynchronous WebAssembly
compilation, but only if a high-resolution clock is available.
</summary>
</histogram>
<histogram name="V8.WasmCompileModuleMicroSeconds" units="microseconds"
expires_after="2022-06-12">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time to compile a WebAssembly module. Recorded on each synchronous
WebAssembly compilation.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.WasmCompileModuleStreamingMicroSeconds"
units="microseconds" expires_after="2022-06-12">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time to asynchronously compile a WebAssembly module using streaming
compilation (via the 'WebAssembly.compileStreaming' API). Recorded on each
streaming WebAssembly compilation, but only if a high-resolution clock is
available. Note that compilation speed is often limited by the network
speed, which is also reflected in this metric.
</summary>
</histogram>
<histogram name="V8.WasmDeserializationTimeMilliSeconds" units="ms"
expires_after="2022-06-30">
<owner>ahaas@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time to deserialize a WebAssembly module when the WebAssembly module is
loaded from the cache. Recorded whenever a WebAssembly module gets
deserialized during streaming compilation.
</summary>
</histogram>
<histogram name="V8.WasmFinishModuleStreamingMicroSeconds" units="microseconds"
expires_after="2022-06-19">
<owner>bbudge@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time to asynchronously compile or deserialize a WebAssembly module during
streaming compilation (via the 'WebAssembly.compileStreaming' API). Recorded
on each streaming WebAssembly compilation or deserialization from the cache,
but only if a high-resolution clock is available. Note that compilation
speed is often limited by the network speed, which is also reflected in this
metric.
</summary>
</histogram>
<histogram name="V8.WasmFunctionSizeBytes" units="bytes"
expires_after="2021-08-01">
<obsolete>
Removed 07/2021 in favor of V8.WasmHugeFunctionSizeBytes which gives a
better overview about critical functions.
</obsolete>
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<summary>
Size of a WebAssembly function in bytes. Recorded on each compilation of a
single function, either synchronous, asynchronous, or lazily.
</summary>
</histogram>
<histogram name="V8.WasmFunctionsPerModule" units="functions"
expires_after="2022-06-19">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Function count per WebAssembly module. Recorded for each WebAssembly module
which is decoded for validation, compilation, or deserialization.
</summary>
</histogram>
<histogram name="V8.WasmHugeFunctionSizeBytes" units="bytes"
expires_after="2022-07-01">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Size of a huge WebAssembly function in bytes. A function is considered huge
if it is larger than 100kB. Recorded on each compilation of a single
function, either synchronous, asynchronous, or lazily.
</summary>
</histogram>
<histogram name="V8.WasmInstantiateModuleMicroSeconds" units="microseconds"
expires_after="2022-06-12">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time to instantiate a WebAssembly module. Recorded on each instantiation of
a WebAssembly module.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="V8.WasmLazyCompileTimeMicroSeconds" units="microseconds"
expires_after="2022-06-30">
<owner>clemensb@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time spend for lazily compiling WebAssembly functions. Recorded on each lazy
compilation event (which typically compiles one function).
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="V8.WasmMaxMemPagesCount" units="pages"
expires_after="2022-02-15">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>ahaas@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Number of 64KiB pages a WebAssembly module declares as its maximum
requirement. Recorded on each instantiation of a WebAssembly module.
</summary>
</histogram>
<histogram name="V8.WasmMemoryAllocationResult" enum="WasmAllocationResult"
expires_after="2022-09-01">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>ahaas@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
The result of attempts to allocate WebAssembly.Memory buffers. Recorded on
each attempt to allocate a WebAssembly.Memory buffer.
</summary>
</histogram>
<histogram name="V8.WasmMemoryProtectionKeysSupport" units="BooleanSupported"
expires_after="2022-09-01">
<owner>clemensb@chromium.org</owner>
<owner>jkummerow@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Whether the system supports memory protection keys in userspace (MPK / PKU /
PKEY). This is determined once per process and recorded once per isolate
during isolate creation (startup).
As we use a Linux-specific API for PKUs, this value is only recorded on
64-bit Linux machines.
</summary>
</histogram>
<histogram name="V8.WasmMinMemPagesCount" units="pages"
expires_after="2022-02-15">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>ahaas@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Number of 64KiB pages a WebAssembly module declares as its minimum
requirement. Recorded on each instantiation of a WebAssembly module.
</summary>
</histogram>
<histogram name="V8.WasmModuleCodeSizeBaselineMiB" units="MB"
expires_after="2022-09-01">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
The amount of generated code in MiB for one WebAssembly module. Recorded
when baseline compilation finished.
</summary>
</histogram>
<histogram name="V8.WasmModuleCodeSizeMiB" units="MB"
expires_after="2022-04-24">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
The amount of committed code space in MiB used by individual WebAssembly
modules. Recorded for each live module after each full GC.
</summary>
</histogram>
<histogram name="V8.WasmModuleCodeSizePercentFreed" units="%"
expires_after="2023-01-31">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
The percentage of WebAssembly code freed by garbage collection (ratio of
total freed code to total generated code so far). Recorded for each live
module after each full GC.
</summary>
</histogram>
<histogram name="V8.WasmModuleCodeSizeTopTierMiB" units="MB"
expires_after="2022-09-01">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
The amount of generated code in MiB for one WebAssembly module. Recorded
when top-tier compilation finished.
</summary>
</histogram>
<histogram name="V8.WasmModuleNumberOfCodeGCsTriggered" units="gcs"
expires_after="2022-09-01">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Number of code GCs triggered per WebAssembly module. Recorded after each
code GC.
</summary>
</histogram>
<histogram name="V8.WasmModuleNumberOfCodeSpaces" units="spaces"
expires_after="2023-01-31">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
The number of code spaces (i.e. individual reservations) of a WebAssembly
module. Recorded on every code space allocation.
</summary>
</histogram>
<histogram name="V8.WasmModuleSizeBytes" units="bytes"
expires_after="2022-06-12">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>ahaas@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Size of the wire bytes of a WebAssembly module. Recorded for each
WebAssembly module which is decoded for validation, compilation, or
deserialization.
</summary>
</histogram>
<histogram name="V8.WasmModulesPerEngine" units="count"
expires_after="2022-09-01">
<owner>clemensb@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Number of WebAssembly native modules live in a Wasm engine (typically per
process). Recorded whenever a new native module is created.
</summary>
</histogram>
<histogram name="V8.WasmModulesPerIsolate" units="count"
expires_after="2022-09-01">
<owner>clemensb@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Number of WebAssembly native modules live in an isolate. Recorded whenever a
new native module is created.
</summary>
</histogram>
<histogram name="V8.WasmReThrowCount" units="count" expires_after="2022-09-01">
<owner>thibaudm@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Number of exceptions rethrown so far in an isolate, recorded on each
rethrown exception.
</summary>
</histogram>
<histogram name="V8.WasmThrowCount" units="count" expires_after="2022-09-01">
<owner>thibaudm@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Number of exceptions thrown so far in an isolate, recorded on each thrown
exception.
</summary>
</histogram>
<histogram name="V8.WasmTierUpModuleMicroSeconds" units="microseconds"
expires_after="2022-06-19">
<owner>ecmziegler@chromium.org</owner>
<owner>adamk@chromium.org</owner>
<owner>clemensb@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time to tier-up a WebAssembly module, i.e. the time between baseline
compilation finishes and top-tier compilation finishes. Recorded whenever an
asynchronously compiled module finishes top-tier compilation, but only if a
high-resolution clock is available.
</summary>
</histogram>
<histogram name="V8.WasmTimeBetweenCatchMilliseconds" units="ms"
expires_after="2022-09-01">
<owner>thibaudm@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time since the last time an exception was caught in WebAssembly, recorded
when the next exception is caught (per isolate).
</summary>
</histogram>
<histogram name="V8.WasmTimeBetweenRethrowsMilliseconds" units="ms"
expires_after="2022-09-01">
<owner>thibaudm@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time since the last time an exception was rethrown in WebAssembly, recorded
when the next exception is rethrown (per isolate).
</summary>
</histogram>
<histogram name="V8.WasmTimeBetweenThrowsMilliseconds" units="ms"
expires_after="2022-09-01">
<owner>thibaudm@chromium.org</owner>
<owner>ecmziegler@chromium.org</owner>
<owner>wasm-v8@google.com</owner>
<summary>
Time since the last time an exception was thrown in WebAssembly, recorded
when the next exception is thrown (per isolate).
</summary>
</histogram>
</histograms>
</histogram-configuration>