为了避免内存泄漏,我如何专门检查一个针对垃圾Observable的Angular应用程序(那些尚未取消订阅的应用程序)?
答案 0 :(得分:3)
我不认为这是可能的 - 这种机制需要所有Observable的中央存储 - 这反过来又会造成内存泄漏的巨大风险。
建议#1
尝试在项目中搜索.subscribe
的所有用法,然后检查每个结果是否包含在某些时候取消订阅的机制。任何手册.subscribe
都应该有一些取消订阅的机制。
建议#2
使用DevTools创建内存/堆快照随着时间的推移,如果内存和对象数都没有随着时间的推移而增加,在使用应用程序时,您可以相当确定内存泄漏对您来说不是问题应用。 我不会详细介绍如何在这里使用DevTools,因为那将是"稍微"超出范围,但请查看此链接(适用于Chrome DevTools):https://developers.google.com/web/tools/chrome-devtools/memory-problems/ (如果链接在任何时候都不可用,只需谷歌"如何使用chrome开发者工具堆快照")