Google the king of search has made the speed of websites and page loading a key actor in ranking. This coupled with the need to use 3rd party frameworks for front end development, like JQuery, MooTools, Scriptalicious, Yahoo YUI, to support the multitiude of browsers has a larger burden web developers.
In true fashion however, the release of the Page Speed addons for both Firefox and Apache, http://code.google.com/speed/page-speed/download.html, somewhat simplify this process.
We have developed a custom web application for a client, and it seemed that the pages were loading very slowly and performance was not acceptable. The approach that we are using to improve performance is three fold:
1. User Interface focused on browser improvements
– GZip all resources – using an Apache .htacess file
– Force caching of resources – expire all resources in the future, and require public cache (images, css) and private browser caching (javascript files)
– Minify CSS and Javascript files, and also combine each type into a single file to reduce the HTTP requests to load the page using Minify (http://code.google.com/p/minify/)
– Minify HTML contents when the page is loaded
2. Business Logic Enhancements
– Add an SQL lite cache to Doctrine resultsets and queries
– Reduce the number of components which are regenerated at the server back-end
3. Database Enhancements
– Use the smallest possible column types for each table – this is diffcult in some cases since the requirements are being identified as the application is being used
– Query performance – the tables have to be kept in 3rd normal form, therefore reporting performance will be affected. As the reports grow more complex, we will keep reviewing this
This is a continuous process so we keep measuring at each point, however each step leads us further into the depths of tuning and performance
The need for speed is now, the question is how far are u willing to go?