阅读:3793回复:5
使用addon sdk开发的扩展会用掉多少内存?
前情见 https://www.v2ex.com/t/145411
稍微查了下 google只能搜到abp作者在2年前的一个测试 https://adblockplus.org/blog/measuring-the-memory-use-of-an-sdk-jetpack-based-add-on 于是重新做了个简单的测试 只实现一个最简单的功能:给body加上5px的红色边框 分别用addon sdk(jetpack扩展,cfx和jpm两种打包方式)、手写bootstrap、greasemonkey脚本实现 addon sdk的版本参考 https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Modifying_the_Page_Hosted_by_a_Tab https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Modifying_Web_Pages_Based_on_URL 手写bootstrap的代码参考 https://developer.mozilla.org/en-US/Add-ons/Working_with_multiprocess_Firefox firefox选用32位win下的34.0 firefox本体内存占用看process explorer显示的private bytes http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx 新建profile 分别单独安装各扩展 只打开test.html 扩展的内存占用看about:memory中显示的数值 扩展 firefox本体 cfx 2.76m 143m jpm 2.79m 148m 手写bootstrap 0.04m 126m 油猴 1.05m 130m 手写bootstrap的内存占用极少(虽然这个和我没做shutdown时的清理有关) addon sdk由于需要额外加载内置模块 导致总体占用会比油猴脚本来得多 同时安装4个扩展 并另装一个jetpack扩展减少about:memory中jetpack内存统计的干扰(具体原因见后) cfx 0.48m jpm 0.93m 手写bootstrap 0.04m 油猴 1.06m 同时安装4个扩展 使用about:addons-memory来查看扩展的内存占用 https://addons.mozilla.org/en-US/firefox/addon/about-addons-memory/ cfx 437.8k jpm 440.8k 手写bootstrap 39.3k 油猴 1.12m 可以看出这两组数据差不多(除了jpm,原因不知) 不过这里有另一个问题 为什么单独安装时jetpack扩展占用会多那么多? 0.48m和2.76m相差了一个数量级 这就需要另做一组测试 用cfx打包一个只有console.log()的扩展 复制20份,修改为不同id 再分别安装不同数量后查看内存占用 扩展数量 firefox本体 扩展占用总量 占用内存最多的1个 其余 0 117m - - - 1 120m 1.20m - - 2 123m 2.39m 2.10m 0.29m 3 125m 3.54m 2.96m 0.58m(0.29*2) 4 128m 4.73m 3.85m 0.87m(0.29*3) 5 130m 5.91m 4.74m 1.16m(0.29*4) 10 151m 11.94m 9.32m 2.62m(0.29*9) 20 176m 23.89m 18.35m 5.54m(0.29*19) 很明显about:memory统计jetpack扩展占用的内存时 把addon sdk的那一堆模块全部累计到第一个jetpack扩展的内存占用上去了 而且即使扩展没用到的模块,也一样加载进内存了 总结 把油猴脚本转为相应的addon sdk扩展需要多占用2m左右的内存 如果很在意firefox的内存占用 那就尽量使用油猴脚本、overlay扩展、手写bootstrap扩展、uc脚本 |
|
最新喜欢:fang55...
|
1楼#
发布于:2014-11-19 07:34
路过
|
|
2楼#
发布于:2014-11-19 09:04
哪有那么容易把扩展都转成脚本啊……
|
|
|
3楼#
发布于:2014-11-19 13:51
跪,求知欲太强了
|
|
4楼#
发布于:2014-11-19 23:48
|
|
|
5楼#
发布于:2014-11-20 00:03
文科:跪,求知欲太强了回到原帖虽然油猴脚本转jetpack扩展对fennec来说不划算 https://wiki.mozilla.org/Mobile/Fennec/Extensions/Electrolysis 看起来fennec也可以用那些message manager 改成手写bootstrap扩展内存方面不会大很多的 值得考虑 特别是在目前fennec没有油猴、scriptish也有问题的情况下 |
|
|