如何识别具有骨干网的内存泄漏.js
How to Identify A Memory Leak with Backbone.js
我相信我的 Backbone.js 应用程序中有内存泄漏。 在我将一些 Backbone.View 对象打印到控制台后,我得出了结论,并在稍微点击一下后看到 cid # 增加到数百个。
这个增加的 cid# 是内存泄漏的明确迹象吗? 是否有任何堆分析工具,我可以看到创建的对象,例如使用 Java 语言? Backbone的最佳实践是什么.js以确保无泄漏?
谢谢!
最佳做法是使用 listenTo
而不是 on
和 bind
。并且不要忘记在删除实例时stopListening
。
我建议使用Chrome分析器进行泄漏检测:https://developers.google.com/chrome-developer-tools/docs/javascript-memory-profiling。
您也可以尝试使用Chrome插件来调试骨干应用程序:用于调试主干应用 https://github.com/Maluen/Backbone-Debugger。
探查器是找出泄漏位置的唯一来源。但是有一种更简单的方法来看待更大的图景。转到时间线,然后在 chrome 开发工具中转到内存。阅读图表要容易得多,并且会显示内存和 DOM 创建/销毁的峰值。
在应用程序尽可能最好地管理内存之前,您不必担心清理泄漏。用户会注意到内存峰值,因为应用程序会嘶吼;他们不会注意到99.9%的泄漏。
你最好花时间学习如何在浏览器中管理内存。Backbone在管理内存方面做得不好。为了更好地使用内存:在 DOM 节点上使用对象池,在模型更改时更新 DOM 元素,将尽可能多的 javascript 排除在模板之外,只使用一次渲染函数,加载图像时要小心。有很多技术。下面是使主干应用性能良好的技术示例:https://github.com/puppybits/BackboneJS-PerfView。
- 重复应用 d3 转换导致的内存泄漏
- 如何显示在给定极限内存在的所有素数
- IE7中的blockUI插件内存泄漏25kb
- Javascript闭包-如何防止内存泄漏
- 基于订阅的nosql内存数据库
- 显示:阻止/无html元素,css.not从内存中释放
- jQuery Draggable:内存泄漏
- 元素过多的HTML内存使用情况
- 如何使用Javascript在FireFox中将html从内存动态加载到iframe中
- "检测到可能的EventEmitter内存泄漏”;使用Gulp+Watchify+Factor捆绑包
- Javascript图像数组预加载速度和从内存中删除
- 在Dojo类中递归调用setTimeout时是否存在内存泄漏
- VBA加载网页并提取内存中的数据
- 是内存泄漏
- 将处理程序留在img.onload上是内存泄漏
- new Datamap() 在调用之间保持内存的共享状态
- 骨干网讲述了如何从api中获取数据
- 具有并发sse连接的node.js内存泄漏
- HTML5内存游戏-JavaScript功能
- 如何识别具有骨干网的内存泄漏.js