The Mozilla developers had this problem two years ago, and now they're struggling with it again: the open source Firefox browser has become so big that it can't be built on 32-bit Windows.

The 32-bit version is used by 90 per cent of Firefox users and it is built using "Profile-Guided" Optimisation to make the code more efficient. Profile-Guided Optimisation (PGO) involves two compiler passes; the code that is generated during the first pass generates profile information about its run-time behaviour while it is being executed. This "profile" data is then used to generate an optimised browser in the second compiler pass. Mozilla has used the PGO method for almost four years; initially, it improved performance by 10 per cent.

However, 32-bit Windows builds now fail because the linker requires more than 3 GB of memory, which is not supported by the operating system. In early 2010, a similar problem occurred when PGO builds failed to complete because of a default 2 GB linker limit.

At the time, the issue could be bypassed using the /3GB linker switch. However, no such switch is available to resolve the current situation. The developers now have three options: to move code from within the actual browser into dynamic libraries, to create the 32-bit version on a 64-bit Windows system, or to switch to Microsoft's Visual Studio 2010.

First tests indicate that, for example, moving parts of the WebGL implementation to one side could save 300 KB. In a test run, the newer version of Visual Studio required less memory than the one that was previously used, and 64-bit Windows offers 4 GB of address space.

(djwm)