Marco's Blog

All content personal opinions or work.
en eo

Switching Back From Chrome to Firefox

2013-02-12 4 min read Software marco

It was a while back that I started using Chrome. Firefox had the major problem that it all ran in one process, which means that if one tab froze, the entire browser did. To compound the problem, there was no easy way to start Firefox standalone – whenever I started a new browser instance, it would just detect that Firefox was already running, and piggy-back on the running product.

Chrome worked well for me – still does. I started out running only the more troublesome web sites in it, but relied on it more and more, especially after it became clear that running both browsers required so much memory, my system would slow down as a whole.

Lately, though, I started noticing a troubling trend again: Chrome was slowing down. Dramatically. Worse: my system would slow down. Dramatically. If I ran my usual amount of research tabs (for the new novel), added a bit of fun tabs (cat videos and autocorrects), and the usual staples (email, Surfline, etc.) I wouldn’t be able to do much more. No loading Eclipse or KDevelop, for instance. I needed a whole computer just for browsing.

Looking at the reasons, I started up top. It was apparent that much of the time some background process in the browser was freezing up the system. That was easily fixed. But most of the time, there was no load on the system, just incredible amounts of memory usage.

I sorted top by memory size. And there I stared at a dozen google-chrome processes, each of them requiring a full gigabyte of memory, of whom 100-200MiB were resident (which means, the system wouldn’t be able to push them out to swap). [Side note: one of the less known features of top is that you can sort by more than just CPU load. To access the sorting menu, type the letter “O” (capital-orange) and then select from the menu.]

I downloaded Firefox, whose newer releases had gained in speed (especially on the Javascript front). I also immediately installed my favorite set of extensions: LastPass, GreaseMonkey, AdBlock Plus, and NoScript.

I started loading tabs, and miracle of miracles, things sped up considerably. After shutting down the Chrome monster processes (by closing the browser), the memory situation on my computer improved immediately and dramatically, which meant the computer itself became faster). That was great news, and I am back to Firefox on the main computer (still using Chrome on the laptop).

But why is Firefox so much faster now than Chrome?

I remember telling a friend about AdBlock Plus. He installed it and suddenly browsing became much faster for him, since his browser stopped loading ads. The problem is not ads themselves, but that the browser waits until it collects all information before allowing interaction (and sometimes display) of a page.

I realized that the same effect was probably true for third party scripts on a page. Having a page load its own JavaScript was doable. But when it started loading scripts from a half dozen other sites, that was bound to slow down everything. Additionally, the process would cause page bloat in the same way that ads would. And to make things worse, poor programming in JavaScript can easily cause memory leaks, with pages that will grow more and more.

Indeed, when I saw the list of scripts blocked by NoScript, I was shocked to see what kinds of things were loaded by a harmless page. Worst offenders are the ad-driven sites, like Gawker Media, who load so many external scripts, the list wouldn’t even fit in a screen window. On the other end, though, social media sites manage to have auto-load features that have built-in bloat.

I guess it would be fantastic if browser makers would give us tools to detect the allocated memory per extension and JavaScript media. For now, they are not interested. And I am sticking again with the only browser that allows me to work fast.

Because, let’s face it, I wouldn’t even know why a browser tab would require a gigabyte of memory all to itself. There is something seriously wrong with software that is so atrociously bloated, it required this much memory for that little functionality.