Magic Numbers for App Performance

test.ai
Appdiff
Published in
6 min readNov 28, 2016

How fast is fast enough? How slow is too slow? App performance is the top priority for most app product managers, but most don’t know why performance is so important, let alone how to interpret those numbers. Here is an introduction to the what, why and how of app performance numbers.

Performance means many different things to different people. We are talking about speed. How long does it take to from the time you launch an app, until it is completely loaded and ready to do your bidding? How long does it take to show that menu when you tap? How long does it take to load that post in your feed? That is what matters. Users don’t forgive your app if it has a slow server, or has lots of graphics that take time to load. Users don’t care if your app has to check the network for the latest news before you can show it to them. Users expect apps to be fast, and all they care about is what they see.

If the user doesn’t notice, it doesn’t matter

Apps are designed for people. Every moment the user is waiting for an app to respond, is a moment they consider quitting the app, or just moving on to something else. The good news for app teams is that people are organic — they can’t detect delay if that delay is small enough. It takes some time for light to hit the eye, pass through the visual cortex of the brain, and be there long enough for the image to be passed up to conscious processing. Your app can look ‘instantaneous’ even when it is not. Very few people can detect delays less than 100 milliseconds. That is 1/10th of a second. You have full 1/10th of a second when your app to do anything it likes without anyone noticing. Granted, thats not much time, but that phone is a supercomputer and apps can often load images and most data that is already downloaded or cached in the app just in time for the user to think it was instantaneous. Many of the best apps are able to complete over 90% of the actions in their app in less than 30ms. Here is the timing profile of a well written, fast as lighting app that even has to talk to the network on each launch. There are no excuses — it is possible to be this fast…

App timing measurements for a popular hotel-related app.

Very few people can detect delays less than 100ms.

When do most people notice ‘lag’? 300 milliseconds. About 80% of people will notice something as delayed if it takes more than about 1/3 of a second. There are few interesting things about this 300ms point. If you have something in your app that takes 200ms or less, you probably won’t gain much from improving your apps performance in that area. If you have areas of your app that take longer than this to load, your users are noticing. There is no official data, but the longer your app takes to load the more likely users are to abandon your app, get frustrated and post a negative review, or even switch to a competitive app.

A study by Twinprime shows over half of users abandoned a mobile transaction last year. 37% of those abandoned transactions were due to app performance. A little math shows that an estimated $9B dollars in potential transactions were abandoned due to app performance in a single year. Glancing at the timing measurements for this popular coffee app — how much money might performance have cost them last year?

App timing measurements for a coffee-related app.

Most people notice delays greater than 300ms

Performance impacts your bottom line. Statistics on mobile apps are sparse but we can learn from web page performance surveys to get an idea. If we had great mobile statistics, we’d like see that app user’s patience is even less than that for desktop web pages (Data from Kissmetrics)

  • 40% of people abandon a website that takes more than 3 seconds to load.
  • A 1 second delay in page response can result in a 7% reduction in conversions.

Where does lag come from? There are many sources of performance issues, from slow content servers, to mobile networks, but more often than you would think — the app itself. If an action in your app requires a network call, it is best if you can preload the data in the background before the user asks for it, so they don’t feel the pain of the network. Here are some real-world, and typical numbers for a popular app that represent how much lag is attributed to each portion of a network-dependent action.

Typical sources of delay if the network is involved. (credit: foursquare engineering blog)

A typical network call will cost at least 1000 milliseconds, and users notice.

The lesson of this timing chart is to never make network calls in realtime. Most apps make unnecessary realtime calls to the network and don’t do enough pre-caching of content. If your app has to make a network call on demand, make sure your servers are fast, you make only one call, the content is cached, and you spend as little time as possible updating your UI with the data from the server.Abandonment. That’s such a sad word, but app users will abandon your app if your launch time is slow too. We have been talking about the performance of actions inside the app, but what about launch time? Users are a bit more patient and understanding about an apps launch time, but they will abandon your app if it is slow. About 60% of users expect an app to launch in less than 2 seconds. If your app is taking longer to load, even if it has a beautiful spinner or splash screen to trying to hide the delay, users will give up on your app.

60% of users expect an app to launch in less than 2 seconds

So, what are the magic numbers for app performance? 100ms, 300ms, and 1second and 2 seconds:

Keep these in mind when developing your app, deploying your server, and designing your app’s user interface.

— Jason Arbon, CEO Appdiff.com

To get a free, automatic and detailed performance report for your mobile app, see us at Appdiff.com. Appdiff lets you see where your app’s user experience needs urgent attention, and makes sure your app will never get slower. Appdiff makes it easy to track your app’s performance on every new version with no code and no setup, just great data and insights. Help us make the app world a little bit faster say hello: hi@appdiff.com

Example Appdiff Performance Report

References:

Costs: Kissmetrics Data

Twinprime study on abandoned transactions

Foursquare Engineering blog post breaking down performance issues.

Launch timing, Compuware Study

--

--