FOWA: Loading times. How can we speed things up?
Last month I attended the Future of Web Apps (FoWA) conference in London. So as a PHP developer here at PlusNet, how did this conference help me, and what are we doing at PlusNet take these lessons on board?
I'm going to focus on one of the presentation from the conference titled “High performance Websites” and was presented by Steve Saunders who is the chief of Performance at Yahoo.
Making your page fast for first time and regular visitors is key to a better user experience. If your first impression of the PlusNet service is a slow and clunky website, then you may feel – and rightly, that the rest of the service we offer would be slow and clunky. Also if you regularly use our website and the performance drops, you would wonder what other services are no longer what they should be. This isn't only true for our customers, but true for the employee’s here in PlusNet as well. There are many tools we use to automate our systems, to give you a quicker and more reliable server. If these tools are slow, then they loose there usefulness, and they start to hinder rather than help.
As with most business, we have a programme in place to help scale our business to improve our current service and plan for future requirements.
Part of that scaling involves scaling our web servers, to deal with more and more customers using our Portal, and improve the service that they are receiving.
So where would you start? Adding new web servers? Upgrading hardware with faster processors or more memory?
These are all valid options, and part of our web server scaling programme. But we're also looking at what we can improve at the front-end.
Yahoo's performance golden rule is: optimize front-end performance first, that's where 80% or more of the end-user response time is spent.
There are three main reasons why front-end performance is the place to start.
1.There is more potential for improvement by focusing on the front-end. Cutting it in half reduces response times by 40% or more, whereas cutting back-end performance in half results in less than a 10% reduction.
2.Front-end improvements typically require less time and resources than back-end projects (redesigning application architecture and code, finding and optimizing critical code paths, adding or modifying hardware, distributing databases, etc.).
3.Front-end performance tuning has been proven to work. Over fifty teams at Yahoo! have reduced their end-user response times by following our performance best practices, often by 25% or more.
Only 5% of the end-user response time is spent fetching the HTML document. This result holds true for almost all web sites. In sampling the top ten U.S. websites, all but one spend less than 20% of the total response time getting the HTML document. The other 80+% of the time is spent dealing with what's in the HTML document, namely, the front-end. That's why the key to faster web sites is to focus on improving front-end performance.
I could go through all of the best practices which Yahoo has devised for speeding up your web site, but they've made a good job of it themselves, you can see the 14 golden rules here:-
You can also view the “High performance Websites” presentation here:-
Yahoo have also created a Firefox add-on, that allows you to analyse any website, and grade them against each of the rules.
So how are we taking this rules into our development process here at PlusNet?
Every developer will read the Yahoo 14 rules and our new starter guide has been updated to include this, so even though we are all aware of these rules, it will reinforce their importance.
Now reading rules is fine, but we need to put these into practice, so, every developer will optimise at least one page over the next 3 months. Whilst it would be more efficient to allocate the work to a single team, one of this programme's goals is to up-skill all development staff.
This programme of work will contribute to faster page load times for both the customer facing aspects of our platform, together with the same sort of increased performance for all our internal tools and applications.
Learning occurs by doing, therefore as a result of what we’re doing all the development staff learn some extremely important new skills which will then be put to use by default every time they write a piece of code.
Senior Developer, PlusNet