 Hello everyone, I am Siddharth and I'll be speaking about memory leaks in JavaScript. I'll be starting with giving a reason to listen to me talk and after that we'll move on to... If you don't want this to happen to you ever, that's probably a good reason for you to stay for the talk. Alright. So, what are memory leaks? The programming, the memory life cycle for pretty much most programming languages is quite similar. You allocate some memory, get some job done, compute, calculate and when you're done you release that memory so you can do something else. You typically have a leak when you're unable to release that memory and so it kind of clogs, accumulates and you eventually have a hang and a crash. So a lot of you probably think that I just do some domination, I have some event listeners and JavaScript ends there for me. So I don't think I have leaks. That's not necessarily true because leaks lie in probably the simplest of data structures and simple coding as I've been showing you. So no, you don't have to be doing groundbreaking complex stuff to have a leak. How this actually works is let's remind probably 10 years ago when the amount of time a user spent on a page wasn't that high. The reason this is significant is because the moment you switch a page as a reload or a refresh, any leak you might have had is released. Of course, over time AJAX use became mainstream and we have single page applications and suddenly a user is on a page for a very, very long time. So in case you do have leaks, they do have a chance to get significant, accumulate and you can actually start feeling the effect on the page. Of course, for the past five years mobile environments have boomed and mobile environments as it is a resource crunch and so the impact of a leak there is even more severe. Often I get asked, you know, when do I need this? I really have tons of other stuff to do. I have to look at it now, what can buy me time? So here's the thing about leaks. The behavior of a system that is low on memory cannot be predicted. So sometimes your file descriptors will flick out, sometimes your DB connections will break. Maybe if your graphic intensive rendering will not be proper or there will be lag and scrolling, you don't know how it comes out. And the end result of this is you end up killing the user experience. And as front-end developers that's something we do not do, experience is something you do not want to kill. And think of it also this way, the very time your leaks are going to make an effect at the very time you do not want them to happen. The moment you're getting popular, the moment more people are coming to your service, to your web page, the longer they stay, that's exactly when they're going to start feeling it. And what's going to happen is...