- 14 Feb 2025
- 5 Minutes to read
- Print
- DarkLight
Understanding App Performance Reports
- Updated on 14 Feb 2025
- 5 Minutes to read
- Print
- DarkLight
Overview
App performance reports provide critical insights into how an application behaves under real-world conditions. These reports analyze key metrics such as CPU usage, Memory consumption, Network requests, UI responsiveness, and error logs, etc to help developers identify bottlenecks, crashes, and inefficiencies. By understanding these reports, teams can optimize app stability, enhance user experience, and ensure seamless performance across different devices and environments.
Prerequisites
Valid Pcloudy User
Access to App Performance Reports
The App Performance Report is divided into different sections:
Summary
The summary of the report provides an overview of the app performance issues in the app. On the left, you can see a quick snapshot of the issues in the form of a pie chart, which provides vital information like the total number of issues, the type of issues, and a quick summary of the issues. Hovering and clicking on any of the issues will populate the selected issues and give you a summary of the issues below the chart.
On the right, you have information about the device that the test was performed on and the test session information. Below these, you have a quick overview of the different sections, like App Insights, which provides information about the app, its size, the CPU Usage, the App Launch Time, Memory Usage, etc. The UI insights provide key metrics like Average FPS and FPS Stability to gauge the performance of the app visuals and interfaces. The Network sections provides a quick overview of the number API requests, data usage, response time, etc.
App Insights
The App Insights section provides a comprehensive performance analysis of an application, offering in-depth visibility into various system metrics that impact its efficiency and user experience. It captures crucial data points related to CPU utilization, memory consumption, network activity, battery usage, and UI responsiveness, helping developers and testers identify potential performance bottlenecks, inefficiencies, or anomalies. By monitoring these metrics, teams can diagnose issues such as excessive resource usage, rendering delays, or network inefficiencies, ultimately improving app stability and optimizing overall performance.
CPU
Metrics Name | Description |
---|---|
System CPU (%) | This represents the overall percentage of CPU usage by the entire system (including the operating system and all running processes). |
Application CPU (%) | This represents the percentage of CPU usage by the application itself. |
Frame (Rendering Performance)
Metrics Name | Description |
---|---|
Total Frames (Count) | The total number of frames rendered by the application. |
Janky Frames (Count) | "Janky frames" occur when frames take longer to render than the allotted time (usually 16 ms for 60 fps). |
Smooth Frames (Count) | Frames that were rendered without issues or delays. |
Estimated FPS (FPS) | The estimated frames per second (FPS) the app is running at. |
Smoothness Percentage (%) | This shows how smooth the rendered frames are (as a percentage). |
Frame Deadline Missed (Count) | The number of frames that missed their rendering deadline. |
Memory (RAM and GPU)
Metrics Name | Description |
---|---|
GPU Usage (MB) | The amount of memory being used by the Graphics Processing Unit (GPU). |
Total Memory Usage (MB) | Total memory consumption by the application. |
Java Heap (MB) | Memory used by the Java heap, which holds application objects. |
Native Heap (MB) | Memory allocated for native (non-Java) code. |
Code (MB) | Memory used to store executable code. |
Stack (MB) | Memory used for the application’s stack (for function calls and local variables). |
Graphics (MB) | Memory consumed by graphic-related components. |
Others (MB) | Memory consumed by miscellaneous components. |
UI (User Interface)
Metrics Name | Description |
---|---|
High Input Latency (Count) | The number of times the app experiences input latency (when the system takes longer than expected to respond to user input). |
Slow UI Thread (Count) | The number of times the main UI thread was slow in processing tasks. |
Total Views (Count) | The total number of UI views being rendered. This is missing in the data provided. |
Network
Metrics Name | Description |
---|---|
Transmitted Packets (Count) | The number of packets transmitted by the application. |
Transmitted Bytes (Bytes) | The amount of data (in bytes) transmitted by the app. |
Received Packets (Count) | The number of packets received by the application. |
Received Bytes (Bytes) | The amount of data (in bytes) received by the app. |
Download Throughput (B/s) | The rate at which data is downloaded (in bytes per second). |
Upload Throughput (B/s) | The rate at which data is uploaded (in bytes per second). |
Battery
Metrics Name | Description |
---|---|
Total App Drain Battery (mAh) | The total battery consumption by the app, measured in milliamp hours (mAh). |
Voltage (V) | The voltage battery consumption by the app, measured in millivolts (mV). |
Temperature (°C) | The temperature of the phone while the app is running on the device, measured in centigrade (°C). |
UI Insights
The UI Insights section of the report captures the Page Transition Data which provides the user with information about how long it took to transition from one page to another. This helps the QA teams know exactly what is causing the delay in the slow loading of various screens in the mobile and web apps.
Network
The Network section of the app performance report highlights key issues related to API and service requests. This section provides detailed insights into failed network calls, their status, request size, and response time. Understanding these network failures is crucial for optimizing app performance and reliability. Identifying backend failures early allows developers to diagnose and resolve server-side issues before they impact users. Analyzing failed requests helps prioritize fixing unstable API endpoints, ensuring a smoother experience. Additionally, insights from error patterns can improve error handling by implementing better retry mechanisms and user-friendly. Finally, monitoring slow or failing endpoints helps in optimizing response times, enhancing overall app efficiency and performance. messages.
Status Distribution (Pie Charts)
A network status distribution code typically refers to the classification and analysis of HTTP status codes (1xx, 2xx, 3xx, 4xx, 5xx) based on their frequency or occurrence in a network or application. This distribution helps monitor application health, diagnose issues, and optimize network performance by understanding the nature of responses received.
What Do Different Network Codes Mean?
Status Code | Meaning | Description |
---|---|---|
200 OK | Success | The request was successful, and the server returned the requested data. |
201 Created | Success | The request was successful, and a new resource was created. |
204 No Content | Success | The request was successful, but there is no content to return. |
301 Moved Permanently | Redirection | The resource has been permanently moved to a new URL. |
302 Found | Redirection | The resource is temporarily available at a different URL. |
304 Not Modified | Redirection | The resource has not changed since the last request. |
400 Bad Request | Client Error | The server cannot process the request due to malformed syntax. |
401 Unauthorized | Client Error | Authentication is required and has failed or has not been provided. |
403 Forbidden | Client Error | The server understands the request but refuses to authorize it. |
404 Not Found | Client Error | The server cannot find the requested resource. |
500 Internal Server Error | Server Error | A generic error occurred on the server. |
502 Bad Gateway | Server Error | The server received an invalid response from an upstream server. |
503 Service Unavailable | Server Error | The server is currently unable to handle the request. |
504 Gateway Timeout | Server Error | The server did not receive a timely response from an upstream server. |
Logs
The Logs section provides insights into different types of issues encountered during the app’s execution. This section helps developers track errors, crashes, and other critical system events, making it easier to diagnose and resolve performance problems. Analyzing logs provides valuable insights into recurring issues that affect app stability and user experience. Identifying crash patterns helps developers debug and fix critical failures to prevent app crashes. The high number of network failures highlights the need for improved API reliability, better error handling, and potential optimizations for data transmission. By proactively monitoring logs, teams can address underlying performance issues, optimize resource usage, and ensure a smoother, more reliable experience for users.