# mobile performance

Published articles for mobile performance.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## The Most Expensive Milliseconds Are Unmeasured

DevFeed: [The Most Expensive Milliseconds Are Unmeasured](<https://devfeed.tech/articles/the-most-expensive-milliseconds-are-unmeasured-19739.md>)

Original publisher: [Read original article](<https://medium.com/expedia-group-tech/the-most-expensive-milliseconds-are-unmeasured-d6cfaaca881d?source=rss----38998a53046f---4>)

Author: Divya Gupta Arora

Published: 2026-06-03T17:11:58Z

Content type: article

Language: en

Sources: [Expedia](<https://devfeed.tech/sources/expedia.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [render](<https://devfeed.tech/topics/render.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [case-study](<https://devfeed.tech/tags/case-study.md>), [devops](<https://devfeed.tech/tags/devops.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [login](<https://devfeed.tech/tags/login.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-apps](<https://devfeed.tech/tags/mobile-apps.md>), [mobile-performance](<https://devfeed.tech/tags/mobile-performance.md>), [observability](<https://devfeed.tech/tags/observability.md>), [performance](<https://devfeed.tech/tags/performance.md>), [release](<https://devfeed.tech/tags/release.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [technology-investments](<https://devfeed.tech/tags/technology-investments.md>), [time-to-interactive](<https://devfeed.tech/tags/time-to-interactive.md>), [ui](<https://devfeed.tech/tags/ui.md>), [visibility](<https://devfeed.tech/tags/visibility.md>)

### AI overview

This Expedia Group engineering case study describes extending Native Time to Interactive across mobile login screens. The metric was used to evaluate technology investments, compare platform behavior, and detect performance regressions that existing system-health signals did not reveal.

### Source excerpt

Expedia Group Technology -- EngineeringHow a screen-level performance metric reshaped platform decisions, engineering ownership, and release disciplinePhoto by Pietro De Grandi on Unsplash For the last few years, my responsibility has been straightforward to state but hard to execute -- owning the traveler login experience across mobile platforms. Not just whether a feature works, but whether it feels responsive, predictable, and trustworthy in the moments that matter most. During login, those moments are unforgiving: if a login screen hesitates travelers don't interpret it as 'a slow render', they interpret it as risk. And when the majority of travelers interact through our mobile apps, performance stops being a technical concern and becomes a product promise. This post is a case study of how, within Expedia Group™'s login domain, we extended Native Time to Interactive (NTTI) across login screens -- moving performance from a late-stage check to a first-class signal we can use to validate technology investments, compare platform behavior, and prevent silent regressions as we ship. The Problem: Mobile reliability rarely fails loudly Mobile performance rarely breaks with a crash. It usually degrades quietly, a button takes a beat longer to respond a screen looks ready, but taps don't register the UI stutters just enough to feel "off" Those are the expensive milliseconds -- because they erode trust without triggering obvious alarms. In our login flows, we were shipping consistently, evolving a major part of our stack, and supporting increasing product complexity. Yet we didn't have a consistent way to answer the user's real question -- "When can I actually use this screen?" Why our existing signals failed We were not blind. We tracked many useful things, crashes and ANRs backend latency and service SLIs some component-level timing signals limited Time to Interactive tracking on onboarding and initial login But we had a gap -- we had visibility into system health, not screen

## Stressing the JVM GC on Android

DevFeed: [Stressing the JVM GC on Android](<https://devfeed.tech/articles/stressing-the-jvm-gc-on-android-28537.md>)

Original publisher: [Read original article](<https://www.amanjeet.me/stressing-the-jvm-gc-on-android/>)

Author: Amanjeet Singh Gurtatta

Published: 2024-03-10T08:49:55Z

Content type: tutorial

Language: en

Sources: [Amanjeet Singh](<https://devfeed.tech/sources/amanjeet-singh.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Java](<https://devfeed.tech/topics/java.md>), [Code](<https://devfeed.tech/topics/code.md>), [now-in-android](<https://devfeed.tech/topics/now-in-android.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [android-vitals](<https://devfeed.tech/tags/android-vitals.md>), [anr](<https://devfeed.tech/tags/anr.md>), [fragmentation](<https://devfeed.tech/tags/fragmentation.md>), [gc](<https://devfeed.tech/tags/gc.md>), [java](<https://devfeed.tech/tags/java.md>), [leak](<https://devfeed.tech/tags/leak.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-performance](<https://devfeed.tech/tags/mobile-performance.md>), [now-in-android](<https://devfeed.tech/tags/now-in-android.md>), [outofmemory](<https://devfeed.tech/tags/outofmemory.md>), [performance](<https://devfeed.tech/tags/performance.md>), [stress](<https://devfeed.tech/tags/stress.md>), [stresstest](<https://devfeed.tech/tags/stresstest.md>)

### AI overview

This tutorial describes GCStress, a Java application that deliberately creates garbage-collection pressure through repeated random byte-array allocations and cache removals. It explains how to integrate it into Google's Now in Android app, trigger it with an Android broadcast and adb, and observe effects such as skipped UI frames, possible ANRs, and potential out-of-memory errors.

### Source excerpt

This post talks about a way to stress Java garbage collector.

## Evolution of Developer Productivity at Square - Part Four

DevFeed: [Evolution of Developer Productivity at Square - Part Four](<https://devfeed.tech/articles/evolution-of-developer-productivity-at-square-part-four-15638.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/evolution-of-developer-productivity-at-square-part-four>)

Author: Korhan Bircan

Published: 2024-02-26T17:00:00Z

Content type: article

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [code productivity](<https://devfeed.tech/topics/code-productivity.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Test automation](<https://devfeed.tech/topics/test-automation.md>), [release engineering](<https://devfeed.tech/topics/release-engineering.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [crash-reporting](<https://devfeed.tech/tags/crash-reporting.md>), [developer](<https://devfeed.tech/tags/developer.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [flaky-tests](<https://devfeed.tech/tags/flaky-tests.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-performance](<https://devfeed.tech/tags/mobile-performance.md>), [operational](<https://devfeed.tech/tags/operational.md>), [release-engineering](<https://devfeed.tech/tags/release-engineering.md>)

### AI overview

The fourth and final part of Square's developer productivity series describes its shift toward reliability and test engineering as its codebase and customer base grew. It covers reliability reviews, service-level objectives, performance-focused task forces, mobile release engineering, automated crash reporting, and efforts to improve testing infrastructure and flaky tests.

### Source excerpt

Investing in reliability and test engineering

## Discovering iOS memory leaks: A case study with Firefox app II

DevFeed: [Discovering iOS memory leaks: A case study with Firefox app II](<https://devfeed.tech/articles/discovering-ios-memory-leaks-a-case-study-with-firefox-app-ii-28529.md>)

Original publisher: [Read original article](<https://www.amanjeet.me/discovering-ios-memory-leaks-case-study-part-two/>)

Author: Amanjeet Singh Gurtatta

Published: 2024-02-24T11:22:22Z

Content type: article

Language: en

Sources: [Amanjeet Singh](<https://devfeed.tech/sources/amanjeet-singh.md>)

Topics: [Firefox](<https://devfeed.tech/topics/firefox.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>)

Tags: [firefox](<https://devfeed.tech/tags/firefox.md>), [github](<https://devfeed.tech/tags/github.md>), [ios](<https://devfeed.tech/tags/ios.md>), [leak](<https://devfeed.tech/tags/leak.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>), [memory-leaks](<https://devfeed.tech/tags/memory-leaks.md>), [mobile-performance](<https://devfeed.tech/tags/mobile-performance.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

A case study of contributing a memory-leak fix to Firefox for iOS. The article describes the pull-request process, an initially unmerged approach, the eventual fix involving a UI kit retain cycle, and lessons about coordinating with open-source maintainers.

### Source excerpt

Discover my experience in contributing to Firefox ios fixing their memory leaks

## Diagnosing Android ANRs with Runtime Traces and APM Data

DevFeed: [Diagnosing Android ANRs with Runtime Traces and APM Data](<https://devfeed.tech/articles/demystifying-the-anrs-puzzle-28528.md>)

Original publisher: [Read original article](<https://www.amanjeet.me/demystifying-the-anrs-puzzle/>)

Author: Amanjeet Singh Gurtatta

Published: 2022-01-21T17:52:38Z

Content type: tutorial

Language: en

Sources: [Amanjeet Singh](<https://devfeed.tech/sources/amanjeet-singh.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Application Performance Management (APM)](<https://devfeed.tech/topics/apm.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Traces](<https://devfeed.tech/topics/traces.md>), [Crashlytics](<https://devfeed.tech/topics/crashlytics.md>), [Google Play](<https://devfeed.tech/topics/google-play.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-vitals](<https://devfeed.tech/tags/android-vitals.md>), [anr](<https://devfeed.tech/tags/anr.md>), [apm](<https://devfeed.tech/tags/apm.md>), [crashlytics](<https://devfeed.tech/tags/crashlytics.md>), [debug](<https://devfeed.tech/tags/debug.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [google-play](<https://devfeed.tech/tags/google-play.md>), [mobile-performance](<https://devfeed.tech/tags/mobile-performance.md>), [trace](<https://devfeed.tech/tags/trace.md>)

### AI overview

This article explains why Android Application Not Responding events are difficult to reproduce and diagnose. It describes how the Android runtime responds with SIGQUIT and ANR traces, then introduces approaches APM libraries can use to collect ANR data, including watchdog monitoring.

### Source excerpt

Solving the ANRs Riddle on Android

## Stressing memory on Android

DevFeed: [Stressing memory on Android](<https://devfeed.tech/articles/stressing-memory-on-android-28536.md>)

Original publisher: [Read original article](<https://www.amanjeet.me/stressing-memory-on-android/>)

Author: Amanjeet Singh Gurtatta

Published: 2021-10-15T19:58:26Z

Content type: tutorial

Language: en

Sources: [Amanjeet Singh](<https://devfeed.tech/sources/amanjeet-singh.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [observability](<https://devfeed.tech/topics/observability.md>), [x86](<https://devfeed.tech/topics/x86.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [crashes](<https://devfeed.tech/tags/crashes.md>), [devices](<https://devfeed.tech/tags/devices.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [memory](<https://devfeed.tech/tags/memory.md>), [mobile-performance](<https://devfeed.tech/tags/mobile-performance.md>), [native](<https://devfeed.tech/tags/native.md>), [performance](<https://devfeed.tech/tags/performance.md>), [processes](<https://devfeed.tech/tags/processes.md>), [stress](<https://devfeed.tech/tags/stress.md>), [stresstest](<https://devfeed.tech/tags/stresstest.md>), [test](<https://devfeed.tech/tags/test.md>), [tool](<https://devfeed.tech/tags/tool.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

This article explains how Android memory pressure can affect application processes, including native-memory risks and process killing by LMKD. It introduces stressapptest as a tool for reproducing memory pressure on test devices and validating instrumentation and crash-related behavior.

### Source excerpt

This post talks about stressing memory on any android device and what happens when device is under memory pressure.

## Tracking Wall Clock, On-CPU, and Off-CPU Time for Android Performance

DevFeed: [Tracking Wall Clock, On-CPU, and Off-CPU Time for Android Performance](<https://devfeed.tech/articles/the-three-musketeers-of-time-28540.md>)

Original publisher: [Read original article](<https://www.amanjeet.me/three-musketeers-of-time/>)

Author: Amanjeet Singh Gurtatta

Published: 2021-07-18T21:35:43Z

Content type: tutorial

Language: en

Sources: [Amanjeet Singh](<https://devfeed.tech/sources/amanjeet-singh.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Process](<https://devfeed.tech/topics/process.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [cpu-time](<https://devfeed.tech/tags/cpu-time.md>), [mobile-performance](<https://devfeed.tech/tags/mobile-performance.md>), [off-cpu-time](<https://devfeed.tech/tags/off-cpu-time.md>), [performance](<https://devfeed.tech/tags/performance.md>), [regression](<https://devfeed.tech/tags/regression.md>), [wall-clock-time](<https://devfeed.tech/tags/wall-clock-time.md>)

### AI overview

This Android performance tutorial explains wall-clock, on-CPU, and off-CPU time, including how to measure them at the process or thread level and how to choose an appropriate monotonic clock API.

### Source excerpt

The post talks about the different types of time to look for: wall clock time, on CPU time and off CPU time