How to troubleshoot game performance problems? — — Performance Optimization

Good game performance is a necessary component for quality gameplay. However, Game performance problems caused by bugs, hardware problems, or inefficient coding, such as slow frame rates, can often occur and negatively affect the player experience.

Good game performance is a necessary component for quality gameplay. However, Game performance problems caused by bugs, hardware problems, or inefficient coding, such as slow frame rates, can often occur and negatively affect the player experience.


Performance Testing is a testing process to determine the speed, stability, and reliability of a product under a particular workload. The main purpose of performance testing is to identify and resolve these performance issues.


Performance Testing Metrics


In performance testing, the basic parameters monitored include:


  • CPU occupancy — Average CPU occupancy/Proportion of low CPU occupancy (%)
  • Android — Memory PSS (proportional set size) — Memory PSS peak/Average memory PSS (MB) /** IOS — Footprint Memory**
  • FPS (frames per second)rate — Proportion of high FPS (%) /Average FPS (frame/s) / Standard deviation/ FPS jitter (times/hour)


After testing these metrics with different scenarios and machine models, analytical data and a bug list would be generated with corresponding severity levels, defect descriptions, and defect categories.




  • Client Application Performance Monitoring (APM) — PerfSight


APM is a tool for monitoring the gaming experience of mobile game users. Using this tool, the game developers can identify bugs and potential issues in their games and improve their gameplay via close monitoring of users’ performance stats. During gameplay, APM conducts comprehensive monitoring of gameplay experience by monitoring players’ FPS, Memory PSS, VSS, CPU, GPU, traffic, network data, and other customized business layers.


PerfSight, as an APM tool, provides multiple statistical analysis dimensions such as time, version, scene, model, and single-user to meet diversified analysis needs. The single-user second-level monitoring can directly restore user experience before finding the cause of problems; the intelligent alarm system can send real-time feedback about online performance issues and influencing factors, and quickly control performance changes. It supports customized data reporting such as subdivided image quality to meet the diversified monitoring needs of the project team.


  • Client Performance Test Tool — Perfdog


Client Performance Test Tool is a tool for testing and analyzing the performance of a game by testing the client-side (end-to-end testing). It serves to quickly locate and analyze the performance issues, and improve the performance and quality of apps and games.


PerfDog, for example, supports all applications on the mobile platform (games, apps, browsers, mini-programs, mini-games, H5, background system processes, etc.) and Android Emulator, Cloud Real Machine performance tests. It also supports APP multi-process testing, such as Android multi-child process and iOS extension process APP Extension.


The newly launched Perfdog Service can be deployed to local/cloud real machines without intrusion, and automatically adapt to a variety of applications and mainstream automation frameworks. Clients can perform secondary development based on service components for automated performance, testing services, and cloud testing services.


In the process of traditional software development and version iteration, companies require a lot of manpower, resources, and money to perform performance testing. In addition, due to insufficient client-side testing capabilities, some companies often have testing issues such as unable to conduct performance testing in iOS; or that Android testing is inaccurate and unstable.


WeTest’s Perfdog Service can help companies flexibly build their own performance cloud platform, effectively build local performance monitoring, automated cloud testing services, custom web-based data visualization, and other capabilities, and provide them with core technical support and automated performance solutions. In addition, due to the integration of multi-platform performance acquisition and technical capabilities, the performance testing indicators are more professional and in-depth, allowing enterprises to efficiently complete client performance testing.



  • Crash Reporting Tool — CrashSight (Bugly)


Crash Reporting Tool helps to locate and fix pervasive crashes in a game. Bugly Overseas Edition provides developers with data statistical analysis and error log analysis on the whole platform to help developers quickly locate and solve errors, effectively reduce the crash rate of products and improve the overall user experience of products. Overseas editions also help developers with data compliance issues at sea.

Latest Posts
1Introducing Go Language for System Transformation: Tips and Techniques for Improved Performance Because the go language natively supports coroutines and can meet both development efficiency and program performance, it was decided to introduce the go language for transformation.
2Choosing the Right API Testing Tools: A Comprehensive Guide API testing can be performed by simply recording script through tools with GUI such as soapUI, or by writing code by open source project tools
3Exploring Valuable Test Cases in the Android Official MVP Project: A Comprehensive Guide to Unit Tes This article serves as an appendix to "Interpreting the Unit Testing of the Android Official MVP Project". This MVP project and its unit testing cases can provide many insights for our work, so it is worth giving it a quick read.
4A Comprehensive Guide to XSS Attacks and Defenses This article provides a detailed introduction to XSS(Cross Site Scripting) vulnerability attacks and defenses, including vulnerability basics, XSS fundamentals, encoding basics, XSS Payload, and XSS attack defense.
5How to Make Your Go Program Run Faster? This article is about the Go language. It primarily focuses on runtime speed, rather than development speed – these two types of speed are distinct.