如何检查作为开发工具运行的javascript的内存泄漏



有很多关于如何检查在特定页面内运行的javascript内存的信息,但我需要检查通过控制台输入的javascript的内存使用情况。

我正在开发一些脚本来像游戏助手一样作为机器人工作,所以我把我的脚本放在线程(帧)下,并由每秒的 setInterval 调用触发。示例代码如下所示:

var msgList = [];
var msgGenerator = function () {
return "Welcome";
}
var msgInterval = setInterval(function () {
var msg = msgGenerator();
if (!msgList.includes(msg))
msgList.push(msg);
}, 1 * 1000);

实际上,消息非常小,总共不到50。但是这种开发工具(从chrome的任务管理器查看)的内存正在增加。 即使在我执行以下调用之后: clearInterval(msgInterval); devtool的模因仍在增加。 谁能指导我如何获取devtool(在控制台上运行的javascript)的内存快照?或者有没有其他方法可以分析控制台上运行的自制 JavaScript 的内存泄漏?

我已经尝试了很多方法来获取devtool的详细内存使用情况,但失败了。似乎没有这样的工具/设施。无论如何,如果以后有人发现这样的工具,请在此线程中发布。

但是,我找到了避免在控制台上运行的脚本的内存使用量增加的方法:将 setInterval 更改为 setTimeout,并达到相同的效果。

更新后的代码如下,不会再增加任何内存使用量。

var msgList = [];
var msgGenerator = function () {
return "Welcome";
}
var msgInterval = 0;
var msgLoop = function () {
var msg = msgGenerator();
if (!msgList.includes(msg))
msgList.push(msg);
msgInterval = setTimeout(msgLoop, 1 * 1000);
};

希望上面的消息可以帮助有人正在努力解决控制台脚本或片段的"内存泄漏"。

最新更新