预计“空”Chrome扩展程序应使用多少内存?

时间:2013-10-04 00:01:39

标签: google-chrome google-chrome-extension

我已经构建了一个非常简单的chrome扩展,只需在单击时在新选项卡中打开一个URL(通过使用页面当前URL的简短JS功能)。它在后台没有做任何事情。

使用大约20mb的内存是否正常?可以采取任何措施来减少使用的内存量吗?

这是background.js代码:

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(tab.id, {file: "bookmarklet.js"})
});

1 个答案:

答案 0 :(得分:2)

轻量级Chrome扩展程序通常使用10-20 MB的内存。

话虽如此,我建议使用以下清单文件来最小化内存使用并尽量减少权限的使用:

{
    "name": "Name of your extension",
    "version": "1.0",
    "manifest_version": 2,
    "background": {
        "scripts": ["background.js"],
        "persistent": false
    },
    "browser_action": {
        "default_title": "Your badge title here (optional)",
        "default_icon": "icon19.png"
    },
    "permissions": [
        "activeTab"
    ],
    "minimum_chrome_version": "26"
}

如果您愿意,还可以添加iconsdescription字段以提供额外的元数据。

使用"persistent": "false",您已将background page变为event page。事件页面仅在需要时激活,例如单击按钮时。如果不需要,页面会自动卸载,导致无法使用内存。

我猜您已使用"tabs""<all_urls>""*://*/*"权限。对于您的用例,只需删除这些权限并使用activeTab即可,当单击该按钮时,授予扩展名临时访问选项卡的权限。自Chrome 26以来就可以使用此功能。