Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Unified Diff: cc/memory.md

Issue 2494063002: Move memory docs to docs/memory-infra (Closed)
Patch Set: rebase Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/allocator/README.md ('k') | components/tracing/docs/adding_memory_infra_tracing.md » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/memory.md
diff --git a/cc/memory.md b/cc/memory.md
index 1bac0f56ee7c8cf9425686017dce76a9f73bc4e5..b00d705a317db63df1a13119a8c188c9d57adf4a 100644
--- a/cc/memory.md
+++ b/cc/memory.md
@@ -1,125 +1 @@
-# Memory Usage in CC
-
-This document gives an overview of memory usage in the CC component, as well as
-information on how to analyze that memory.
-
-[TOC]
-
-## Types of Memory in Use
-
-CC uses a number of types of memory:
-
-1. Malloc Memory - Standard system memory used for all manner of objects in CC.
-2. Discardable Memory - Memory allocated by the discardable memory system.
- Designed to be freeable by the system at any time (under memory pressure).
- In most cases, only pinned discardable memory should be considered to
- have a cost; however, the implementation of discardable memory is platform
- dependent, and on certain platforms unpinned memory can contribute to
- memory pressure to some degree.
-3. Shared Memory - Memory which is allocated by the Browser and can safely
- be transferred between processes. This memory is allocated by the browser
- but may count against a renderer process depending on who logically "owns"
- the memory.
-4. GPU Memory - Memory which is allocated on the GPU and typically does not
- count against system memory. This mainly includes OpenGL objects.
-
-## Categories Of Memory
-
-Memory-infra tracing will grab dumps of CC memory in several categories.
-
-### CC Category
-
-The CC category contains resource allocations made by ResourceProvider. All
-resource allocations are enumerated under cc/resource_memory. A subset of
-resources are used as tile memory, and are also enumerated under cc/tile_memory.
-For resources that appear in both cc/tile_memory and cc/resource_memory, the
-size will be attributed to cc/tile_memory (effective_size of cc/resource_memory
-will not include these resources).
-
-If the one-copy tile update path is in use, the cc category will also enumerate
-staging resources used as intermediates when drawing tiles. These resources are
-like tile_memory, in that they are shared with cc/resource_memory.
-
-Note that depending on the path being used, CC memory may be either shared
-memory or GPU memory:
-
-Path | Tile Memory Type | Staging Memory Type
--------------|-------------------------------------------
-Bitmap | Shared Memory | N/A
-One Copy | GPU Memory | Shared Memory
-Zero Copy | GPU or Shared Memory | N/A
-GPU | GPU Memory | N/A
-
-Note that these values can be determined from a memory-infra dump. For a given
-resource, hover over the small green arrow next to it's "size". This will show
-the other allocations that this resource is aliased with. If you see an
-allocation in the GPU process, the memory is generally GPU memory. Otherwise,
-the resource is typically Shared Memory.
-
-Tile and Staging memory managers are set up to evict any resource not used
-within 1s.
-
-### GPU Category
-
-This category lists the memory allocations needed to support CC's GPU path.
-Despite the name, the data in this category (within a Renderer process) is not
-GPU memory but Shared Memory.
-
-Allocations tracked here include GL command buffer support allocations such as:
-
-1. Command Buffer Memory - memory used to send commands across the GL command
- buffer. This is backed by Shared Memory.
-2. Mapped Memory - memory used in certain image upload paths to share data
- with the GPU process. This is backed by Shared Memory.
-3. Transfer Buffer Memory - memory used to transfer data to the GPU - used in
- different paths than mapped memory. Also backed by Shared Memory.
-
-### Discardable Category
-
-Cached images make use of Discardable memory. These allocations are managed by
-Skia and a better summary of these allocations can likely be found in the Skia
-category.
-
-### Malloc Category
-
-The malloc category shows a summary of all memory allocated through malloc.
-
-Currently the information here is not granular enough to be useful, and a
-good project would be to track down and instrument any large pools of memory
-using malloc.
-
-Some Skia caches also make use of malloc memory. For these allocations, a better
-summary can be seen in the Skia category.
-
-### Skia Category
-
-The Skia category shows all resources used by the Skia rendering system. These
-can be divided into a few subcategories. skia/gpu_resources/* includes all
-resources using GPU memory. All other categories draw from either Shared or
-malloc memory. To determine which type of memory a resource is using, hover
-over the green arrow next to its size. This will show the other allocations
-which the resource is aliased with.
-
-## Other Areas of Interest
-
-Many of the allocations under CC are aliased with memory in the Browser or GPU
-process. When investigating CC memory it may be worth looking at the following
-external categories:
-
-1. GPU Process / GPU Category - All GPU resources allocated by CC have a
- counterpart in the GPU/GPU category. This includes GL Textures, buffers, and
- other GPU backed objects such as Native GPU Memory Buffers.
-2. Browser Process / GpuMemoryBuffer Category - Resources backed by Shared
- Memory GpuMemoryBuffers are allocated by the browser and will be tracked
- in this category.
-3. Browser Process / SharedMemory Category - Resources backed by Bitmap and
- Shared Memory GpuMemoryBuffer objects are allocated by the browser and will
- also tracked in this category.
-
-## Memory TODOs
-
-The following areas have insufficient memory instrumentation.
-
-1. DisplayLists - DisplayLists can be quite large and are currently
- un-instrumented. These use malloc memory and currently contribute to
- malloc/allocated_objects/<unspecified>. [BUG](crbug.com/567465)
+This document has moved to [//docs/memory-infra/probe-cc.md](/docs/memory-infra/probe-cc.md).
« no previous file with comments | « base/allocator/README.md ('k') | components/tracing/docs/adding_memory_infra_tracing.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698