by Jaideep Singh (@jaideepsingh) on Friday, 9 August 2013

+49
Vote on this proposal
Status: Confirmed
Section
Full talk

Technical level
Advanced

Objective

This session attempts to enable the developers to understand the javascript garbage collector, analyze the memory usage of their applications, the various factors which affect the memory usage and performance, detecting memory leaks and dealing with them, and some best practices for writing memory efficient javascript.

Description

As the browsers continue to evolve and become more powerful, the application architectures tend to move more towards the client than the server, enabling the browser to do most of the heavy lifting, while providing a seamless experience to the users. However, as the applications grow, so does their memory footprint.

It becomes very essential to understand the internals of javascript garbage collector in order to write memory efficient code. Also, it is possible to look at the different parts of javascript memory usage like DOM nodes and events.

We'll be taking a look at some of the real applications and analyzing them for memory leaks. Also, we'll find out the real reasons behind the leaks, fix them and profile the application to compare the results.

Finally, we'll observe some of the common mistakes which lead to memory leaks in javascript and how to avoid those.

Requirements

A very good understanding of Javascript DOM objects and events is important. Some knowledge about the working of browsers will also be helpful.

Speaker bio

Jaideep is a front-end developer and a user experience engineer at ThoughtWorks. He likes to experiment with different JavaScript design patterns and cross browser implementations. Throughout his career, he's worked on many client side applications and frameworks like Backbone and AngularJS.

Jaideep has been speaking at different forums about the front-end practices and workflows and believes that jumping to any frameworks without an understanding of the core generally leads to code which is less optimum and harder to debug.