Hacker News new | past | comments | ask | show | jobs | submit login

I don't quite understand how that can be possible.

At the end of the day, you're still aiming to load, in FF 66, just as many tabs as in FF pre-66. FF's total memory usage should be about the same whether you're using 4 processes or 8. Sure, if each FF process now takes care of fewer tabs, then when OOM does happen, the FF processes have a lower OOM score and are less likely to get killed. But something will get killed regardless, just maybe not FF. That's like trying to avoid punishment after a prison brawl by keeping your head low: someone will get punished regardless, just maybe not you.

You have to keep in mind that a large fraction of Firefox users are still using 32-bit builds on Windows.

For those users, the memory a process can use is capped at 2-4GB (depending on whether the OS itself is 32-bit or 64-bit and a few other things).

The most common OOM crashes on Windows are running out of virtual address space, not running out of actual physical RAM.

In that context, having more processes in fact gives you more address space and reduces the chance that you will run out.

On 32-bit Windows, processes have maximum address space limitations which can be easily hit by web browsers. Having more content processes makes it less likely that any particular one will hit that limit. Note that content process OOM crashes are the #1 source of crash reports Firefox gets (and you can see plenty of other OOM crashes in that list further down too):


Oh, so you mean that on 32-bit Windows, processes (can) have an address space that is smaller than the sum of physical RAM + page file? I didn't know that.

It makes sense then.

On any 32-bit OS, processes have at most 4GB of address space, because that's how much you can address with 32 bits.

In practice some of that is reserved for the kernel, so you get less for use by the process itself. Historically 2GB on Windows, though there were some non-default compilation/linking options you could set to get 3GB.

A 32-bit process running on a 64-bit kernel can get 4GB of address space.

And yes, lots of computers have >4GB physical RAM, even if you don't count swap/page files.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact