我每5秒运行一次大量的
JavaScript,任务管理器显示内存使用量不断增加.但是Heap快照没有.如果我停止脚本,大约半分钟两分钟后内存就会被清除.
更新:
如果我长时间离开脚本,内存会一直增加,直到浏览器崩溃.
我还尝试运行chrome dev工具的时间线测试,它们也没有显示内存使用量的增加,与Heap快照相同.所以我想这是一种泄漏,但我无法理解泄漏的是什么.
另一件我无法确认的事情,因为我无法安装以前的Chrome版本,因为我不记得之前发生过这种情况(< 24 Chrome版本)了. IE10在不增加内存的情况下运行此测试.这可能是新Chrome的问题吗?
解决方法
假设您指的是Chrome开发人员工具,您可能看不到堆快照中的内存增加,因为堆快照分析器在快照之前运行垃圾收集器.
看到增加的内存使用量,特别是在活动处理期间,是很正常的.垃圾收集器不会不必要地运行.如果你的机器有备用的内存,它会让预留的内存增长.如果你开始推动可用内存的限制,收集器应该运行.你应该允许这种情况发生,看它是否确实如此.
由于您在空闲时段之后报告内存下降到其原始级别,这表示没有内存泄漏,并且垃圾收集器能够正确收集所有已分配的堆对象.
但是,IANAGE(我不是Google工程师).我建议阅读Heap Profiler documentation以及相关的Memory 101 page作为背景.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。