大佬教程收集整理的这篇文章主要介绍了javascript – PhoneGap内存管理,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在BACkBone中,我们有一个Router对象,它将URI-s映射到特定的函数,这些函数为我提供了一个名为View对象的东西.我不仅实现了我的路由器功能来创建视图并渲染它,而且还存储了对当前正在显示的视图的全局引用.因此,在创建新视图之前,我会告诉旧视图进行一些清理(由于视图可以包含更多“子”视图,所以这是递归完成的).在清理时我目前告诉视图取消他的事件(我相信BACkbone删除了事件监听器).目前没有做更多的事情.呈现新视图后,全局变量将引用新视图.我相信javascript GC会释放旧视图使用的内存.唉,我不会发生这种情况 – 我越是浏览我的应用程序,内存就越耗尽.我知道有一些内存泄漏,但我无法弄清楚它是什么,需要内存.我怀疑的一件事是旧的物体由于某种原因没有被正确地收集垃圾.我怀疑,一旦我在某个容器上渲染新的html(DOM),也许旧的DOM会导致内存泄漏,也许某些事件处理程序被不必要地存储在某个地方.
我想知道的是,是否有任何工具或命令或提示如何调试/跟踪/测量分配内存的位置.有没有办法访问所有事件侦听器并以某种方式测量它们(DOM相同).任何有关智能记忆效率技术的文章也将受到赞赏.目前我唯一可以做的事情就是开始递归地删除对象的所有属性(在最终对象中)我愿意销毁.
任何建议都非常欢迎!
先感谢您.
*旧视图 – 查看导航
>取消绑定与旧视图关联的所有事件
>从dom中删除附加到视图的所有节点,以确保还删除了事件
>删除旧的视图对象,模型/集合,以便DOM上没有剩余实例
>此外,尝试尽可能多地使用原型,因为通过原型创建的函数只占用RAM中的空间一次.因此,如果再次创建/启动视图,则其关联/子函数不会再次被推入RAM
>大多数imp,确保’this’指针不会在文件之间的任何位置泄漏.我的一个工作场所经常在1.5小时的游戏后被卡住,经过一周的调试后,我们发现2个文件/对象/视图之间存在漏洞,这创建了一个循环引用并使DOM成为爆炸.
您也可以尝试使用Google Chrome的分析工具
几个有用的链接
> http://blog.socialcast.com/javascript-memory-management/
> Backbone.js Memory Management,Rising DOM Node Count
以上是大佬教程为你收集整理的javascript – PhoneGap内存管理全部内容,希望文章能够帮你解决javascript – PhoneGap内存管理所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。