Quickly Diagnosing Performance Issues In Your Apps

6 Tips for Testers

test.ai
Appdiff
5 min readNov 30, 2016

--

Source: Gizmodo, http://gizmodo.com/us-lte-speeds-rank-a-dire-55th-fastest-in-the-world-1757044062

Speed is king. Speed is a feature.

If your app has performance issues, users will always blame you. Slow network? Slow device? Your servers slowed down? API calls? Is the camera slow? Your users only care that your app feels slower than they expected. They also have very little patience when they open your app for a quick second while they are waiting in line, and they get to the register before they can finish posting their latest selfie.

App speed is measured in milliseconds, not seconds. The average person starts to notice things aren’t instantaneous after about 300ms. You need to be lightning fast or you will see reviews complaining about the performance of your app.

This article offers six quick ways to diagnose common performance issues. Many of the common performance issues in apps are either basic design issues, or the reliance on network services without caching.

App Store Reviews

How do you quick tell what users think about your app? Check the app store reviews!

Imagine if there was a mobile app that let you reliably make calls

If a quick scan of user reviews shows some of these words, you will quickly know that you have performance-related issues.

  • CPU
  • fast
  • FPS
  • quick
  • slow
  • sluggish
  • speed
  • wait

2400 Baud

Users in the real world will be on slow network connections at the cafe, inside buildings, and on the edge of town. Test your app on slow networks. Do you get impatient with your app’s load time? If you do, your users definitely will too.

Compare your app’s load times, video load times, or recent news sync times with similar apps. If these other apps are faster on the same network connect speed, tell the team and point out the faster apps so they understand that faster is possible. Filing bugs saying “too slow” is often a recipe for being ignored, unless you have a point of comparison.

Ricky Bobby knows America is all about speed.

If you’d rather sit at your desk, you can quickly emulate slow network connections on Android using the -netdelay and -netspeed flags on the emulator. On iOS, play with the “Network Link Conditioner” utility to simulate a variety of network speeds.

Impatience is a Virtue

Be impatient when testing your app for functional bugs. Again, if it seems slow to you, users will think it is far too slow. Refer to the Magic Numbers for app performance.

Magic Numbers for App Performance

Ideally responses take under 300 milliseconds. If any action in your app takes longer than that, users will notice. If actions are taking on the order of 1–2 seconds, you need to seriously revaluate how the app is designed and explore pre-rendering, pre-fetching, and other measures, which we’ll discuss in a future post.

How do you measure this response time? You can ask one of your developers to instrument the app with “timestamp breadcrumbs” before each click, and after the action is complete. Various mobile SDKs, such as Apteligent, will log these timing measurements for you. If you can measure performance with an old school stopwatch, then you already know your app is too slow. Be impatient before your users feel the same way.

Load Up that Server

App stores are great for distribution, but not that great about load on your servers. Launch day can be an exciting event, or really unfortunate if you haven’t tested your app’s performance with your servers under load.

If you have the time and technical chops, you can roll your own load tests using tools such as Apache JMeter. With your servers busy, try out your app’s performance under load. If you don’t plan for success, you probably wont find it.

Multitasking Millennials

Users ask a lot of their mobile phones. They are refreshing their feeds, snapping photos, downloading podcasts, watching videos, and checking notifications, all while apps in the background are updating their data and location. All this activity slows devices down.

Too often, testing is performed on a device with nothing else running. Measure the app’s performance with a busy device. Run your app on a lower end or older device. If you think about it, it is only logical that most devices in use are old, but testers usually focus on the latest and greatest devices. No one cares that your app is fast on the latest Pixel or iPhone. Make sure performance is adequate on older machines, or do the right thing and block install on these devices.

The Whole 9 Yards

Performance is also about how long it takes a user to complete their task. Tasks can consist of multiple steps through a flow. Include the time it takes the user to find the next button. If the UI is confusing, or there are really fast-scrolling but long lists in the app, the app’s overall experience can seem very slow. Think about the performance of your end–to-end service. App quality doesn’t stop with your app or server code.

Which one is your app?

Stay up to date with the latest stories about mobile performance and testing by subscribing to the Appdiff newsletter today.

--

--