在 angular 4 中切换路由时,应用变慢,节点数不断增加(在 chrome 中,而不是在 firefox 中)

When switching routes in angular 4, app gets slower, nr of nodes keeps increasing (in chrome, not in firefox)

当我多次切换路线时,应用程序变慢了。当我启用 chrome 调试器并查找 'performance + memory' 时,我看到节点的数量在增加。

看起来 dom 节点在切换路由时没有被破坏。

我的组件侦听 ngrx 存储,但取消订阅已到位,更改检测是 onPush。我使用 production = true (enableProdMode())

进行部署

在 firefox 中,我没有这个问题。可能是 chrome 中的插件保留了这些 dom 元素?当我关闭调试器时,问题仍然存在。

在chrome中安装了插件:redux, augury, ...但是即使关闭了调试器,问题还是出现了。

可以手动触发垃圾回收吗?

在我的例子中,这是因为我们在卸载视图时没有清理存储。您可能想尝试在组件销毁事件处理程序中清理一些东西。

在任何情况下,使用 chrome 分配时间线对应用程序进行分析,您可以看到未被垃圾收集的对象保留了什么。

更新: 我们在 ngdestroy 事件中注销了 rxjs observables。