[null,null,["最后更新时间 (UTC):2025-07-26。"],[],[],null,["# FPS throttling\n\nAndroid FPS throttling is a Game Mode intervention that helps games run at a\nmore stable frame rate in order to reduce battery consumption. The intervention\nis available in [Android 13](/about/versions/13/get) or later.\n\nAs more Android devices ship with displays that have higher refresh rates, such\nas 90 Hz and 120 Hz, most games try to pace at a high FPS. However, they usually\ndon't consider user preferences for prioritizing performance or battery life.\nThis causes several problems:\n\n- Games that can't consistently pace at the higher FPS end up having unstable\n or uneven FPS.\n\n- Users often don't really want to have higher FPS because the battery runs out\n too quickly.\n\nFPS throttling is only able to *limit* the frame rate. For an\nexample, when a game runs at 60 FPS originally, FPS throttling intervention\ncannot make it run at 120 FPS but throttling at 40 FPS and 30 FPS is valid.\n\nFPS throttling can result in up to a 50% GPU power reduction and a 20% system\npower reduction. It also helps run unpaced games at a smoother and less janky\nframe rate.\n\nAn unpaced game often has higher peak frame rates but with\n[higher variance](/games/sdk/frame-pacing#how-it-works) of frame time. This\nsignificantly impacts how the performance is perceived by players. The FPS\nthrottling intervention only helps unpaced games achieve frame pacing from the\nplatform side.\n\nThe results of the FPS throttling intervention may vary based on the device\nused, environmental conditions, and other factors.\n\nInteractions with app frame-pacing implementations\n--------------------------------------------------\n\nWhen both the app frame-pacing implementation and FPS throttling are enforced,\ngenerally the final frame rate is the lower targeting frame rate.\n| **Important:** An exception to this is when an app force sleeps the render thread to achieve frame-pacing. In this case, the FPS throttling intervention can't limit the frame rate any further.\n\nGet started\n-----------\n\nThis section describes how to set up and use FPS throttling using\n[Android Debug Bridge (adb)](/studio/command-line/adb).\n| **Important:** Make sure your game hasn't [declared support](/games/optimize/adpf/gamemode/gamemode-api#declare_support_for_game_modes) for the Game Mode API so the FPS throttling intervention isn't overridden.\n\n### Enable game mode interventions\n\nTo enable game mode interventions for a game, use the following command: \n\n adb shell device_config put game_overlay \u003cPACKAGE_NAME\u003e \u003cCONFIG\u003e\n\n### Set the FPS intervention\n\nTo set the target FPS throttling intervention, use the `device_config` command.\nHere's an example that sets FPS throttling for performance and battery mode: \n\n adb shell device_config put game_overlay \u003cPACKAGE_NAME\u003e mode=2,fps=90:mode=3,fps=30\n\nDetails of the parameters:\n\n- `mode` \\[2\\|3\\]: `2` and `3` for performance and battery mode\n- `fps` \\[0\\|30\\|40\\|45\\|60\\|90\\|120\\]: depending on the device you are using (whether a 120, 90, or 60 Hz device), we recommend choosing the frame rates that are divisors of the device's maximum refresh rate. `0` is the default value.\n\nHere are the frame rates that each display type supports:\n\n- 60 Hz displays: 60 FPS, 30 FPS\n- 90 Hz displays: 90 FPS, 45 FPS, 30 FPS\n- 120 Hz displays: 120 FPS, 60 FPS, 40 FPS, 30 FPS\n\n### Get results\n\nTo view and analyze the results, you can inspect the FPS counter or capture\na Perfetto trace. Here's example of how to view the FPS counter in a game that\nis running at 120 FPS:\n\n#### View the FPS counter\n\nTo verify your FPS throttling settings, you can run the game and open the FPS\ncounter in Game Dashboard. To do so, follow these steps:\n\n1. While running your game, swipe down and the press Game Dashboard icon.\n\n2. Turn on the FPS counter by pressing the **FPS** button.\n\n3. Close Game Dashboard by pressing the **X** button. Swipe right on the arrow\n to display the FPS counter.\n\n#### Capture a Perfetto trace\n\nTo get an in-depth look at the performance of your game, we recommend you\nperform a Perfetto trace. For more information on performing a trace, see\n[Quickstart: Record traces on Android](https://perfetto.dev/docs/quickstart/android-tracing).\n\nWhen you perform a trace, use the `android.game_interventions` data source.\nAfter the trace completes, the **trace viewer** page is displayed. In the\nnavigation bar, select **Info and stats** and then view the **Game mode and\nintervention** list. For example:\n\nFPS throttling interventions are shown in the format of \"fps=X\", where `X` is\nthe throttling FPS in a specific game mode. `0` is the default value."]]