移动webkit内存消耗

Ole*_*ndr 8 javascript android webkit ios

我们正在为移动设备(Android + iOS)开发HTML5应用程序.但是最大的问题是内存消耗 - 使用的内存量上升得非常快,应用程序变得迟钝.

什么是与HTML(JavaScript)应用程序中的内存泄漏作斗争的最佳实践,提示,工具,解决方案等?

PS我们仅针对Webkit浏览器

Jac*_*ard 7

最近有关于这个主题的一些非常好的文章.有一些非常令人惊讶的对象创建源,除非你对它进行了调整,否则它们并没有引起你的注意.通常,问题不在于内存使用,实际上是收集内存所需的垃圾收集周期,应用程序正在慢慢泄漏.

这篇文章是我最近阅读过的最好的主题:http://www.scirra.com/blog/76/how-to-write-low-garbage-real-time-javascript

至于打击/诊断问题的工具,Google Chrome的Speedtracer会浮现在脑海中.当然,调整Chrome并不能保证所有浏览器都能进行调整,但是导致Chrome创建对象的大部分内容都是JS规范所共有的,因为它是由所有浏览器实现的.

需要考虑的一件重要事情是RAM的使用和视频RAM的使用并不相同.最佳做法是确定UI的哪些部分是硬件加速的,并确保它们很小(即一次性适合屏幕).如果您的屏幕硬件加速了很大的滚动部分,您将获得GPU撕裂/平铺和滞后滚动.您可以使用iOS模拟器部分检测到这一点.本文简要介绍了这个想法:http://devinsheaven.com/turn-your-iphone-wacky-and-make-your-iphone-application-better/

最后,JavaScript中存在许多常见的内存泄漏模式,每个工程师都会不时遇到这种模式.IBM有一个很好的列表.我不能发布超过两个链接,因为我是一个n00b,但你可以谷歌"常见的JavaScript内存泄漏",它可能是第一个结果.