这是代码片段链接:http://jsfiddle.net/36mdt/。大约10-20秒后,显示器开始随机冻结并很快崩溃。我无法在Firefox中重现此问题。剖析未发现异常。链接http://jsfiddle.net/3pbdQ/显示明显存在内存泄漏。即使在1 FPS的情况下,每个帧的内存使用量也会增加5兆字节。顺便提一句,这个例子真正展示了Math.random()实际上并不那么随机。
分析未发现异常。
据我所知,Chrome Profiler 无法与 WebWorkers 一起使用。根据与 Paul Irish 的谈话:
"检查 about:inspect 是否有共享工作进程,还可以在 worker 代码中执行 console.profile()(我认为),并捕获这些内容。'cleans up'是垃圾回收器:如果清理后仍然存在过多内存增长,则表示存在泄漏。"
和
另外,这个示例确实展示了 Math.random() 确实不那么随机。
众所周知,没有完美的随机算法,但是你看到的一堆分组颜色是因为你没有设置 canvas.height 和 canvas.width,并且它与 CSS 值不同。
编辑:仍然存在内存泄漏,我不知道原因,大约 10 秒钟后它会“清理”。已超出我的知识范围,但以 60 FPS(var TIME = 16
)平稳运行。
根据您使用的系统和浏览器版本,一些步骤可能会有所不同,尽管我尽力提供与大多数系统兼容的常见步骤。
禁用沙箱: 1. 右键单击 Google Chrome 桌面图标。 2. 选择属性。 3. 点击快捷方式>目标。 4. 添加 "--no-sandbox" 5. 点击 应用|确定。 6. 下载并安装 ZombieSoftFix。 7. 检查并解决检测到的冲突。
禁用插件: 1. 在地址栏中输入"about:plugins"。 2. 按 ENTER 键。 3. 禁用在列表页面中显示的所有插件。
清除临时文件: 1. 点击扳手图标。 2. 选择 更多工具|清除浏览数据。 3. 勾选所有框,点击 "清除浏览数据"按钮确认该过程。
谢谢 & 致意。
这是一个不幸的,已知的Chrome bug。
1.2GB
的内存。 - Esailija