阅读:4427回复:11
[Nightly] Firefox 33.0a 实现每个附加组件独立放置于一个 compartment
什么是 Compartment(下称区块)?简单来说就是 Firefox 里面 Javascript 代码所占用内存放置的一个位置,一般会有多个区块,比如一个网站里面 JS 代码所使用内存就会放在一个区块里面,属于 content 的区块,而 Firefox 自身的 JS 代码所占用内存也会放置在一个或多个区块当中,属于 chrome 的区块,不同的区块可以通过附加组件,脚本之类的互相引用(reference)。
在 Firefox 15 当中,实现了浏览器主动切断不必要的 content 和 chrome 区块之间的联系,从而防止产生 zombie compartment。现在 Firefox 33.0 实现每个附加组件一个区块(compartment per addon),这就意味着我们可以更好监控每个附加组件对性能的影响以及它们的内存占用,这也意味着有一些附加组件可能会挂掉。 开启方法是在 about:config 找到: dom.compartment_per_addon双击改为 true。 之后继续使用,如果一些附加组件受此影响功能不正常或挂掉,那有可能是这个引起。错误控制台等其他日常监控手段应该都可以看到异常。一般是和 window 有关的全局变量和对象出了问题。用 Add-on SDK 写的并且调用 .jsm 模块的扩展已经实现了这个功能,所以不会有问题。现在主要针对传统的 XUL Overlay 的扩展。 为什么要这么做? 1、最主要是为了能够让附加组件兼容多进程项目 e10s,否则传统扩展可能大多都会挂掉。 2、可以更好监控每个附加组件内存占用,以往附加组件内存占用都是和 Firefox 的 chrome 代码混在一起,实现以后 about:memory 可以将其区分开来了。 3、更好监测每个附加组件的性能,可以针对每个附加组件所在区块进行监测,比如附加组件运行的时长,telemetry 今后就可以对附加组件发挥威力了。 Bug 990729 - Associate JS compartments with addon XUL code and components/modules 消息来自 google 网上论坛 firefox-dev 版块 |
|
|
1楼#
发布于:2014-06-26 12:10
about:addons-memory :: Firefox 附加组件
这个扩展可以更好的发挥作用啦 |
|
2楼#
发布于:2014-06-26 12:18
就是不知道多少扩展会挂掉。
|
|
3楼#
发布于:2014-06-26 20:35
就是打开了还是有一部分扩展会在e10s挂掉,例如super drag,Scriptish,不知道有没有替代的。
|
|
4楼#
发布于:2014-06-27 13:45
|
|
5楼#
发布于:2014-06-27 16:23
|
|
6楼#
发布于:2014-06-27 17:38
|
|
7楼#
发布于:2014-06-27 19:02
|
|
8楼#
发布于:2014-06-28 09:56
进化了
|
|
9楼#
发布于:2014-07-01 21:05
|
|
10楼#
发布于:2014-07-01 21:16
z344257899:为什么要这么做?对,多进程是趋势。只是感觉大量的 firefox 扩展已经进入沉睡阶段,不像 chrome 那样活跃。 |
|
11楼#
发布于:2014-07-06 21:20
|
|