我正在开发一个非常简单的Web应用程序,可以显示访问网页的顶级用户。我在d3中编写了一些代码来将数据转换为条形图,并编写了一个简单的php脚本来从数据库中提取数据。我使用ajax请求每5秒提取一次数据并更新条形图。如果我在后台打开页面,它将会发现旧的
aw snap google chrome has run out of memory
我经历过一堆关于内存泄漏的网站,并尽我所能阻止他们,但是我有足够的机会搞砸了。问题是除了错误在这个页面上出现之外(我写了大量的javascript应用程序,但这没有发生)绝对没有证据表明泄漏正在发生。我每5秒检索一次的数据是212kb,当我进行堆记录时,堆内存峰值为25mb并且没有真正增加(通常在10到25mb之间反弹),所以看起来212kb正在被垃圾收集并且不会在堆中累积。同样地,我看了一下任务管理器,当我把它打开时,唯一的标签打开似乎有很大的波动,但绝对不是趋势向上。我已经拍摄了快照,它们往往在10-15mb范围内,我真的不明白如何阅读快照,但这是在运行15分钟左右后的样子:
这只是非常令人沮丧,我已经花了20-30个小时,但看起来像一个看着锅的情况永远不会沸腾。如果我找到它发生的证据我永远找不到,但是如果我在离开计算机几个小时的时候打开它,页面就会崩溃。这几乎就像垃圾收集器只是等我离开我的电脑才决定停止运行。
有关可能成为罪魁祸首的罪魁祸首或下一步试图找出罪魁祸首的任何想法?这是我第一次遇到内存泄漏,这让我发疯。感谢。