Firefox

Mozilla Firefox 团队最近发现了一个非常棘手的问题,那就是 Firefox 由于代码过于臃肿无法可靠地被编译,因为 linker 的运行超出了虚拟地址空间。

问题的根源是 Firefox 是一款只能工作在 32 位系统下的程序,而无法访问 3GB 以上的物理内存。

这已经不是 Mozilla 第一次遇到这种问题,数年前 2GB 的虚拟地址空间限制就让他们犯难,而这次就不能用物理地址扩展的方法来实现,因此解决方案只有两个,要么优化代码甚至减少组件(目前正在这么做,Graphite, SPDY, libreg 等新功能正在被暂时移除),要么转换到 64 位架构和机器进行编译,这样就可以访问 4GB 以上的地址空间。

同时 Mozilla 也正在考虑分拆 libxul 部分,对其中的核心代码进行分组,例如 Direct3D 之上的 WebGL、媒体库等组件可以分开编译。