Firefox Memory Leaks Somewhat Fixed With Patch

Developer & Design

Share this Post

If you're like me, you use a lot of add-ons with your Firefox build. They help make the Web a better, brighter place. Unfortunately, these add-ons occasionally cause memory leaks which can bog down Firefox and generally make the browser slower.

Fortunately for us, Nicholas Nethercote, a Firefox team member, turned us on to a patch from Kyle Huey that should fix the problem. It prevents what's called an "add-on zombie compartment" which saves a ton of memory in the long run. During Nethercorte's tests, he found that the patch not only fixed the problem, but sped up Firefox with a four times reduction in memory.

The patch should effectively make Firefox faster in slower machine and stop pauses in Firefox on higher end machines. The latter would definitely help me out as I've run into long pauses in the past that completely cripple all the momentum I've built up while working.

Unfortunately, it appears that the patch is not all inclusive. Add-ons built using older versions of the Firefox add-on SDK are immune to the effects of the patch. They still cause all kinds of nasty memory leaks. In fact, the patch made them leak even more making the problem much worse. Nethercote says the problem could be widespread because a lot of add-ons were built using the old SDK.

The only solution the team can think of is to encourage add-on creators to rebuild their apps using the new version of the add-on SDK which you can find here.

This couldn't be made at a better time with Mozilla recently detailing all of its release channels. It's these kind of problems that they need developer help with on the Nightly builds. Using the patch and the new version of the add-on SDK are a quick fix for now, but testing out new features in Nightly are the only sure fire way to permanently fix these kind of problems from happening again. If you have Nigthly, Nethercorte wants developers to monitor about:compartments to see if add-ons are causing more leaks.

[h/t: @mattcutts]