1

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

我正在使用 Chrome Developer Tools->Timeline 对注入的脚本进行测试。每次我重新加载页面时,RAM 使用量都会增加。

我的 javascript 包含几个 jQuery AJAX 调用和几行代码。

我尝试了所有可能的 javascript reload 函数,但没有一个能给我想要的结果。

因此,如果有人有想法,如何解决这个问题,我将非常感激。

4

2 回答 2

1

更新:
我已经修复了 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'...");
于 2012-12-11T22:39:09.593 回答
0

您可能在脚本代码中有内存泄漏。有关堵塞此类泄漏的想法,请参阅此答案

通常,您无法根据设计从 javascript 中清除 RAM。但是,如果您对在用户脚本中(也可能在目标页面上)查找和堵塞内存泄漏非常执着,您可以获取/构建 Chrome 的调试版本,然后查看如何允许 javascript 强制垃圾收集的答案.

于 2012-12-12T13:46:01.947 回答