Stay organized with collections
Save and categorize content based on your preferences.
ARCore can display an overlay panel with an app’s performance statistics such as
CPU and memory usage, providing a real-time overview of system resources.
Enable the performance overlay
Follow these steps to enable the performance overlay.
Open the AR experience in your app so that there is an active ARCore session
running. Your app must be in AR mode to receive the broadcast that enables
the overlay. The AR camera preview images should be visible on the device
screen.
Use the following activity manager broadcast command to enable the
performance overlay for your app.
# Enables ARCore's performance overlay and saves a setting to your app's# Android Shared Preferences, so that the overlay remains enabled in# subsequent ARCore sessions.#Your app must have an actively running ARCore session to receive the broadcast.adb shell am broadcast -a com.google.ar.core.ENABLE_PERFORMANCE_OVERLAY
You may be directed to the Settings menu to grant the ARCore package
permission to draw overlays. This step only needs to be performed once. Find
Google Play Services for AR and set the permissions toggle to Allowed
before navigating back to your app.
If you have enabled the performance overlay without granting ARCore
permission to draw overlays, you will be directed to the Settings menu each
time the app begins a new ARCore session. In this case, you should either
grant ARCore permission, or disable the performance overlay.
Disable the performance overlay
Follow these steps to disable the performance overlay.
Open the AR experience in your app so that there is an active ARCore session
running. Your app must be in AR mode to receive the broadcast that disables
the overlay. The AR camera preview images should be visible on the device
screen.
Use the following activity manager broadcast command to disable the
performance overlay for your app.
# Disables ARCore's performance overlay and saves a setting to your app's# Android Shared Preferences, so that the overlay remains disabled in# subsequent ARCore sessions.#Your app must have an actively running ARCore session to receive the broadcast.adb shell am broadcast -a com.google.ar.core.DISABLE_PERFORMANCE_OVERLAY
You can also disable the performance overlay by tapping the close button
on the overlay and clearing
your app’s Android Shared Preferences. One way to do this is to clear your app’s
data.
Interpreting CPU usage values
The Process CPU Usage field displays the amount of CPU time that the
application process currently uses as a percentage of the device’s total
available CPU time. This value includes application workloads, ARCore workloads,
and any other libraries that your app uses. For example, the field would display
25% CPU usage if the application process fully saturates a single CPU core when
running on a quad-core device.
The performance overlay also provides a CPU usage breakdown for individual
ARCore features. These breakdowns are also expressed as a percentage of the
device’s total available CPU time. The workloads are:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-10-31 UTC."],[[["\u003cp\u003eARCore offers a performance overlay that displays real-time CPU and memory usage statistics for your app during AR experiences.\u003c/p\u003e\n"],["\u003cp\u003eTo enable or disable the overlay, use specific ADB commands while your app is actively running in AR mode.\u003c/p\u003e\n"],["\u003cp\u003eThe overlay requires permission to draw overlays, which can be granted in the device's settings for "Google Play Services for AR".\u003c/p\u003e\n"],["\u003cp\u003eCPU usage is shown as a percentage of total device CPU, including both app and ARCore processes, and further broken down by specific ARCore features like motion tracking and plane detection.\u003c/p\u003e\n"]]],[],null,["ARCore can display an overlay panel with an app's performance statistics such as\nCPU and memory usage, providing a real-time overview of system resources.\n\nEnable the performance overlay\n\nFollow these steps to enable the performance overlay.\n\n1. Open the AR experience in your app so that there is an active ARCore session\n running. **Your app must be in AR mode to receive the broadcast that enables\n the overlay.** The AR camera preview images should be visible on the device\n screen.\n\n2. Use the following activity manager broadcast command to enable the\n performance overlay for your app.\n\n # Enables ARCore's performance overlay and saves a setting to your app's\n # Android Shared Preferences, so that the overlay remains enabled in\n # subsequent ARCore sessions.\n\n # Your app must have an actively running ARCore session to receive the broadcast.\n adb shell am broadcast -a com.google.ar.core.ENABLE_PERFORMANCE_OVERLAY\n\n3. You may be directed to the **Settings** menu to grant the ARCore package\n permission to draw overlays. This step only needs to be performed once. Find\n **Google Play Services for AR** and set the permissions toggle to **Allowed**\n before navigating back to your app.\n\n If you have enabled the performance overlay without granting ARCore\n permission to draw overlays, you will be directed to the Settings menu each\n time the app begins a new ARCore session. In this case, you should either\n grant ARCore permission, or disable the performance overlay.\n\nDisable the performance overlay\n\nFollow these steps to disable the performance overlay.\n\n1. Open the AR experience in your app so that there is an active ARCore session\n running. **Your app must be in AR mode to receive the broadcast that disables\n the overlay.** The AR camera preview images should be visible on the device\n screen.\n\n2. Use the following activity manager broadcast command to disable the\n performance overlay for your app.\n\n # Disables ARCore's performance overlay and saves a setting to your app's\n # Android Shared Preferences, so that the overlay remains disabled in\n # subsequent ARCore sessions.\n\n # Your app must have an actively running ARCore session to receive the broadcast.\n adb shell am broadcast -a com.google.ar.core.DISABLE_PERFORMANCE_OVERLAY\n\nYou can also disable the performance overlay by tapping the close button\non the overlay and clearing\nyour app's Android Shared Preferences. One way to do this is to clear your app's\ndata.\n\nInterpreting CPU usage values\n\nThe **Process CPU Usage** field displays the amount of CPU time that the\napplication process currently uses as a percentage of the device's total\navailable CPU time. This value includes application workloads, ARCore workloads,\nand any other libraries that your app uses. For example, the field would display\n25% CPU usage if the application process fully saturates a single CPU core when\nrunning on a quad-core device.\n\nThe performance overlay also provides a CPU usage breakdown for individual\nARCore features. These breakdowns are also expressed as a percentage of the\ndevice's total available CPU time. The workloads are:\n\n- [Motion Tracking](/ar/discover/concepts#motion_tracking)\n- [Plane Detection](/ar/discover/concepts#environmental_understanding)\n\nThe overlay does not display any features that are disabled or using less than\n0.1% CPU time."]]