App performance issues
App Performance Testing has predefined thresholds for all performance metrics. If a test app exceeds these thresholds during a session, App Performance Testing flags a performance issue for that metric and provides recommendations on how to fix it.
You can view the issues flagged by App Performance Testing in the Issues Detected (App Live reports) or Performance Issues (App Automate reports) section of the report. The following sections describe the issues, error and warning messages, and recommended resolutions shown in the report.
The report shows the error messages when the app exceeds way over the threshold for a metric. The warning messages are displayed when the metric value is slightly more than the threshold value.
UI Rendering Performance
To evaluate the UI rendering performance of your app, in Android three types of frames are observed: Slow Frame Percent, Frozen Frame Percent, and ANR Count. For iOS, only the slow frames are considered.
Slow Frame Percent
The threshold for the percentage of slow frames in a session is less than or equal to 25% of the total frames rendered during a session.
Example error messages:
- 50% of frames rendered were slow taking more than 16 ms to render.
- With 50% of frames being rendered slow, users will observe jank and stutter.
Example warning messages:
- With 35% of frames being rendered slow, users will observe jank and stutter.
- 35% of slow frames rendered make app appear slow and janky.
Explanation: To ensure a smooth user experience, UI rendering should achieve 60 FPS without dropped or delayed frames. Slow rendering causes jank and stutter, leading to a subpar experience.
Jank is any disruption in the UI smoothness of an app. It is caused by the inability of an app to render frames in sync with the device’s screen refresh rate. Stutter is the uneven distribution of frame rendering times. To know more about slow UI rendering, see Google’s documentation.
Recommended resolution:
Frozen Frame Percent
The threshold for the percentage of frozen frames in a session is less than or equal to 0.1% of total frames rendered during a session.
Example error messages:
- 0.5% of frames rendered were frozen taking more than 700 ms to render
- App may appear stuck and unresponsive with 0.5% of frames frozen
- 0.5% of frozen frames makes app appear unresponsive to users
Example warning messages:
- With 0.2% of frames frozen, app may appear stuck and unresponsive to user
- 0.2% of frozen frames rendered make app appear unresponsive to users
Explanation: Frozen frames occur when UI frames take longer than 700 ms to render, resulting in an unresponsive app for users. Android recommends that no app frames should take 700 ms to ensure optimal performance.
Recommended resolution:
ANR Count
The threshold for the App Not Responding (ANR) Count is Zero ANRs in a session.
Example error message: 4 ANRs detected and may affect app discoverability and user experience
Explanation: ANRs are frustrating for users as they can’t interact with the UI leading to app quitting and poor ratings. Main thread can’t process user input events negatively impacting the user experience.
Recommended resolution:
CPU Usage
The threshold for CPU Usage is less than 20% of the overall CPU capacity throughout the session.
Example error messages: App’s avg CPU usage is 25% above recommended threshold and may lead to overheating and sluggish performance
Example warning messages: App is exceeding CPU usage recommended threshold of 20% and may lead to sluggish performance
Explanation: Excessive CPU usage is crucial for apps to avoid issues such as battery drain, device overheating, and sluggish performance, which can negatively impact the user experience.
Recommended resolution:
Memory Usage
The threshold for Memory Usage is less than 250 MB.
Example error messages: App’s avg memory footprint is 50% above the threshold and may result in slowness or crashes
Example warning messages: App’s memory footprint exceeds recommended threshold of 250 MB and may result in slowness
Explanation: Optimizing memory usage can improve app responsiveness, reduce the chance of it being terminated by the system, and enhance the user experience.
Recommended resolution:
Disk Writes
The threshold for total disk writes is less than 20 MB during a session.
Example error messages
- Disk writes are exceeding the recommended threshold by 50%
- App maybe less performant due to excessive disk writes
Example warning messages: App is exceeding disk write recommended threshold of 20 MB
Explanation: Reducing disk writes speeds up your app’s overall performance, makes it more responsive, and reduces wear on users’ device storage
Recommended resolution:
Network Usage (Uploads or downloads)
The recommended thresholds for network usage are:
- Total Network Uploads to be less than 5000 Kb in a session
- Total Network Downloads to be less than 20,000 Kb in a session
Example error messages:
The app may be transferring an excessive amount of network data, which is 50% above the recommended limit.
Example warning messages:
The app is exceeded the network data download/upload recommended threshold of 5000/20,000 Kb.
Explanation: App owners should optimize network data usage to prevent user abandonment caused data consumption and battery consumption.
Recommended resolution:
Battery Usage
The threshold for Battery Usage for Android is 0.5% or less percentage of battery consumed per minute.
Example error messages
- Battery drain in the app is 10% higher than the recommended threshold
- App might be consuming an excessive amount of battery
Example warning messages App’s battery usage is exceeding the recommended threshold of 0.5%
Explanation: Lower battery usage allows users to utilize the app and device for longer without worrying about battery drain, and helps prevent app abandonment.
Recommended resolution:
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
Thank you for your valuable feedback!