阅读:2251回复:6
[Nightly] Firefox 55.0a 提升 e10s 下标签页的关闭速度
原来 Firefox 在 e10s 多进程模式下关闭标签页的时候常常会显示一个大菊花然后消失,尤其是在关闭最后一个标签页的时候。
原因是 e10s 下,关闭一个标签页时,父进程会发送消息给子进程检查一个名为 beforeunload 的事件句柄,这个事件就是在某些网页关闭时候,浏览器会提示你确认是否关闭还是停留的对话框,如下图。 图片:Image 1.png ![]() 父进程会停留等待子进程回复此消息决定是否关闭,超过 5 秒未恢复视作同意关闭,则父进程关闭此标签页。在一些情况下,子进程是在主线程上运行,所以只需在父进程等待消息,所以这时候关闭标签页就很快,关闭标签页的时候,beforeunload 事件就会被移除,因为都在父进程中通信。但有时候,主线程被占用或拥塞,无法及时处理。这就有可能造成关闭延迟。 Firefox 55.0a 着重改善了 e10s 下标签页的关闭速度,它是所在子进程运行的标签页,如果 beforeunload 事件有添加到该标签页,则告诉父进程并标记这个标签页关闭时候需要移除事件。到时候一旦移除该事件,则取消标记。如果没有添加事件则无需标记。 那关闭标签页的时候,有了标记,父进程马上就可以知道是否需要发送消息给子进程来确认是否需要处理 beforeunload 事件句柄。如果没有标记,就可以直接关闭无需等待确认,从而大大提升了关闭标签页的速度。 具体技术介绍文章参见:Making tabs close faster in multi-process Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1336763 |
|
最新喜欢:![]()
|
1楼#
发布于:2017-05-09 18:16
好大的补丁 不好移植 感觉53关闭标签页比52速度慢了呢
|
|
|
2楼#
发布于:2017-05-09 18:32
pcxfirefox:好大的补丁 不好移植 感觉53关闭标签页比52速度慢了呢回到原帖我用nightly 比以前关闭标签页转菊花 快了很多 基本看不到菊花 |
|
|
3楼#
发布于:2017-05-10 09:00
|
|
|
4楼#
发布于:2017-05-10 09:19
pcxfirefox:我暂时还没开e10s 所以都是在关闭e10s的情况下使用的回到原帖没开e10s是感受不到这个补丁带来的关闭速度提升。 |
|
|
5楼#
发布于:2017-05-13 07:45
5月9号之前一点点才改的吗?
我用了半个月-1个月Nightly,开着多进程,但是从来没见过大菊花 |
|
6楼#
发布于:2017-05-13 09:58
|
|
|