1) System troubleshooting method for mini-game warm-up problems
2) Memory and game batching in iOS high performance mode
This is UWA’s 482nd technical knowledge sharing effort. It selects hot topics in the UWA community and includes UWA Q&A, community posts and other technical knowledge points to help everyone master and learn more comprehensively.
UWA community homepage: community.uwa4d.com
UWA QQ Group: 793972859
The practical cases that are encouraged this time come fromA real and typical problem for projects using UWA services. UWA organizes important pointers, positioning paths, and processing suggestions into reusable case notes, making it easy for anyone to quickly compare and solve similar problems in their own projects.
Practical cases
Q: The heating problem on our project has become serious recently. Feedback from players focused on “phone gets hot after playing for a certain period of time”. We used UWA GOT Online to run a small game performance report, and did a round of optimizations for some modules with high CPU ratios. However, the actual cooling effect is not obvious. I want to ask, besides the CPU module itself, are there any other dimensions that have been missed? How to solve this heating problem systematically?
A: Mobile fever can be seen from four dimensions: CPU, GPU, display, and network. We’ve also tested both the screen and the network, and both contribute to heat generation, but are difficult to separate separately. What can really be optimized is the CPU and GPU.
Source: WeChat official document
Due to limitations of the mini-game interface, the UWA GOT Online mini-game report is temporarily unable to obtain CPU/GPU temperature data. We turned to the UWA Gears tool for additional testing and found that the CPU temperatures remained higher than the GPU, so the main source of heat generation in this project is definitely the CPU. Next, when we unpack the GOT Online CPU data, we can see that the problem is mainly concentrated in three types of structural loads.
The first category is combat logic modules. There were obvious frame level spikes in high-load scenes, and a single frame took over 100ms. The point is that tick fights are executed intensively in complex scenes, causing periodic accumulation of stress.
The second category is rendering modules. The overall performance is stable, but the time consumption of lobby, weapons, and complex UI interfaces increases to about 20ms, mainly due to Overdraw caused by rendering translucent objects, and Batch Break caused by too deep UI stacking. DrawCall exceeds the UWA recommended threshold of 250.
The third category is UI modules. The average time consumption is 8-9 ms (higher than UWA’s recommended value), and the frequency of CanvasRenderer.SyncTransform calls is very high (peak value reaches 940 times). The main cause is that the UI state switches too frequently (SetActive/Instantiate/Destroy), and link reconstruction is triggered repeatedly, resulting in a spike in time consumption.
In addition to the three main types of load above, there is also a secondary overhead of “idling physics” on the CPU that is easily overlooked. The number of 3D Physics Overlap calls in the report is 0, indicating that the project has not triggered 3D physics collision (in fact it can only use 2D Physics ray or gravity detection), but the physics module is still continuing Steps in the default Fixed Update mode. If your business does not rely on automatic simulation, you can change the Update Mode to Script. If you still need ray detection, check Auto SyncTransform to ensure real-time Transform synchronization.
Coming back to this project, the essence of the heat generation is not that the CPU is too high at one point, but the superposition of load of the three internal CPU modules, spikes in logic code instantiation, Overdraw and Batch Break rendering, and too frequent UI reconstruction. Physical idle is a small part that is easy to deal with, and the GPU as a whole is only a secondary contribution.
Practical cases
Q: We’ve enabled high performance plus mode on iOS, and there are a lot of icons. If everything is displayed in one album, memory usage will be high. Have you faced this situation before? Any optimization suggestions?
A: In this configuration, the “memory growth” brought about by the atlas needs to be differentiated first, whether it is changes at the tool statistical level or system-level pressure changes that actually affect the risk of damage. Otherwise, assessment bias will easily occur.
In iOS high performance mode, the texture-related memory distribution mechanism is not completely consistent with Unity Heap. Some texture resources will go to the system graphics layer (GPU/iOS graphics memory pool) for management. Therefore, the memory growth seen on the mini-game side is not necessarily fully equivalent to the final process-level memory pressure.
Determination of mini-game crashes not only looks at the total Unity Heap count, but relies on overall memory pressure sources, including comprehensive results from WebContent RSS processing, native memory usage, GPU texture pressure, and Jetsam system mechanisms.Therefore, memory changes caused by the atlas itself do not necessarily cause a crash risk.
In contrast, looking at the scatter plot, memory is saved, but the price is on the CPU and rendering link. Scattered images are loaded on demand (for example, only 20 of 100 images are used, and the rest will not fit into memory), which is indeed lighter in terms of “single memory usage”. However, fragmented resources will cause UI batching to suffer, texture switching to increase, and CPU overhead to increase during the UI delivery phase. In small gaming environments, this overhead often impacts frame rate and heat generation more than pure texture memory growth.
The atlas solution is another trade-off: it will incur one-time loading costs, including texture decoding and GPU upload, and will use more memory. But the benefits are more stable grouping effects, less texture switching, and lower UI rendering delivery CPU overhead.
Therefore, in UI scenarios with a lot of icons, on the premise of high-performance iOS plus Read/Write mode + no texture, we usually still recommend using the atlas first.Although there is additional overhead for the first load, the overall CPU cost and rendering stability will be better during the stable operation phase. From an engineering point of view, the key here is not “does the atlas save more memory”, but rather its benefits on the CPU rendering link usually offset the costs of memory concentration.
Whether it’s back-and-forth discussions between developers in the community or rapid feedback from AI based on accumulated knowledge, the point is to solve every technical problem and every obstacle to make an impact. I hope that this experience drawn from real development scenarios can directly help you solve technical problems that are stuck at the moment, and also enable you to find solutions more efficiently when faced with similar problems.
Cover image comes from the Internet
That’s all for sharing today. Life has limits but knowledge has no limits. In a long development cycle, the problems we encountered were just the tip of the iceberg. The UWA community is ready to accompany you to explore and share together. More developers are welcome to join the UWA community.
UWA official website: www.uwa4d.com
UWA Community: community.uwa4d.com
UWA Schools: edu.uwa4d.com
Official technical QQ group: 793972859
PakarPBN
A Private Blog Network (PBN) is a collection of websites that are controlled by a single individual or organization and used primarily to build backlinks to a “money site” in order to influence its ranking in search engines such as Google. The core idea behind a PBN is based on the importance of backlinks in Google’s ranking algorithm. Since Google views backlinks as signals of authority and trust, some website owners attempt to artificially create these signals through a controlled network of sites.
In a typical PBN setup, the owner acquires expired or aged domains that already have existing authority, backlinks, and history. These domains are rebuilt with new content and hosted separately, often using different IP addresses, hosting providers, themes, and ownership details to make them appear unrelated. Within the content published on these sites, links are strategically placed that point to the main website the owner wants to rank higher. By doing this, the owner attempts to pass link equity (also known as “link juice”) from the PBN sites to the target website.
The purpose of a PBN is to give the impression that the target website is naturally earning links from multiple independent sources. If done effectively, this can temporarily improve keyword rankings, increase organic visibility, and drive more traffic from search results.






