8783
火狐狸
火狐狸
  • UID34717
  • 注册日期2010-11-29
  • 最后登录2013-04-16
  • 发帖数210
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:3891回复:16

Firefox源码过于庞大 不瘦身将无法编译PGO版

楼主#
更多 发布于:2011-12-14 17:38
Mozilla Firefox团队最近发现了一个非常棘手的问题,那就是Firefox由于代码过于臃肿无法可靠地被编译,因为linker的运行超出了虚拟地址空间。
问题的根源是Firefox是一款只能工作在32位系统下的程序,而无法访问3GB以上的物理内存。

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

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

Graphite, SPDY, libreg是甚麼功能??
libxul又是哪部份- -?

白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
1楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
还有这种问题〇_〇
管他是哪部分,先把mozilla团队逼到x64上才是王道
-いたんですか? -ええ、ずっと
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-04-19
  • 发帖数18482
  • 经验4836枚
  • 威望5点
  • 贡献值4316点
  • 好评度1115点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
2楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
SPDY 是相对于 http 另外开发的传输协议。论坛有讨论,请自行搜索。
Firefox 实现的东西是几大浏览器中最多的。solidot 有一篇文章是说为何FF的js速度无法超越其他浏览器,虽然写的比较早,里面一些内容过期了,但或许值得一看:
http://software.solidot.org/article.pl? ... 0&from=rss

"Firefox在速度上暂时落后于chrome safari和opera。原因并不是Mozilla技术差,而是因为其他浏览器支持的javascript,只是Firefox的一个子集,有很多东西,被其他浏览器忽略了。 1) 只有Firefox支持E4X:
E4X是一个javascript的附加标准,用于在javascript里简便快速的操作XML。有多方便?试过才知道!
2) 只有Firefox在逐步实现ECMAScript5:
ECMAScript5是下一代javascript标准,目前的Firefox已经包含了很多ECMAScript5的特性,而其他浏览器似乎并没有公布相关的计划。ECMAScript5是一个已经发布了的标准,和遥遥无期的HTML5比起来,实现ECMAScript5要务实得多。
3) Firefox在javascript和html的交互上更加优化:
HTML中部分属性,只有Firefox才能通过js去调用,其他浏览器只能写成静态html标签


这里面至少还可以说明FF在遵循标准化方面走的比较深,实现的东西也太多。所以显得臃肿,不如webkit那样轻便。

网上一篇文章也说道除了改用64位环境编译32位FF,减少组件开发以外,还可以:1、将部分代码以外部动态链接库dll方式实现,但只能减少约300Kb体积的代码。2、用 visual studio 2010 编译,它支持32位环境超过3Gb的内存。但是这会让mozilla难看,居然还要用微软的编译器。
Firefox More than meets your experience
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
题目改一下吧,改为无法PGO编译

现在非PGO编译的obj总和还是小很多的,远远达不到限制

WebGL现在已经是独立组件了,可取的是把媒体在分离出来,或是把xul的功能一分为二
dindog
千年狐狸
千年狐狸
  • UID30818
  • 注册日期2009-10-24
  • 最后登录2023-02-03
  • 发帖数1195
  • 经验59枚
  • 威望0点
  • 贡献值26点
  • 好评度10点
4楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
fang5566:SPDY 是相对于 http 另外开发的传输协议。论坛有讨论,请自行搜索。
Firefox 实现的东西是几大浏览器中最多的。solidot 有一篇文章是说为何FF的js速度无法超越其他浏览器,虽然写的比较早,里面一些内容过期了,但或许值得一看:
http://software.solidot.org/article.pl? ... 0&from=rss



这里面至少还可以说明FF在遵循标准化方面走的比较深,实现的东西也太多。所以显得臃肿,不如webkit那样轻便。
回到原帖

这个的确很久了,现在ecmascript5的通过性测试Firefox没有优势之余,还是明显最慢的,比ie9还慢,比chrome同是开发版慢几倍。而HTML5早就不是遥遥无期了。

