Introduction
Set up Arm Performance Studio
Set up an Android application for profiling
Interpret an example Arm Streamline report
Use Arm Streamline to capture data for your application
View an example Performance Advisor report
Create a Performance Advisor report for your application
Analyze your application with Frame Advisor
Debug your application with RenderDoc for Arm GPUs
Analyze shader program performance with Mali Offline Compiler
Next Steps
Frame Advisor offers in-depth frame-based analysis for mobile graphics in Android applications.
By capturing the API calls and rendering processes of a specific frame, you can identify performance bottlenecks that might slow down your application.
Start by connecting to your device.
Launch the Performance Studio Hub and open Frame Advisor.

Select New trace to start a new trace.

Select your device, and the application that you want to capture frames from.

If your application uses the Vulkan API, change the selection in the API settings to Vulkan.
Select Next to continue.
Unless you chose the Pause on connect option in the Device connection screen, the application starts automatically on the device.
After connecting to your device, you can capture a frame burst.
The Capture screen provides options for your capture session.

When you approach the part of your game where the problem occurs, select Pause and use the Step button to focus in just before it.
You can capture one frame burst of up to three consecutive frames. Adjust the Frame count as required.
Select the Capture button to start capturing the frame burst. Wait for the capture to complete. This might take several seconds.
Select Analyze to see the results. It might take a few minutes to analyze the data.
Frame Advisor presents the captured data in the Analysis screen. See your captured frames in the Frame Hierarchy view.

Explore each frame to evaluate how efficiently they were rendered on the device.
Look at the Render Graph to see how the frame was constructed.

Evaluate the render graph to look for render passes or input or output attachments that aren’t used in the final output and can be removed to save processing power and bandwidth.
Expand a frame in the Frame Hierarchy view, to see the render passes and draw calls within it. Step through the draw calls and watch the scene being built up in the Framebuffers view with each draw. Look for draw calls that can be eliminated, or identical draw calls that can be batched together.

In the Content Metrics view, sort draw calls by the number of primitives to find the most expensive objects. See whether these objects can be simplified.

For an expensive object, check the Detailed Metrics view to see how efficiently the object’s mesh is being rendered to the screen. Look for objects with duplicated vertices, or those that don’t efficiently reuse indices.

To see how to capture and analyze a problem frame with Frame Advisor, see the Capture and analyze a problem frame with Frame Advisor video tutorial .
You’ve now analyzed your application with Frame Advisor.
Next, you’ll use RenderDoc for Arm GPUs to capture frames and select application events for debugging.