如何防止脚本运行的时间越来越慢?

时间:2016-07-30 18:28:32

标签: javascript performance google-chrome memory-leaks tumblr

Fiddle

我制作了一个脚本,需要一个小聊天框(我将它用于Tumblr.com的即时消息系统)并将文本解析为某些内容我可以轻松地复制+粘贴到外部文本文件中,试图创建某种非常旧的对话的聊天记录。

Tumblr加载旧消息的方式是每次向上滚动框时,它会再加载10条消息并将它们添加到DOM中。我构建了我的脚本,以便MutationObserver检查加载新消息的时间,然后我的脚本将获取消息,删除所有编辑并将其粘贴到以编程方式创建的div中,然后我可以突出显示所有内容并将其粘贴到外部文件中以便妥善保管。

我的脚本可以完美地捕获一个 - 如果我保持运行超过1.5小时左右,脚本开始减慢到比原来运行速度慢近4倍。现在我一直在阅读有关内存泄漏的一些内容,但是在我的脚本中找不到任何会导致内存泄漏的内容。

尽管如此,在我的OSX上的Activity Monitor中,我运行脚本的浏览器选项卡上运行的Google Chrome Helper任务继续在内存使用中增加,就像这样 -

memory usage of tab

脚本仅在30分钟之前 1.06GB )。我不确定这是否意味着内存泄漏,但随着我的脚本继续减速,我只能假设情况如此,除非发生其他事情!

当我第一次运行我的脚本时,我想也许我的脚本速度变慢了因为我向DOM添加了如此大量的<p></p>标签并且从未清除它们,所以我添加了一个停止循环的按钮这样我就可以复制文本并将其保存在外部文本文件中,然后清除DOM中的所有<p></p>标记,然后继续解析。这似乎有点加快了脚本,但还不足以解释为什么它会随着时间的推移而放慢速度。

我的脚本是否存在根本错误?或者关于内存如何适用于谷歌浏览器的一般情况?我很困惑,所以任何文件或建议都会受到赞赏。谢谢!

0 个答案:

没有答案