Mobile Computing · Cluster
Mobile Performance
Startup, memory pressure, and frame budget.
- 01 Cold Start Phases and Where Launch Time Is Spent The stages an app passes through between a tap and its first frame, which stages scale with code size, and why the reported launch time depends on where the clock starts.
- 02 Frame Budget Arithmetic and the Real Deadline for Main Thread Work Why the per-frame budget is smaller than the refresh period, how the pipeline splits it between CPU and GPU, and which stages can run in parallel with which.
- 03 The Main Thread Message Queue and Why a Single Long Task Delays Frames How a looper serializes work onto one thread, how synchronization barriers let frame callbacks overtake queued messages, and what makes a task on the queue expensive beyond its own duration.
- 04 Memory Pressure, Kill Decisions, and What an App Can Observe Before It Dies How the platform ranks processes for termination under memory pressure, why a backgrounded app is not safe, and which signals give an app warning before the kill.
- 05 Allocation Rate, Heap Growth, and Garbage Collection Pauses on a Frame Budget Why per-frame allocation, not heap size, determines pause frequency, how a generational collector turns short-lived objects into a recurring cost, and what makes a collection visible in a frame.
- 06 Bitmap Memory and the Cost of Decoding at Full Resolution The byte arithmetic behind image memory, why a decode allocates more than the file size, and how sample size and format conversion change both the footprint and the time.
- 07 Class Loading and Verification Cost on the Startup Path How the runtime turns a class reference into executable code at first use, why verification walks bytecode the program may never run, and how ahead-of-time compilation changes the split.
- 08 Attributing Jank to a Specific Pipeline Stage A method for turning a frame timeline into one responsible stage, why the naive comparison of durations misleads, and how to distinguish queue latency from work latency.
- 09 Buffer Queue Depth and the Latency It Adds Between Touch and Photon How many buffers a surface holds decides whether the pipeline can overlap frames or must serialize, and why every extra buffer buys throughput with input latency.
- 10 Thermal Throttling and Why Sustained Frame Rate Diverges from Peak Frame Rate How the system converts power into heat, why a workload that is comfortable for seconds becomes janky for minutes, and how frame pacing decisions change the shape of the decline.