我相信我的 Backbone.js 应用程序中存在内存泄漏。在我将一些 Backbone.View 对象打印到控制台后,我得出了这一结论,只需单击一下,就可以看到 cid # 增加到数百个。
这增加 cid# 是否是内存泄漏的明确迹象?是否有任何堆分析工具我可以看到创建的对象,例如使用 Java 语言?使用 Backbone.js 确保没有泄漏的最佳实践是什么?
谢谢!
我相信我的 Backbone.js 应用程序中存在内存泄漏。在我将一些 Backbone.View 对象打印到控制台后,我得出了这一结论,只需单击一下,就可以看到 cid # 增加到数百个。
这增加 cid# 是否是内存泄漏的明确迹象?是否有任何堆分析工具我可以看到创建的对象,例如使用 Java 语言?使用 Backbone.js 确保没有泄漏的最佳实践是什么?
谢谢!
探查器是找出泄漏位置的唯一来源。但是有一种更简单的方法可以看到更大的图景。转到时间线,然后在 chrome 开发工具中进行内存。阅读图表要容易得多,并且会显示内存和 DOM 创建/销毁的峰值。
在您的应用程序尽可能最好地管理内存之前,您不应该担心清理泄漏。用户会注意到内存峰值,因为应用程序会突突;他们不会注意到 99.9% 的泄漏。
您最好花时间学习如何在浏览器中管理内存。Backbone 在管理内存方面做得不好。为了更好地使用内存:在 DOM 节点上使用对象池,在模型更改时更新 DOM 元素,将尽可能多的 javascript 保留在模板之外,只使用一次渲染函数,加载图像时要小心。有很多技巧。这是使您成为骨干应用程序性能的技术示例:https ://github.com/puppybits/BackboneJS-PerfView 。