fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
阅读:4930回复:18

Firefox 7 在禁止 Windows Prefetch 的情况下可以有效减少其启动时间

楼主#
更多 发布于:2011-09-21 23:26
各位还是否记得我们在以前的帖子里面有讨论 bugzilla 上关于一个 20 行代码的补丁可以有效加快 FF 启动速度。这个补丁原理是在开机启动时候预先载入 dll 的库(IE启动速度快我看是这样弄出来的)
https://bugzilla.mozilla.org/show_bug.cgi?id=627591

目前 Firefox 7 beta 版本已经基本实现这个功能了,但FF 稳定版还处于 6.0.2,普通用户要升级到 FF 7 需要等到 9 月 27 日左右。

这篇国外博文告诉我们其实 Windows Prefech(windows 预读取)会对预载入库减少启动时间产生阻碍。
http://blog.mozilla.com/tglek/2011/09/2 ... rt-faster/

从统计来看,只有25%以下的用户是关闭 Windows Perfetch的,而 Linux 和 Mac 平台用户则不受此影响,可以体验到更快的启动速度。

Windows Perfetch 对绝大多数常用软件启动速度有所帮助,但对 FF 7 却有不好的影响,我们无需完全关闭整个预读取功能,博文里面给出了如何实现 FF 7 加快启动速度的方法:
1、安装 Firefox 7 beta(或者到 prefetch 文件夹里删除 Firefox 的有关项目)
2、安装完毕后不要立即打开 Firefox,而是重启操作系统
3、这时候再启动 Firefox

这样可以取消 Windows Prefetch 来预读取 FF,而让FF能自己读取 dll 库从而加快启动速度。原因是:系统启动时 Windows Prefetch 会记录不相关的 IO 操作,使得 Firefox 无法在开机时预先加载所要读取的文件。
Explanation: on warm startup Windows Prefetch records irrelevant IO operations and blocks Firefox startup to preload files that Firefox accesses after startup.
Firefox More than meets your experience
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
1楼#
发布于:2011-09-21 23:26
因为win7的内存管理超棒,所以热启一般很快,不做考虑

昨天断网才发现,原来影响我机器速度的最大凶手是俩UT……
没了ut,冷启3秒毫无压力……
果然ut内存占用太多,其他程序就吃瘪了,更何况俩……看来得禁用自动管理,少给ut分点内存了
-いたんですか? -ええ、ずっと
havanna
狐狸大王
狐狸大王
  • UID22502
  • 注册日期2008-01-01
  • 最后登录2015-10-20
  • 发帖数544
  • 经验14枚
  • 威望0点
  • 贡献值2点
  • 好评度0点
2楼#
发布于:2011-09-21 23:26
fang5566

难道是我英文阅读有误? :roll:
https://bugzilla.mozilla.org/show_bug.cgi?id=627591
We page in most of xul.dll and mozjs.dll. So i figured why not try lazy-linking libxul and preloading it. Turned out lazylinking didnt make any difference, but preloading seems to consistently shave up 2seconds of startup on my profile(40%).
I'm going to doublecheck on my favourite user's slow computer. Here is the patch in meantime.
回到原帖

难道是我理解有问题?
调整启动xul库文件顺序,缩短firefox启动时间=开机预先载入dll库?
preloading=开机预加载?
打开个补丁好好读一下........
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
3楼#
发布于:2011-09-21 23:26
havanna:20 行代码的补丁的原理不是在开机启动时候预先载入 dll 的库......

而是延迟载入几个体积较大的dll来达到启动加速的目的....

版主要多做功课....
回到原帖


难道是我英文阅读有误?
https://bugzilla.mozilla.org/show_bug.cgi?id=627591
We page in most of xul.dll and mozjs.dll. So i figured why not try lazy-linking libxul and preloading it. Turned out lazylinking didnt make any difference, but preloading seems to consistently shave up 2seconds of startup on my profile(40%).
I'm going to doublecheck on my favourite user's slow computer. Here is the patch in meantime.
Firefox More than meets your experience
havanna
狐狸大王
狐狸大王
  • UID22502
  • 注册日期2008-01-01
  • 最后登录2015-10-20
  • 发帖数544
  • 经验14枚
  • 威望0点
  • 贡献值2点
  • 好评度0点
4楼#
发布于:2011-09-21 23:26
20 行代码的补丁的原理不是在开机启动时候预先载入 dll 的库......

而是延迟载入几个体积较大的dll来达到启动加速的目的....

版主要多做功课....
zhengwq
小狐狸
小狐狸
  • UID6897
  • 注册日期2005-06-20
  • 最后登录2021-01-17
  • 发帖数78
  • 经验20枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
5楼#
发布于:2011-09-21 23:26
liuxb:只要Perfetch服务开启了,那么任何时候启动firefox都会在windows\preftch目录下生成FIREFOX.EXE-E60C0AA7.pf这样的文件吧.
上面说的,到了第三步3、这时候再启动 Firefox, 还是会生成firefox的预读文件啊,那么下次启动岂不是又起作用了?
回到原帖

