Mobile Learning Lab: Latency – The King of the Mobile Experience
Jonathan Ward | President and CEO | Twitter | LinkedIn
At last night’s Mobile Learning Lab Jeremy Wilson, CTO of Keek, gave a great presentation on the importance of latency in the mobile experience. Jeremy has 18 years experience in administrating and scaling web-based infrastructures to millions of daily users and he has 8 years experience in optimizing for mobile devices.
Some quick highlights:
What is Latency?
A Measure of time delay experienced in a system or network due to various limitations in those systems or networks
A User’s mobile experience has several stages that factor into the time it takes from their initial request for information to them actually receiving that information. These stages and some relevant factors of each stage are detailed below:
- Person to Device (User Input, Screen Refresh, Transitions, Gestures)
- Device to Network (Signal Strength, Connection type [3G, LTE], Device Resources, Distance, Buffering)
- Network to Internet (Bandwidth, Traffic Shaping, Routing, Buffering)
- Internet to Server (Service Type, Caching, Physical Resources[Disk/CPU], Databases, Clustering, Networking)
So once a request is made it goes through the above stages in their listed order and then you have the response time to factor in.
Some really interesting stats Jeremy provided include:
-
1 second – is the Maximum total response time considered acceptable by service providers such as Google
-
100 milliseconds – is the Minimum duration for perception of an event to have occurred. If things happen faster than this people perceive them to have happened instantaneously
-
10 seconds – is the maximum attention span people have without receiving feedback. People will often leave your app and never come back to it or use it again if they wait longer than 10 seconds without any feedback or updates when using your app
-
20% of people will leave your site/page if it takes more than 500ms (1/2 a second) to load.
-
1% of your sales are lost for every 100ms of delay in loading your page
The following topics are important to keep in mind and factor into your plans when developing Mobile Applications
People are impatient and easily distracted so make sure to:
-
Make your UI responsive
-
Minimize delays in switching screens
-
Do work in the background (a great example here was Instagram asking you to name a photo you’ve decided to upload and while you are naming it they are loading it in the background so by the time you’re done naming it there could be zero or minimal perceived loading time to the user which results in a much better experience)
-
Provide feedback (like spinners) during long operations
-
Avoid long operations altogether
Devices are slow, have unpredictable resources and rely on remote systems you may not control.
So keep the following in mind:
-
Use local assets
-
Cache everything
-
Offload slow jobs to APIs
-
Test on multiple devices
-
Develop for the lowest powered device you plan to support
Networks have highly variable performance and significant connection overhead.
Some pointers around this:
-
Keep packets small
-
Avoid transferring large data – send multiple chunks of small data instead
-
Try to maintain persistent connections – avoid making new connections
-
Test on as many networks as possible
Internet – Security means latency. Security is important, but use it intelligently:
-
Consider SSL when designing your app and build the delays it imposes in from the beginning
-
Restrict SSL connections to sensitive communication only, such as a login or user updates
-
Use more efficient ciphers
Servers – Maximum speed means maintaining control and doing it yourself
-
SaaS/PaaS systems are optimized for general performance, not specific to your app
-
Managed servers are maintained by general staff and usually have 24 hour response times
-
Self-managed Cloud servers are hosted on shared systems and do not offer consistent performance
-
The Cloud is slow compared to physical hardware
-
Internal networking between servers takes time and is highly variable in the Cloud
-
Servers perform best on real hardware, but there is a balance between cost and maintainability
-
Physical servers require administration and maintenance and the skilled personnel to perform it
-
Cloud is cheaper to start but more expensive as you grow – consider hybrid or migrating after gaining market traction
Thanks to everyone who came out last night, it was great to see a lot of new faces. You can follow the Mobile Learning Lab on social media here: