白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
阅读:9003回复:26

[民科]多图杀狐狸测试

楼主#
更多 发布于:2012-02-25 11:19
不知道什么时候听说fx也分段浏览了,高兴了一把,生成了一个测试页面,结果还是失望了……结果如下。

测试页面构成:
纯<img />,一共280p,每p为简单构图的png图片,大小24,304字节,压缩档总大小6.5M左右
未压缩档理论上为800*800*24/8=1920000字节,即1.83M,280p恰好512M左右。

物理内存占用对比:(由上至下 [当前profile]firefox 11b4  vs  [3个插件]chromium 16.0.894.0  vs  [空白profile]fx 11b4)

图片:memo.png



结果诠释:
打开浏览器(红色标记)测试开始后过程分为四个阶段,A打开测试页面直到载入完成(黄色区段的斜坡部分),B用中键引导方式快速浏览完整个页面(橙色区段),C鼠标按住滚动条快速在整个页面滚来滚去(红色区段),D切换到空白tab直到浏览器自动释放测试页面(黄色标记

Firefox:
从图中可以看出,A阶段花费了5秒钟左右,在此期间内存飙升,由之前的测试可知,如果此页面容量更大,很容易造成不稳定继而崩溃。
中间有个凹陷是因为切到about:memory看太久导致释放了= =b
空白profile表现好很多,大概只花费了2秒左右
完全载入后的memory:
793.69 MB (100.0%) -- explicit
├──690.60 MB (87.01%) -- images
│  ├──690.36 MB (86.98%) -- content
│  │  ├──690.36 MB (86.98%) -- used
│  │  │  ├──683.67 MB (86.14%) -- uncompressed-heap
│  │  │  ├────6.69 MB (00.84%) -- raw
│  │  │  └────0.00 MB (00.00%) -- (1 omitted)
│  │  └────0.00 MB (00.00%) -- (1 omitted)
│  └────0.24 MB (00.03%) -- (1 omitted)

B阶段可以看出,在全部图片uncompressed的情况下,浏览页面依然需要额外的内存,而且并不会释放
C阶段现有profile没有做,因为太卡了。从空白profile可以看出,快速的定位/浏览仍然会造成较大幅度的内存波动。
由黄色标记开始的D阶段可以看出,默认情况下20秒左右就会释放背景tab的内存,比之前的默认值短了很多(但是不能从根本上解决问题啊大大

Chromium
没啥好说的,除了抓住滚动条疯狂卷动会造成轻微的内存波动,内存占用一直差不多。





浏览体验:
fx现有profile:载入很慢,浏览过程流畅。
fx空白profile:载入较快,浏览过程流畅。
cr:秒开,浏览过程流畅。

稳定性:
fx:内存波动非常大,大页面时容易造成不稳定。
cr:即时解码CPU要求比较高,从中键锚点浏览时速度没有fx空白profile快可以看出来,内存占用可以忽略,稳定。

综合体验:
  考虑到6M的图片对应的uncompressed图片体积可能非常大,本测试是具有实际意义的。完全下载完毕整个页面的图片可能并不需要多少时间,尤其是多图页面,一般会少于浏览所需时间,理想情况下可以假设打开页面后短时间内已经载入完成。
  对于A阶段,这个5秒钟/2秒钟/秒开更取决于下载网速,可以认为没有区别;对于本地保存的网页,区别明显。

  B阶段可以认为是必经阶段,因为你打开一个网页的目的肯定是浏览吧。对于网络浏览,通常在同一个页面花费的时间较长,CPU的工作可以分散到更长的时间中进行,对提升cr的浏览体验是有利的,而内存占用的时间越长显然越不好,因此对fx是不利的;对本地网页,浏览时更不会在意那一点点的CPU占用,而在本测试中,一个总资源只有6M的网页却占用了700M以上的内存,显然是非常不利的。

  C阶段无论在网络浏览还是本地浏览都是非常重要的,对于在页面内查找信息,随机读取显然是必要的可能步骤,用内存换速度的fx略有优势。实际测试时,无论是现有profile还是空白profile,本地快速卷动时的流畅度都要比chromium顺滑,但是CPU占用并没有特别大的优势,在我的AMD X2 245上,快速卷动时chromium需要70%波动,fx需要50%波动

  D阶段对cr没有意义,而对fx是个致命伤,尤其是大页面……对本地浏览,通常需要的只是当前网页,查找到所需信息过后就关闭,影响不大。对网络浏览……想象一下你终于刷开了一个巨型图贴,浏览到一半时发现了一个关键字,于是你打开google花了几分钟了解了这个关键字的出处和含义,再切回来的时候卡了5秒钟,浏览器失去响应……不幸的是,正是因为是大型页面,包含的信息多,你需要到其他页面查询信息的几率会比简单页面更大。



测试结果如上。
个人的意见是,这种以tab为单位,把整个页面载入到内存中的做法对于一般网页的浏览体验提升还不错,但是对于小内存用户和大页面恰恰成为了软肋。现在信息爆炸,大容量页面网站也多了起来,所以这些大块头对狐狸的杀伤能力不可忽视。
目前只和chromium做过对比,只了解chrome/chromium的图片缓存行为
不知道其他浏览器还有没有什么更先进的管理方案?fx团队对这个问题是怎么看的?大家的意见如何,讨论讨论吧~


测试页面下载(啊你没看错,只有19K)
ImageHeavyTest.7z


*edit*
以上是基于正常浏览中的模拟情况,下面还有一个极端压力测试。正常情况下能够在16GB内存以下的机器上确保一次完美的Out of Memory Firefox Kill (<ゝω·)~☆Kira
OOM KILL.7z
(2048*4096 x 340p -> 8GB uncompressed image data)
-いたんですか? -ええ、ずっと
t2323
小狐狸
小狐狸
  • UID33185
  • 注册日期2010-06-27
  • 最后登录2015-09-27
  • 发帖数53
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2012-02-25 11:19
smokeBT网站,看看你的FireFox能不能坚持住 • Mozilla Firefox中文社区
6年的发展 依然任重道远
回到原帖


6年了,还没有解决啊?哎,这种靠社区开发的有很多好处,但有一点坏处就是没有强制性,没有人有义务必须多少天内修复XXbug...我不了解,或许有,但义务的话,如果工作量太大,会有人考虑接手吗?

对于这种情况,最牛X的还是Opera,能让老爷机显示各种多图大图页面。从外部使用感受上来看,Opera就是释放不在显示范围的图片缓存并且当他们滚动显示在页面上才去解码这个图片的,这会带来有些图片是你滚动到的时候才“闪”出来,即使整个页面你已经下载完毕。这个情况好像在下面这个bug的3楼有人提到说Firefox为了减轻这种“闪”的体验而作了改变
https://bugzilla.mozilla.org/show_bug.cgi?id=661304

但我感觉Opera这样的取舍是好的,至少不会因为多图页面造成超大内存占用,且不会崩溃,滚动流畅,那“闪”出来的图片,我觉得是可以接受的。当然,我不知道情况是不是像我想的这样,反正结果就是Opera毫无压力,Chrome也毫无压力,Firefox亚历山大就是了!浏览器中处理这种情况的最差的一个。

其实我真心觉得Opera的内核还是挺优秀的,如果Opera能提高一下兼容性就好了。
a393310872
小狐狸
小狐狸
  • UID31952
  • 注册日期2010-02-04
  • 最后登录2013-05-01
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2012-02-25 11:19
OPERA毫无压力.....瞬开
royallin
非常火狐
非常火狐
  • UID29014
  • 注册日期2009-05-31
  • 最后登录2016-12-07
  • 发帖数668
  • 经验46枚
  • 威望0点
  • 贡献值32点
  • 好评度0点
  • 社区居民
3楼#
发布于:2012-02-25 11:19
不单是图像。像这种很长的网页,打开也卡。
ftp://ftp.mozilla.org/pub/mozilla.org/f ... tral-l10n/
fiey
非常火狐
非常火狐
  • UID28955
  • 注册日期2009-05-24
  • 最后登录2013-10-05
  • 发帖数735
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2012-02-25 11:19
loveqianool

在Firefox疯狂占内存的时候依然能够很流畅的浏览,切换页面。所以感觉只是占内存的话倒是没什么关系。fx打开某些多图页面的话,界面会卡死。(话说把这个图片放到某个chrome论坛去,黑fx的内存占用的话,不知道会不会被加分 =q=
回到原帖

所以我很期待这个bug
https://bugzilla.mozilla.org/show_bug.cgi?id=718121
简直是被取消的ES翻版
loveqianool
狐狸大王
狐狸大王
  • UID29223
  • 注册日期2009-06-19
  • 最后登录2022-01-29
  • 发帖数308
  • 经验153枚
  • 威望0点
  • 贡献值92点
  • 好评度2点
  • 社区居民
  • 忠实会员
5楼#
发布于:2012-02-25 11:19

图片:file.png



在Firefox疯狂占内存的时候依然能够很流畅的浏览,切换页面。所以感觉只是占内存的话倒是没什么关系。fx打开某些多图页面的话,界面会卡死。(话说把这个图片放到某个chrome论坛去,黑fx的内存占用的话,不知道会不会被加分 =q=
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
6楼#
发布于:2012-02-25 11:19
bluec:这里有个ppt,讲fx的内存问题的 http://blog.mozilla.com/nnethercote/201 ... nsumption/回到原帖

大致扫了扫,太专业鸟,应该是给developer看的吧
-いたんですか? -ええ、ずっと
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
7楼#
发布于:2012-02-25 11:19
bluec:这里有个ppt,讲fx的内存问题的 http://blog.mozilla.com/nnethercote/201 ... nsumption/回到原帖


蹩脚的英文阅读+查字典的我表示还是基本看不懂,太专业化了。
Firefox More than meets your experience
bluec
火狐狸
火狐狸
  • UID31820
  • 注册日期2010-01-27
  • 最后登录2017-03-16
  • 发帖数188
  • 经验55枚
  • 威望0点
  • 贡献值28点
  • 好评度2点
  • 社区居民
8楼#
发布于:2012-02-25 11:19
这里有个ppt,讲fx的内存问题的 http://blog.mozilla.com/nnethercote/201 ... nsumption/
shenwei37
小狐狸
小狐狸
  • UID33860
  • 注册日期2010-09-01
  • 最后登录2018-04-21
  • 发帖数43
  • 经验24枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2012-02-25 11:19
fx这个浏览图片的问题看来短时间内解决不了额
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
10楼#
发布于:2012-02-25 11:19
在bangumi征求了一堆勇士挑战,结果如下:
总样本数:25
[list=1]Firefox
OS娘中枪 x2
屎掉 x4
载入不全 x2[/list:o]

[list=2]Chrome
毫无鸭梨 x7[/list:o]

[list=3]Opera
毫无鸭梨 x4[/list:o]

[list=4]IE9
屎掉 x1
载入不全 x3[/list:o]
[list=5]
Safari
毫无鸭梨 x2[/list:o]

[list=6]IE8
渣渣不提也罢
不过也有人报告毫无鸭梨哇[/list:o]


结论,除了狐狸,没有其他浏览器有此问题。或许这是gecko的历史遗留问题?
-いたんですか? -ええ、ずっと
linwenzhi7
千年狐狸
千年狐狸
  • UID31370
  • 注册日期2009-12-13
  • 最后登录2024-05-17
  • 发帖数1001
  • 经验243枚
  • 威望0点
  • 贡献值180点
  • 好评度23点
  • 社区居民
  • 忠实会员
11楼#
发布于:2012-02-25 11:19
4G内存,虚拟缓存2G,只是感觉网页比较慢,没出息卡的情况。内存飙升到700我停下来了,又打开两个标签,因为网页载入慢,停下来了。虚拟内存达到1500。关闭标签后15秒左右,内存恢复到300,虚拟内存到350.一直没降!
zths
小狐狸
小狐狸
  • UID34280
  • 注册日期2010-10-19
  • 最后登录2023-08-29
  • 发帖数71
  • 经验49枚
  • 威望0点
  • 贡献值6点
  • 好评度0点
  • 社区居民
12楼#
发布于:2012-02-25 11:19
16G那个直接给我杀蓝屏了....
64位ff 8g内存.
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2024-05-16
  • 发帖数2767
  • 经验578枚
  • 威望1点
  • 贡献值128点
  • 好评度100点
  • 社区居民
  • 最爱沙发
  • 忠实会员
13楼#
发布于:2012-02-25 11:19
smokeBT网站,看看你的FireFox能不能坚持住 • Mozilla Firefox中文社区
6年的发展 依然任重道远
回到原帖

2G内存没抗住,后面内存不够了疯狂读写硬盘,卡了一阵Firefox直接崩溃了连带x桌面也崩溃了。
dgod
火狐狸
火狐狸
  • UID11249
  • 注册日期2006-01-22
  • 最后登录2021-12-24
  • 发帖数211
  • 经验122枚
  • 威望0点
  • 贡献值12点
  • 好评度1点
  • 社区居民
  • 忠实会员
14楼#
发布于:2012-02-25 11:19
dindog
没有几年吧,主要是4之后才是这样的,正式版到现在还不到一年。3.6也卡,但不会占这么多内存然后崩溃
回到原帖


有几年了,我找到的最老的相关bug是https://bugzilla.mozilla.org/show_bug.cgi?id=296818
一直没有根本解决,到现在有解决方案了https://bugzilla.mozilla.org/show_bug.cgi?id=542158,但没有进度。
上一页
游客

返回顶部