Mobile game performance profiling

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Mobile game performance profiling
Medium
~2-3 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Mobile Game Performance Profiling

"The game is lagging" — that's not a diagnosis. It's lagging because the CPU can't keep up with the GPU, because GC is collecting garbage, because textures don't fit in VRAM, because the shader is too heavy for an Adreno 618, or because Metal behavior changed on iOS 17. Without a profiler it's guesswork. With one — concrete numbers and concrete culprits.

Tools and What Each Shows

Unity Profiler — the starting point. Deep Profile mode slows the game but shows all calls with allocations. Connect via Development Build + Autoconnect Profiler or USB. Always test on device, not in the editor: different GC, different render backend, different latencies on device.

Key markers in the CPU trace:

  • GC.Collect — garbage collection. If > 1 ms and occurs more than once every few seconds — allocation problem in hot path
  • Camera.RenderRenderForwardOpaque.Render — main GPU load
  • Physics.Processing — physics. If > 3 ms at 60 FPS budget — too many colliders or suboptimal FixedTimestep settings

Android GPU Inspector (AGI) — for Android on Qualcomm or Mali. Shows GPU time per draw call, pipeline bubbles (pauses between vertex and fragment shaders), ALU utilization. Critical for understanding what's heavy on GPU: geometry, overdraw, or fill rate.

Xcode Instruments — for iOS. Use Metal System Trace for GPU, Time Profiler for CPU, Allocations for memory. Thermal State in Instruments shows when the device starts throttling due to overheating — a common cause of unstable FPS after 5 minutes of gameplay.

Snapdragon Profiler — alternative to AGI for Adreno. Simpler for snapshot mode, shows shader efficiency well.

Typical Findings

CPU-bound Scene

Symptom: VSync waits on GPU less than 1 ms (GPU keeps up), but frame still takes 20+ ms. CPU is the bottleneck.

Most often culprit — Update() methods with heavy logic, LINQ queries in hot path (each creates allocation), or FindObjectsOfType inside Update (O(n) across all scene objects). Memory Profiler shows this as constant GC.Alloc of several KB per frame.

Solution: transition to Data-Oriented Technology Stack (DOTS/ECS) for mass objects, or minimally — cache results, replace LINQ with explicit loops, event-driven architecture instead of polling.

GPU-bound, Overdraw

Symptom: GPU time is high, but draw call count is small. AGI shows high Fragment Shader time.

Overdraw — drawing the same pixels multiple times due to transparent object overlap. In Unity, visible in Overdraw mode in Scene View. Dark red regions — drawing each pixel 4+ times. Typical for 2D games with many particle layers.

Solution: sort transparent objects, limit simultaneously active particles, replace transparent sprites with opaque where artistically possible.

Thermal Throttling

On iPhone after 3–7 minutes of intensive gameplay, processor temperature reaches threshold, and iOS lowers CPU/GPU frequency. FPS drops from 60 to 40–45 without any changed load in the game. Check via ProcessInfo.thermalState (iOS) — at .serious or .critical reduce graphics quality preventively.

Android has similar mechanism — PowerManager.getThermalHeadroom() (API 29+).

Report Format

After profiling, deliver a report with specific markers: what's slow, on which device it reproduces, how many ms it takes, and recommendations with priority. Not "optimize physics," but "FixedUpdate in EnemyAI.cs calls Physics2D.OverlapCircleAll every 20 ms with 200 active enemies — total 4.2 ms CPU, rewrite with Physics2D.OverlapCircleNonAlloc with result pool".

Timeline: audit and report — two to three business days. Implementation of fixes — separate estimate.