清除/用于Tampermonkey的浏览器选项卡RAM使用情况?

时间:2012-12-11 21:24:42

标签: javascript google-chrome memory-management tampermonkey

我正在寻找一个针对Chrome的Tampermonkey注入javascript的解决方案,其中每次重新加载页面都会清除RAM的使用而不会增加它。

我正在使用Chrome开发者工具测试注入脚本 - >时间轴。每次重新加载页面时,RAM使用量都会增加。

我的javascript包含很少的jQuery AJAX调用,以及几行代码。

我尝试了所有可能的javascript重载功能,但没有一个能给我我想要的结果。

所以如果有人有想法,如何解决这个问题,我会非常感激。

2 个答案:

答案 0 :(得分:1)

<强>更新
导致某些数据在页面重新加载后仍留在内存中的I've fixed a memory leak in Tampermonkey。所以也许你的问题现在已经解决了。



选择另一个标签并等待几秒钟。没有其他方法可以触发垃圾回收。

也许你可以使用这种魔法伪造一个完整的重装:

// ==UserScript==
// @name       fake reload
// @namespace  http://use.i.E.your.homepage/
// @version    0.1
// @description  enter something useful
// @match      http://tampermonkey.net/empty.html
// @copyright  2012+, You
// ==/UserScript==

function fake_reload() {
    console.log("...now");
    GM_openInTab(window.location.href, {active: false, insert: true});
    // close the current window some ms later to allow the insert magic to detect this' tab position
    window.setTimeout(window.close, 1);
}
window.setTimeout(fake_reload, 3000);
console.log("run 'fake reload'...");

答案 1 :(得分:0)

您可能在脚本代码中有内存泄漏。有关堵塞此类泄漏的建议,请参阅this answer

通常情况下,您无法通过设计清除javascript中的RAM。但是,如果您在查找和插入用户脚本中的内存泄漏(可能在目标页面上)是硬核,您可以获取/构建Chrome的调试版本,然后查看this answer以了解如何允许javascript到强制垃圾收集。