Introduction:

In a recent special test of game performance, I found the frame rate dropped sharply, and the developer analyzed the stack information of the source code. After a long time of suffering, I could not locate the cause, and finally found that it was caused by the mobile phone’s heat drop.

Experienced looking at complete performance data, you can see the cause of the problem at a glance. It should be emphasized that the analysis of the problem requires the linkage analysis of the whole data, and it is not meaningful to look at a single piece of information. This case is very typical, so I will analyze the actual performance experience, hoping to be of some help to the testing or development students.

During the monthly regression test for game performance, we tested the Galaxy S9 Plus phone and found that the frame rate drops very regularly: After entering the game and playing for a period of time, the FPS slowly decreased from 50 frames to more than 10 frames, and then the frame rate continued to be low. Under the condition of low frame rate, Jank lag increased significantly, as shown in the screenshot of PerfDog client:

The corresponding Web screenshot (web diagram information can be viewed more directly) is as follows:

The developer thought it was a problem with the game code, and the printing stack information did not show any problems. The CPU utilization rate was about 15%, and the total utilization rate was about 40%. The problem was that the CPU utilization rate did not change during the steep drop. As shown in figure:

Is there a memory leak, resulting in insufficient memory for memory swap? But according to the data, around 500-600MB is also normal. As shown in figure:

There is no problem with CPU and memory, and the game rendering screen may be relatively bottleneck on GPU. Check the GPU one by one, and it is found that the GPU utilization rate in the process of frame rate steep drop is about 80%-40%, indicating that GPU is not the bottleneck point of performance. How to understand this? This is due to lower frame rates, less rendering, and less natural utilization.


Easy to think of points were analyzed, and nothing was found. During the test, the cell phone was found to be very hot. Can it be related to temperature? As shown in figure:

The actual test found that the temperature was as high as 70 degrees. Is this the rhythm of boiling eggs? Based on the perception of CPU hardware, the CPU frequency may be lowered due to high temperature. Check the CPU Freq frequency information immediately, as shown in figure:

The image found that the frame rate decreased from 47 to 16.9 frames, and the frequency decreased from 1700+2800 to 576+825. Verify that it is the down frequency that causes the frame rate to drop. This time the problem was solved.


Highlights of PerfDog expert classes:



Mobile phone hardware temperature control system, why need temperature control?

Because: mobile phone high frequency operation is similar to the engine, produces great energy consumption heat, high frequency with the operation time, the temperature will continue to increase, if not controlled, will it go up several hundred degrees? It burns the CPU chip, so the hardware needs temperature control. How? When the temperature exceeds a certain threshold, the CPU frequency reduction mechanism is triggered. The temperature threshold of different mobile phone manufacturers is different. Some mobile phones will lower the frequency at 50 degrees, and some mobile phones will lower the frequency only at 65 degrees. I have tested Mi 5 before, and it seems that it will lower the frequency less than 50 degrees, which is extremely sensitive to temperature.


PerfDog is a platform focused on mobile performance testing and analysis, providing a lot of performance data, each of which is meaningful and valuable. However, in the process of problem analysis, multi-data linkage analysis is required, and unexpected effects may be found.