阅读:8071回复:34
20行代码令Windows版Firefox启动速度快一倍
浏览器大战中最重要的就是速度,各路厂商绞尽脑汁提升产品速度,而比较搞笑的是Windows版Firefox,有一名叫Taras Glek的程序员在Bugzilla提供了开发方并没有发现的一个非常简单的方法,这种只有20行代码,几K大的小补丁可以成倍提升Firefox冷启动速度。这种补丁的原理是在程序预读阶段将XUL的chunks从数M变成32k或者更小,在不影响浏览器功能的前提下即可加速。这种加速方法很可能被正式版本的Firefox使用到,不过由于目前还缺乏测试,请您在应用该补丁时小心为上。
查看:Bug 627591 - preload dlls on windows |
|
1楼#
发布于:2011-01-24 10:04
https://bugzilla.mozilla.org/show_bug.cgi?id=627591
这个改进在Windows版已经完成了,之前已经加入到每夜版中了。目前正在对Mac和Linux版做同样的改进,在Mac和Linux版完成前,这个改进暂时也从Windows版中移除了。这个改进,会在 Firefox 6 中加入。 目前 Firefox 4+ 的启动速度,已经比 Firefox 3.* 快很多了。加入这个改进后,期望 Firefox 6.0 的启动速度(包含第一次的冷启动)能赶上 IE9 的启动速度。 |
|
2楼#
发布于:2011-01-24 10:04
asdf123456:浏览器大战中最重要的就是速度,各路厂商绞尽脑汁提升产品速度,而比较搞笑的是Windows版Firefox,有一名叫Taras Glek的程序员在Bugzilla提供了开发方并没有发现的一个非常简单的方法,这种只有20行代码,几K大的小补丁可以成倍提升Firefox冷启动速度。这种补丁的原理是在程序预读阶段将XUL的chunks从数M变成32k或者更小,在不影响浏览器功能的前提下即可加速。这种加速方法很可能被正式版本的Firefox使用到,不过由于目前还缺乏测试,请您在应用该补丁时小心为上。 作者更新了代码并提供了测试build,各路人士测试以后纷纷表示毫无作用 ps:他们那个about:startup为什么在我这里打不开? |
|
3楼#
发布于:2011-01-24 10:04
|
|
|
4楼#
发布于:2011-01-24 10:04
我想纠正的是这个TG就是Mozilla里面专门负责启动加速的小组主力,专门研究I/O好几年了
|
|
|
5楼#
发布于:2011-01-24 10:04
目前还没合并啊
|
|
6楼#
发布于:2011-01-24 10:04
传入 FILE_FLAG_SEQUENTIAL_SCAN 参数给 CreateFile
会使 顺序读 获得更好的性能, 也就 为后续的那个 while 打铺垫. 读一遍以后 数据 将被 window 操作系统缓存. 然后以后DLL函数调用隐含的文件读就可以命中缓存, 否则每一个新的函数调用都产生硬IO直到文件被全部覆盖完. 现在写程序比较幸福, 很多东西别人都帮你考虑好了, 需要的只是找找API的参数说明. 当年我自学编程, 那时是DOS时代, 读写文件操作系统提供的INT25H和INT26H功能太弱, 我直接去调用BIOS INT13H中断向量. 结果由于程序BUG把硬盘主引导扇区文件分配表那些给重写了.... |
|
7楼#
发布于:2011-01-24 10:04
快点合并到3.6.14啊
|
|
|
8楼#
发布于:2011-01-24 10:04
|
|
|
9楼#
发布于:2011-01-24 10:04
目前依然是Assigned。另外,bugzilla.mozilla.org 网页最上面,刚刚添加了红色文字,说是要做重要的安全更新,可能firefox发现什么严重的安全问题了。
|
|
10楼#
发布于:2011-01-24 10:04
啊哈,不知道今天的版本合进去没。
|
|
11楼#
发布于:2011-01-24 10:04
等landed后大家的测试结果。继续3.6路过
|
|
|
12楼#
发布于:2011-01-24 10:04
没漏看。 sizeof(buf) 就是 64KB,dwBytesRead 是读取的长度,dwBytesRead == sizeof(buf) 就是读取的长度等于 64KB 时。写了16年的C++程序,这么简单的代码,是不会看错的。 |
|
13楼#
发布于:2011-01-24 10:04
你显然漏看了&& dwBytesRead == sizeof(buf)这段。具体作用上面那个回帖已经解释过了。 |
|
14楼#
发布于:2011-01-24 10:04
还没有
美国还在凌晨 |
|
上一页
下一页