[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-07-27。"],[],[],null,["# View a system profile\n\nIn Android GPU Inspector (AGI), you can view and analyze a\n[system profile](/agi/sys-trace/system-profiler) in the System Profiler UI.\nAfter you profile a system and [open the trace file](/agi/start#system-profile) in\nAGI, System Profiler displays the\n[profiling data](#profiling_data) in a timeline with expandable items that\ndisplay additional details.\n| **Note:** For information about performing frame profiling, see the [Frame profiling](/agi/frame-trace/frame-profiler) overview.\n\nThe main elements of the System Profiler UI includes the\nfollowing:\n\n- Toolbar\n\n - [Navigation mode buttons](#navigation_mode)\n\n - Track filter textbox: filters the tracks that are displayed in the\n [track](#profiling_data) pane.\n\n - Info button (**i**): displays trace and device metadata.\n\n - Help button (**?** ): displays\n [keyboard and mouse shortcuts](#navigation_shortcuts).\n\n- [Timeline](#select_a_time_range): indicates the timespan of trace events.\n\n- [Track](#profiling_data) pane: displays profiling data in relation to the timeline.\n\n- [Details](#view_details) pane: an expandable pane that displays\n details about a selected item.\n\nProfiling data\n--------------\n\nIn a trace file, the profiling data is stored in timestamped events called trace\nevents. Trace events consist of various types of slices and counters. For\nexample, CPU trace events include scheduling slices, while GPU trace events\ninclude GPU performance counters and thread slices.\n\nIn the System Profiler UI, the track pane contains trace events\nthat are displayed in rows called tracks, which are based on the timeline.\nTracks of the same type are displayed in track groups.\n\n### GPU tracks\n\nThe GPU tracks display GPU profiling information. These are the main GPU track\ntypes:\n\n1. **GPU Queue Tracks**: GPU activity of the application.\n\n2. **GPU Counter Tracks**: GPU's hardware counters sampled at periodic\n intervals.\n\n3. **Vulkan Events Track**: Vulkan API related events.\n\n4. **SurfaceFlinger Tracks**: SurfaceFlinger events, which indicate how graphics\n buffers move through the system.\n\n#### GPU queue tracks\n\nA GPU can have one or more **GPU Queue** tracks based on the number of hardware\nqueues that ran during the trace. **GPU Queue** tracks contain activity slices\nthat represent the period and type of GPU work that was used by your app.\n\nAn activity slice contains metadata that you can view, such as the Vulkan\ncommand buffer, render pass, and frame buffer that initiated the work. The\nVulkan handles to these objects are displayed in the [details](#view_details)\npane as follows:\n\n- `VkCommandBuffer`\n- `VkRenderPass`\n- `VkFrameBuffer`\n\nYou can give user-friendly names to these objects, so you can easily identify\nthem in a trace alongside their handles, by using the\n[`vkSetDebugUtilsObjectNameEXT`](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSetDebugUtilsObjectNameEXT.html)\nfunction from the `VK_EXT_debug_utils` extension, or the\n[`vkDebugMarkerSetObjectNameEXT`](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDebugMarkerSetObjectNameEXT.html)\nfunction from the `VK_EXT_debug_marker` extension. Both extensions are\nimplemented by AGI and available to your application while tracing.\n\n#### GPU counter tracks\n\nGPU counter tracks graph the value of GPU performance counters sampled at a\nperiodic interval. The graphs display variations in the performance of your GPUs\nunderlying hardware components between samples. You can use this info to\nidentify bottlenecks in your GPU usage.\n\nThe available counters are hardware specific. You can view brief descriptions of\neach counter by hovering over the track name. For details, see\n[GPU performance counters](/agi/sys-trace/counters-arm).\n\n#### Vulkan event track\n\nThe Vulkan event track shows Vulkan API events recorded during the trace. The\ntrack event types are mainly queue submit events (`vkQueueSubmit` calls). If you\nclick a queue submit event, AGI highlights the GPU activity slices that are\nassociated with the call. You can use this data to inspect the asynchronous work\nqueued by Vulkan API calls and the latency between the CPU and GPU.\n\n#### SurfaceFlinger tracks\n\n[SurfaceFlinger](https://source.android.com/devices/graphics/surfaceflinger-windowmanager) tracks display\nthe lifecycle of graphics buffers (an app's swapchain render targets) as they\npogress through the system until they are displayed. The events are aggregated\nby buffer to make it easier to track the overhead and latency needed for\nacquiring and posting buffers.\n\nInteract with profiling data\n----------------------------\n\nThis section describes how to interact with [profiling data](#profiling_data) in\nthe System Profiler UI.\n\n### Pin\n\nYou can pin tracks and track groups by using their pin button.\n\n### Collapse and expand\n\nSome tracks and all track groups are are collapsable. Some track groups display\na summary when collapsed. For example, when collapsed, the CPU track group shows\nthe overall CPU usage in a graph.\n\n### Zoom\n\nAGI aggregates profiling data based on zoom level. When you first\n[open a trace file](/agi/start#system-profile), the System Profiler\nUI displays the entire profile at the maximum zoomed-out level. You can inspect\nthe profile by finding areas of interest and then viewing the details.\n\nAs you zoom in and out on different track types, they display different types of\nprofiling data. For example, CPU tracks initially display time slices of each\nthread, and then eventually switch to displaying CPU core utilization data when\nzooming in.\n\n### View details\n\nYou can display detailed metadata in the details pane by selecting items in the\ntrack pane. If an item is selectable, hovering over it will change the cursor to\na pointer and then you can choose the item.\n\n### Select a time range\n\nYou can select a time range, which allows you to compare trace events from\ndifferent tracks. To do so, enable **Timing** mode and then drag to select a\nrange. Everything outside of the is dimmed and duration of the range is\ndisplayed.\n\nYou can also select the time range of a selected slice by pressing `M`. You can\nthen scroll through additional tracks to identify events from the same time\nperiod.\n\n### Navigation shortcuts\n\nYou can navigate items in the track pane with the `WASD` keys or by scrolling\nand panning. System Profiler uses the same keyboard and mouse\nshortcuts as [Systrace](https://source.android.com/devices/tech/debug/systrace).\nThe available shortcuts include the following:\n\n- `W` and `S`, or `Ctrl++` and `Ctrl+-` to zoom.\n- `A` and `D`, or `left` and `right` arrows pan the view left and right.\n- `Q` and `E`, or `up` and `down` arrows scroll the tracks.\n- Hold `shift` increases the movement speed of navigation.\n- `Ctrl`+scroll zooms on the selected item.\n- `F` zooms on a selected item.\n- `Z`+`0` resets and completely zooms out.\n- `V` toggles highlighting VSync if it is available in the trace.\n- `M` marks the current selection by selecting its time range.\n- `H` or `?` shows the keyboard and mouse shortcut cheatsheet.\n\n#### Navigation mode\n\nThe toolbar contains buttons that switch between navigation modes, which\nselect the action that is performed when you drag items in the track pane. You\ncan also select the following navigation modes by pressing the `1`, `2`, `3`,\nand `4` keys:\n\n1. **Selection**: Drag to box-select items.\n2. **Pan**: Drag to pan and scroll the tracks. This is the default mode.\n3. **Zoom**: Drag vertically to zoom on items.\n4. **Timing**: Drag to select a time range.\n\nYou can also use navigation modes with these modifier keys:\n\n- `Shift+`drag to box select items.\n- `Space+`drag to pan and scroll.\n- `Ctrl+`scroll to zoom.\n- `Ctrl+`drag to select a time range."]]