Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 移动webkit内存消耗_Javascript_Android_Ios_Webkit - Fatal编程技术网

Javascript 移动webkit内存消耗

Javascript 移动webkit内存消耗,javascript,android,ios,webkit,Javascript,Android,Ios,Webkit,我们正在为移动设备(Android+iOS)开发HTML5应用程序。但最大的问题是内存消耗——使用的内存量增长非常快,应用程序变得滞后 在HTML(JavaScript)应用程序中解决内存泄漏的最佳实践、提示、工具、解决方案等是什么 p.S.我们只针对Webkit浏览器最近有一些关于这个主题的非常好的文章。有一些真正令人惊讶的对象创建来源,除非你对此进行了调整,否则不会真正引起你的注意。通常,问题不在于内存使用,而在于收集应用程序缓慢泄漏的内存所需的垃圾收集周期 这篇文章是我最近读过的最好的一篇

我们正在为移动设备(Android+iOS)开发HTML5应用程序。但最大的问题是内存消耗——使用的内存量增长非常快,应用程序变得滞后

在HTML(JavaScript)应用程序中解决内存泄漏的最佳实践、提示、工具、解决方案等是什么


p.S.我们只针对Webkit浏览器

最近有一些关于这个主题的非常好的文章。有一些真正令人惊讶的对象创建来源,除非你对此进行了调整,否则不会真正引起你的注意。通常,问题不在于内存使用,而在于收集应用程序缓慢泄漏的内存所需的垃圾收集周期

这篇文章是我最近读过的最好的一篇:

至于解决/诊断问题的工具,谷歌Chrome的Speedtracer浮现在脑海中。当然,Chrome的调优并不能保证对所有浏览器都进行调优,但是在Chrome中创建对象的大多数事情对于JS规范来说是通用的,因为它是由所有浏览器实现的

<> P>一个重要的考虑是RAM使用和视频RAM使用是不一样的。一个最佳实践是确定用户界面的哪些部分正在进行硬件加速,并确保它们很小(即一次适应屏幕)。如果你有大量的屏幕硬件加速滚动部分,你会得到GPU撕裂/平铺和拉格滚动。您可以使用iOS模拟器部分检测到这一点。本文简要介绍了这一想法:


最后,JavaScript中有很多非常常见的内存泄漏模式,每个工程师都会不时遇到这些模式。IBM有一个很好的列表。我不能发布两个以上的链接,因为我是n00b,但你可以在谷歌上搜索“常见JavaScript内存泄漏”,这可能是第一个结果。

Chrome中其他一些有用的诊断工具是任务管理器、时间线面板和堆分析器

浏览器-铬合金金丝雀(27.0.1447.3金丝雀)

  • 任务管理器:转到工具-->任务管理器//右键单击标题选项卡并选中“JavaScript内存”

  • 时间线选项卡:工具-->开发人员工具-->时间线//单击记录,进行一些交互,然后停止记录

  • 堆探查器:工具-->开发人员工具-->配置文件//单击“获取堆快照”

  • 远程调试

  • 深度内存分析器

“3快照”技术//演示文稿“消除Gmail中的内存泄漏”