你再好好试试?
我照那步骤做成功了
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
6楼#
发布于:2011-09-21 23:26
用 about:startup 比较了一下关闭prefetch和开启时候的启动速度,发现关闭prefetch后确实从速度上有所提升,只不过从现实感受上没有发现有太大差别。



上图最后一行,是关闭系统预读取后,Firefox 热启动时间。
上图倒数第二行,是关闭系统预读取后,Firefox 在系统重启后的冷启动时间。
上图倒数第三行,是开启系统预读取后,Firefox 在系统重启后的冷启动时间。
上图第一行,是开启系统预读取后,Firefox 热启动时间。

测试环境:Windows 7 32bit,Firefox 7 beta,安装 About:Startup 扩展
在注册表HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters,找到EnablePrefetcher和EnableSuperfetch两个键,改成2,默认是3。3 表示预读取系统文件和应用程序,2 表示只预读取系统文件。
更改完毕后重启系统,运行Firefox 后发现 C:\Windows\Prefetch\ 下没有Firefox.exe -pf 这样的文件,说明 Firefox 没有被预读取。测试后,重新在注册表里面开启预读取程序。
Firefox More than meets your experience
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
7楼#
发布于:2011-09-21 23:26
bluec

不要着急,等时机成熟官方自然会在安装包里加入这个功能。为了加快firefox启动而关闭prefetch就是因噎废食了,那个blog里也没有这样推荐

事实上firefox在同配置的机器里,win7下比xp下启动速度要快
回到原帖


博客是没有推荐,博客里面只是阐述一下 Firefox 7 在启动速度方面已经有了很大提升,甚至已经集成预加载dll库,只是由于windows 的 prefetch(XP、Vista,Win7下面叫superprefetch)会导致这个功能无法使用,用户才没有感受到。如果能通过各种方法关闭 prefetch 就能够感受到了。
作者最后还希望 Mozilla 在以后版本中加入清理 prefetch 的功能,就像那个 vbscript 一样。
Firefox More than meets your experience
MalcKear
千年狐狸
千年狐狸
  • UID35386
  • 注册日期2011-03-05
  • 最后登录2020-03-02
  • 发帖数1348
  • 经验131枚
  • 威望0点
  • 贡献值16点
  • 好评度10点
  • 社区居民
  • 忠实会员
8楼#
发布于:2011-09-21 23:26
bluec

不要着急,等时机成熟官方自然会在安装包里加入这个功能。为了加快firefox启动而关闭prefetch就是因噎废食了,那个blog里也这样推荐

事实上firefox在同配置的机器里,win7下比xp下启动速度要快
回到原帖

WIN7下的启动速度的确比XP下快的多~
bluec
火狐狸
火狐狸
  • UID31820
  • 注册日期2010-01-27
  • 最后登录2017-03-16
  • 发帖数188
  • 经验55枚
  • 威望0点
  • 贡献值28点
  • 好评度2点
  • 社区居民
9楼#
发布于:2011-09-21 23:26
cdtylh06
英文看不懂,具体是哪个脚本,好事做到底,麻烦上传到附件了,谢谢!
回到原帖


不要着急,等时机成熟官方自然会在安装包里加入这个功能。为了加快firefox启动而关闭prefetch就是因噎废食了,那个blog里也没有这样推荐

事实上firefox在同配置的机器里,win7下比xp下启动速度要快
cdtylh06
狐狸大王
狐狸大王
  • UID33490
  • 注册日期2010-07-21
  • 最后登录2018-09-03
  • 发帖数459
  • 经验113枚
  • 威望0点
  • 贡献值30点
  • 好评度4点
  • 社区居民
  • 忠实会员
10楼#
发布于:2011-09-21 23:26
https://bugzilla.mozilla.org/show_bug.cgi?id=627591#c158
这里有个vbscript可以阻止prefetch加速Firefox

英文看不懂,具体是哪个脚本,好事做到底,麻烦上传到附件了,谢谢!
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
11楼#
发布于:2011-09-21 23:26
https://bugzilla.mozilla.org/show_bug.c ... 27591#c158
这里有个vbscript可以阻止prefetch加速Firefox
Firefox More than meets your experience
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
12楼#
发布于:2011-09-21 23:26
那么已经用了好久的肿么办
-いたんですか? -ええ、ずっと
8783
火狐狸
火狐狸
  • UID34717
  • 注册日期2010-11-29
  • 最后登录2013-04-16
  • 发帖数210
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
13楼#
发布于:2011-09-21 23:26
dindog:因为很多人明显不是1-2秒……回到原帖

開了BT ONLINEGAME KIS2012防毒 + 一堆東西
FIREFOX6 還是只需2秒

loppopp
小狐狸
小狐狸
  • UID35213
  • 注册日期2011-02-07
  • 最后登录2020-12-31
  • 发帖数10
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
14楼#
发布于:2011-09-21 23:26
firefox的启动慢跟那个包里的那么多零散的js、xul文件有没有关系啊,每次看到那些文件就替它头疼,真有必要对用户透明成那样吗。
上一页
游客

返回顶部