几个月来,我一直在使用
在
我希望知道是否有任何工具、命令或提示可以调试/跟踪/测量内存分配的位置。是否有一种方法可以访问所有事件侦听器并对它们进行测量(DOM也是如此)。欢迎提供任何内容智能内存高效技术的文章。目前,我所能想到的唯一做法是开始递归删除我愿意销毁的对象的所有属性(最后是对象本身)。
非常感谢您提供的任何建议!
PhoneGap 2.8
开发一个安卓应用程序,我在JavaScript方面使用Backbone
和jQuery
作为我的主要框架。随着我的应用程序逐渐增大,我开始注意到它的内存消耗相当大。尽管阅读了许多解释为什么PhoneGap
甚至需要大量内存才能运行的文章,但我仍然相信我可以优化内存使用方式。在
BackBone
中,我们有一个路由对象将URI映射到特定函数,该函数呈现称为视图View
对象的东西。我不仅实现了我的路由器函数来创建并呈现一个视图,而且还全局存储当前显示视图的引用。因此,在创建新视图之前,我告诉旧视图进行清理(这是递归进行的,因为视图可以包含更多的“子”视图)。目前只执行视图取消委托其事件的操作(我信任Backbone
会删除事件侦听器)。然后释放旧视图所使用的内存。但是,我发现越来越多的内存被使用了。我知道可能存在一些内存泄漏,但我无法弄清楚是什么导致内存泄漏。我怀疑旧对象由于某种原因没有被垃圾回收。我怀疑一旦我在某个容器中渲染新的HTML(DOM),也许旧的DOM
会导致内存泄漏,可能是某些事件处理程序被不必要地存储在某个地方。我希望知道是否有任何工具、命令或提示可以调试/跟踪/测量内存分配的位置。是否有一种方法可以访问所有事件侦听器并对它们进行测量(DOM也是如此)。欢迎提供任何内容智能内存高效技术的文章。目前,我所能想到的唯一做法是开始递归删除我愿意销毁的对象的所有属性(最后是对象本身)。
非常感谢您提供的任何建议!