这是小提琴:http: //jsfiddle.net/36mdt/
大约 10-20 秒后,显示器在崩溃后不久开始随机冻结。我无法在 Firefox 中重现这一点。
剖析没有发现任何异常。
http://jsfiddle.net/3pbdQ/显示肯定存在内存泄漏。即使是 1 FPS,内存使用量也达到 5 兆字节一帧。
顺便说一句,这个例子确实展示了 Math.random() 是如何不那么随机的。
这是小提琴:http: //jsfiddle.net/36mdt/
大约 10-20 秒后,显示器在崩溃后不久开始随机冻结。我无法在 Firefox 中重现这一点。
剖析没有发现任何异常。
http://jsfiddle.net/3pbdQ/显示肯定存在内存泄漏。即使是 1 FPS,内存使用量也达到 5 兆字节一帧。
顺便说一句,这个例子确实展示了 Math.random() 是如何不那么随机的。
我只做了 2 次性能改进,并且在 5 分钟后它没有崩溃(似乎也没有泄漏内存)。结帐http://jsfiddle.net/3pbdQ/3/
剖析没有发现任何异常。
Chrome Profiler 不适用于 WebWorkers、AFAIK。根据与 Paul Irish 的对话:
“检查:检查共享工作人员,您也可以在工作人员代码(我认为)中执行 console.profile() 并捕获这些位。“清理”是垃圾收集器:如果清理后仍有增长多余的内存线,那就是泄漏。”
和
顺便说一句,这个例子确实展示了 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. 按输入。3. 禁用列表页面中显示的所有插件。
清除临时文件: 1. 单击扳手。2. 选择更多工具 | 清除浏览数据。3.勾选所有框,单击“清除浏览数据”按钮确认过程。
感谢和问候。
这是一个不幸的已知Chrome 错误。