【发布时间】:2014-05-26 09:20:34
【问题描述】:
在运行很长时间(一天或更长时间)后,我编写的基于 Web 的应用程序 (JS/HTML5) 开始表现得“奇怪”。主要是它停止向后端发送它应该发送的正常数据,我预计它会发送大约 500kb 的数据,它开始只发送几个字节的废话。我怀疑这与内存有关(无法分配内存或其他什么?),当我调查时,我看到了一些真正奇怪且看似不可能的东西,这表明我可能通过高内存使用率遇到了一个 Chrome 错误。但我可以从比我更了解的人那里得到一些确认。
主要的奇怪之处似乎是console.memory 吐出的东西。链接的文档说“usedJsHeapSize 不能大于 totalJsHeapSize”,它非常非常。它也高于堆大小限制,我想它不应该是:
然后,我尝试查看 devtools 可能会告诉我什么,并在那一刻做了一个内存时间线,持续了几秒钟,然后看看它说了什么......内存范围从某个负数非常大的数字到 0B。这肯定看起来不对。
我检查了 chrome://memory 报告,虽然它使用了大量内存,但与我使用的其他 Chrome 浏览会话相比,它似乎并不奇怪。
谁能确认这是一个 Chrome 错误,而不是我没有正确解释的预期开发工具行为。
谢谢!
【问题讨论】:
-
你是在说,“我有这个对我来说很奇怪的东西。我要对你保密。现在,它很奇怪吗?” “只有那是什么秘密,”是我的回答。顺便说一句:我的心跳平均为 57bpm,低于大多数人。你能确认这是否很奇怪吗?如果不是,请解释。对不起,我不公平……你不知道我的健康状况。
-
嗯...这当然不是我打算做的,也不是我想我做的。我只是想 a) 任何想要帮助我的人都不太可能想要注册并运行我的软件 24 小时以上才能看到它表现出这种行为,b) 我的问题不需要那样,因为我只是想知道这些内存数字是否有任何意义(有效/合法/可能),或者它们的存在证明我可能会触发 Chrome 错误。
-
如果超过最大数量,您将得到负数。如果您的脚本没有有效地管理存储的对象,那么它将继续增长。正常吗?好吧,如果这就是你的脚本的编写方式,是的。没有看到代码,就无法知道发生了什么。您运行了 24 小时,但脚本很可能会被加速以更快地执行例程并复制问题,从而帮助确定原因。我们现在所拥有的是对问题症状的描述,但无法对其进行分析……因此是一部神秘小说。
标签: javascript google-chrome memory google-chrome-devtools