JavaScript 冻结/崩溃在 Chrome 中
JavaScript freezing/crashing in Chrome
这是小提琴:http://jsfiddle.net/36mdt/
大约 10-20 秒后,显示屏开始随机冻结,并在崩溃后不久冻结。我无法在火狐中重现这一点。
分析没有发现任何异常。
http://jsfiddle.net/3pbdQ/显示肯定存在内存泄漏。即使是 1 FPS,每帧的内存使用量也会达到 5 兆字节。
附带说明一下,这个例子确实展示了 Math.random() 是如何真正不那么随机的。
我只做了 2 项性能改进,并且在 5 分钟后不会崩溃(似乎也没有泄漏内存)。结帐 http://jsfiddle.net/3pbdQ/3/
- 不要计算每次迭代中的大小
- 使用超时而不是冻结间隔。
- 对地板使用按位运算符
分析没有发现任何异常。
Chrome Profiler 不适用于 WebWorkers、AFAIK。根据与保罗爱尔兰人的对话:
"检查:检查共享工作线程,您也可以在工作线程代码(我认为)中执行console.profile()并捕获这些位。"清理"是垃圾收集器:如果在清理后仍有越来越多的多余内存,那么这就是泄漏。
和
附带说明一下,这个例子确实展示了 Math.random() 是如何真实的。 不是那么随机。
众所周知,没有完美的随机算法,但无论如何,您看到的一堆分组颜色是因为您没有设置 canvas.height 和 canvas.width,并且它与 CSS 值不同。
编辑:仍然泄漏内存,我不知道为什么,大约在10秒后它"清理"。超出我的知识,但以 60 FPS ( var TIME = 16
) 流畅运行
根据您使用的系统和浏览器版本,尽管我尽力提供与大多数系统兼容的常见步骤,但某些步骤可能会有所不同。
禁用沙盒:1.右键单击谷歌浏览器桌面图标。2. 选择属性。3. 单击"目标">快捷方式。4. 添加"--无沙盒"5. 单击"应用"|"还行。6. 下载并安装僵尸软件修复。7. 检查并解决检测到的冲突。
禁用插件:1. 在地址栏中输入"关于:插件"。2. 按回车键。3. 禁用列表页面中显示的所有插件。
清除临时文件:1. 单击扳手。2. 选择更多工具 |清除浏览数据。3.选中所有框,单击"清除浏览数据"按钮以确认该过程。
谢谢和问候。
这是一个不幸的,已知的Chrome错误。
- Chrome在尝试从Javascript修改CSS3动画时崩溃
- Javascript正则表达式文件类型崩溃chrome
- 使用SoundJS离开网页会导致Google Chrome崩溃
- 如果我刷新几次,为什么我的应用程序会在Chrome中崩溃
- 使用 for 循环用整数序列填充数组,而不会使 Chrome 崩溃
- JavaScript 冻结/崩溃在 Chrome 中
- 如果 Chrome 扩展程序崩溃,如何让另一个扩展程序重新加载崩溃的扩展程序
- Chrome 在执行正则表达式匹配时崩溃
- JavaScript SetTimeOut永远不会触发函数并使Chrome崩溃
- D3中的脚本.js使Chrome崩溃
- chrome崩溃与javascript中java的方法调用
- SVG中的弯曲文本会使Chrome崩溃
- URI过长时Chrome崩溃
- Chrome崩溃与这个JS
- 缓存上传文件会导致chrome崩溃
- chrome崩溃,而设置弹出窗口.innerHTML = largeString
- 我如何运行一个繁重的cpu和内存HTML/javascript程序?(firefox、chrome崩溃)
- Javascript:导出大的text.csv文件会导致Google Chrome崩溃
- HTML5文件API在使用readAsDataURL加载所选图像时导致Chrome崩溃
- Openlayers 3在pointermove处理程序中使用调试器导致chrome崩溃