Client side performance

Performance issues

In the last years client side performance has become an issue. Many sites use Ajax and complex JavaScript for creating RIA applications resembling desktop apps. In many cases there are severe performance problems.
Browsers keep improving JavaScript's speed. Most of them use hotspot compilation for repeating code. Other optimizations are used, for instance Chrome's JavaScript engine uses hidden classes to decrease the penalty caused by JavaScript's dynamic qualities.
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:

Performance tools

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: