Client side performance
In the last years client side performance has become an issue.
In many cases there are severe performance problems.
Other operations are also optimized and get faster each version. For example, Firefox speculative parser enables concurrent download of resources without interfering with the document processing.
Even with enhanced speed, performance is still an issue. Steve Souders, a "performance guru" from Google, checked and found out that in average, client side processing takes more time than the server side.
Correct code makes good performance
It is important to understand that the way we write our code has a dramatic influence on performance.
There are many resources for performance tips. Here are some good ones:
There are some good tools for performance analysis and profiling. Unfortunately, they are currently specific to each browser.
There is a new Web Timing specification that is beginning to be implemented by Webkit and Firefox. This may allow for a unified performance tool for all browsers.
Static analysis tool:
Run time profilers - these tools measure the browser's internal operations like resource loading, parsing, layout and painting:
YSlow is a Firefox extension that checks the application and grades it according to its conformance with performance best practices. It does static analysis of the HTML code. The results are mostly applicable to all browsers, not just Firefox.
Since itís targeted towards Firefox, some fine grained performance problems in other browsers will be missed - for example Chrome and Safari react badly to inline style tags and perform style recalculation of the entire DOM tree, this is missed by YSlow.
- For Chrome - Speed Tracer. A Chrome extension that gives performance information in a graphical way. It also gives you "hints" - marks the location of a potential problem and gives a clear textual explanation.
Very useful for finding performance bottlenecks. A great tool but only for Chrome (although the results will probably be relevant for other browsers).