firefox臃肿,很多代码太古老是不争的事实
以前firefox跳个票的时间现在可以发布几个正式版了-_-
dindog
千年狐狸
千年狐狸
  • UID30818
  • 注册日期2009-10-24
  • 最后登录2023-02-03
  • 发帖数1195
  • 经验59枚
  • 威望0点
  • 贡献值26点
  • 好评度10点
5楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
论坛抽风,发重复了
以前firefox跳个票的时间现在可以发布几个正式版了-_-
t2323
小狐狸
小狐狸
  • UID33185
  • 注册日期2010-06-27
  • 最后登录2015-09-27
  • 发帖数53
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
不懂。

怎么听上去和Nokia的塞班系统一样,当时的分析就是塞班系统过于臃肿,已经没救了。难道Firefox会走上这条路?
大道有狐
狐狸大王
狐狸大王
  • UID37815
  • 注册日期2011-11-19
  • 最后登录2021-05-07
  • 发帖数455
  • 经验270枚
  • 威望0点
  • 贡献值156点
  • 好评度33点
  • 社区居民
  • 忠实会员
7楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
300多MB的源代码有多少是官版编译时需要的?全部么?
至察不明 Lollipop-->Marshmallow
skmi7
狐狸大王
狐狸大王
  • UID26753
  • 注册日期2008-10-22
  • 最后登录2022-04-19
  • 发帖数339
  • 经验56枚
  • 威望0点
  • 贡献值14点
  • 好评度5点
  • 社区居民
  • 忠实会员
8楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
的确该革新了..
支持火狐...
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
大道有狐:300多MB的源代码有多少是官版编译时需要的?全部么?回到原帖

没觉得大,跨平台项目只要到一定规模的都可以到这一规模

跨平台编译在其中一个平台编译时只需要其中的平台专有和标准代码,针对Windows,估计也就用到50%的代码

Qt源码压缩成zip都超过200M了,不过Qt的好处在于它的界面分模块比较细,有core,有gui,不像Firefox把所有的都整到xul里面

虽说dll越少能够加速启动,可是现在连WebGL模块都俩dll了,我觉得完全可以把第三方的整合在一起,起个类似叫3rd.dll的名称
因为Firefox里模块不是MPL授权就是BSD授权,所以改名字整合也是可以的。
zeroieme
千年狐狸
千年狐狸
  • UID12805
  • 注册日期2006-05-17
  • 最后登录2015-10-11
  • 发帖数1407
  • 经验34枚
  • 威望0点
  • 贡献值20点
  • 好评度0点
  • 社区居民
10楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
精简无谓功能正当时
nxzjh
小狐狸
小狐狸
  • UID34010
  • 注册日期2010-09-16
  • 最后登录2014-03-23
  • 发帖数40
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
11楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
不用担心的。
eagle5678
千年狐狸
千年狐狸
  • UID4956
  • 注册日期2005-04-10
  • 最后登录2023-04-02
  • 发帖数1247
  • 经验204枚
  • 威望0点
  • 贡献值120点
  • 好评度3点
12楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
编译要多少时间
itanky
火狐狸
火狐狸
  • UID24504
  • 注册日期2008-06-08
  • 最后登录2016-03-15
  • 发帖数203
  • 经验44枚
  • 威望0点
  • 贡献值24点
  • 好评度2点
  • 社区居民
  • 忠实会员
13楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
我转chrome了,因为几乎火狐所有好用的扩展chrome都有了,真心不想火狐变成这个样子。
asdf123456
千年狐狸
千年狐狸
  • UID32588
  • 注册日期2010-04-16
  • 最后登录2020-02-17
  • 发帖数1088
  • 经验299枚
  • 威望0点
  • 贡献值50点
  • 好评度10点
  • 社区居民
  • 忠实会员
14楼#
发布于:2011-12-14 17:38
Re: Firefox源码过于庞大 不瘦身将无法编译
270398096:我转chrome了,因为几乎火狐所有好用的扩展chrome都有了,真心不想火狐变成这个样子。回到原帖

chrome用起来没感觉,很多东西无法自定义。
上一页
游客

返回顶部