CPU Thermal Optimization in Mobile Games: Reducing Heat Through Logic, Physics, and Animation System Tuning
The project has already gone through multiple rounds of power optimization. GPU load and bandwidth issues have been significantly controlled, and GPU temperature has decreased accordingly. However, CPU side temperature remains a major concern. How should CPU heat be further optimized? https://uwa overseas public.oss us east 1.aliyuncs.com/uploads/markdown/86c48e29 53e5 4c78 af76 215acd093df4.png
Based on the temperature curves in the GameOptim GOT Online report, the current device heating is primarily contributed by the CPU side, with some segments showing partial temperature drops. While frequency throttling reduces power consumption, it also reduces CPU execution efficiency, meaning the same workload takes longer to complete. Therefore, this factor needs careful attention. The core goal of CPU thermal optimization remains reducing CPU pressure, which can be approached from three main areas: 1. Logic Layer Code Execution Priority should be given to identifying spike level costs in LuaBehaviourUpdater.Update, LuaBehaviourUpdater.LateUpdate, and coroutine related execution paths. These areas often cause single frame spikes of tens or even hundreds of milliseconds, commonly related to resource loading and object instantiation. Additionally, in battle scenes, LuaBehaviourUpdater.Update often shows sustained logic overhead. Stack traces indicate that a large portion of time is concentrated in the C layer. It is recommended to add PushSample/PopSample profiling markers at key business nodes to further locate true hotspot functions. https://uwa overseas public.oss us east 1.aliyuncs.com/uploads/markdown/5a84e806 1212 46d9 91a8 b078b4284b17.png 2. Physics Module If the project does not rely on rigidbody simulation and mainly uses physics queries such as Raycast, further optimization of the Physics module can be considered. Disable automatic physics simulation Set Physics.simulationMode to Script mode, and manually trigger physics simulation only when needed. This avoids fixed per frame physics step costs. Use Auto Sync Transforms cautiously In most cases, it is recommended to disable Auto Sync Transforms. This feature automatically synchronizes Transform changes to the physics system, which can introduce additional CPU overhead when objects move frequently. If disabling it causes incorrect physics query results, Physics.SyncTransforms can be manually called at necessary points to balance correctness and performance. 3. Animation Module: Offloading Computation to GPU If optimization potential in logic and physics layers is limited, the animation system should be examined. In combat scenes, Animator, SkinnedMeshRenderer, and skeletal skinning calculations often account for significant CPU usage. Offloading part of these computations to the GPU can effectively reduce CPU load and thereby lower thermal output. Two key considerations: 1. GPU skinning must be validated through testing Unity’s built in GPU Skinning, Compute Shader based GPU Skinning, and third party GPU skinning solutions all have different applicable scenarios. Final performance gains depend heavily on character count, bone complexity, platform characteristics, and Unity version. Therefore, results should be validated through project specific testing rather than assuming a fixed solution. 2. Focus on overall power consumption, not single task cost CPU power consumption is not strictly linear with frequency. In many cases, reducing CPU frequency by one level leads to a greater reduction in power consumption than the corresponding performance loss. As a result, even if GPU workload slightly increases, lowering CPU core utilization often still improves overall thermal behavior and battery life. This is also why many large scale mobile games eventually adopt GPU skinning or animation baking solutions.