The Browser - Throttling
Throttling is useful for finding general performance issues.
Once you have seen what it takes to load the page on your development machine, you should check again with the worst equipment/connection your users are likely to use. So need to know something about your target users.
If you don't know who your target audience is then someone else in your company should, I would recommend talking to your marketing department for a start. If nobody knows your target audience, I would suggest figuring that out. Performance optimization is only one aspect where knowing your target audience is vital.
Finding your target audience is a vast subject, and there are whole books written on the subject. We won't go into that level of detail, but we will add some additional concepts that may not be part of the standard audience description.
Some simple questions you should think about to get started:
- What is it your application offers?
- Who could benefit from your application?
- Why would someone want to use your application?
- Are there certain individuals or companies who would benefit the most from your application?
- Are there current users of your application whom you know?
Typically you will want to create three or more fictional individuals. Give each of them a name, specific age, gender, set of interests, job, and anything else you can think of that make them feel like they could be a real person.
Once you have a few members of your target audience, you will need some additional information about them. The things you will want to identify are, what devices do they use to connect to the application, desktop, laptop, tablet, phone. Try to be as specific as possible. Do they use a budget phone? Do they use the latest flagship phone from one of the several mobile phone companies? Or are they somewhere in the middle?
Then determine how they connect to the internet. Is it over a lightning fast fiber connection from their office? Over a slower but still high-speed cable or DSL connection they can get in larger cities? Or is it a slower DSL connection from a smaller town or a somewhat rural location? Or do they live off the grid and use satellite for internet? Or if they are connecting through their phone how is their connection 4G, 3G, 2G, or spotty and extremely slow?
You also need to understand how they will react to different types of performance issues. Will slow loading time be a more significant issue? Or will slow navigation?
Once you know who your target is you are ready to try out your application as if you were one of them. There are two types of throttling we can do, and I would recommend doing both of them. There is bandwidth throttling and CPU throttling.
Typically the easiest to find is the bandwidth throttling. It is generally located on the network tab or in the mobile design mode. There will be several good options to get you started but if you want to replicate something like satellite you will need to create a custom profile to account for satellites greater latency.
CPU throttling isn't as generally available, but it is available in Chrome Dev Tools. It is located on the Performance tab when you change the capture settings. The options for CPU throttling are much more limited than for bandwidth throttling, but you can reduce your processor's performance to give you a better idea of how your application performs.
Once you set your throttling settings, you will rerun your tests on the problem areas and over the whole application to find areas where the performance will cause issues for your users.