【问题标题】:Memory Issue in angular Js Application角度 Js 应用程序中的内存问题
【发布时间】:2017-02-03 20:10:15
【问题描述】:

我在 Angular js 应用程序中遇到内存泄漏问题。我已经尝试了所有可能的解决方案,例如配置文件工具、时间线和一些其他与 Angular js 相关的工具。 我到现在为止的工作 -

个人资料工具

在分析工具中,JS 堆不断增加,但无法找到原因。

时间轴

这表明可能存在内存泄漏,但我仍然不知道如何调试和修复它。

任务管理器

它不断增加内存大小。有时它会收集垃圾,但不是很明显。

请让我知道如何调试并找出可能的问题。如果您遇到同样的问题,请分享您的经验。

【问题讨论】:

  • 能贴出相关代码吗?或任何 plunker wud 都很棒!沿着那个你可以做时间线分析并扩展事件树日志并检查哪个函数正在消耗内存
  • 除了@Angular_10 上面所说的之外,您还可以尝试使用 Batarang 之类的工具来查看发生内存泄漏时哪些变量在范围内。这在 AngularJS 中真的很常见
  • 尽量少用 $scope.$apply()。
  • 你能写出你是如何创建 Person 实例的吗?你用计时器吗?你也在使用 ngRoute 模块吗?最后但并非最不重要的一点是,您是否对元素进行了复杂的事件监听?
  • @Qaddura 是的,我们正在使用 ng 状态路由器。

标签: javascript angularjs performance memory-leaks


【解决方案1】:

当有很多绑定时,AngularJS 会出现内存泄漏。现在 angularJS 的限制是它有 2-way binding。因此,如果您更改模型中的任何值,则会触发 $diget()、$watch() 循环的视图。因此,这取决于您的应用程序消耗内存的大小。

我建议尝试几个步骤:

  • 使用角度batarang计算角度范围对象
  • 作用域 $destroy() 方法释放内存
  • 尽量减少页面中消耗的 JS。使用任何需要的东西

在我的应用程序中,我减少了观察者,生活变得轻松。

【讨论】:

    猜你喜欢
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 2012-01-06
    相关资源
    最近更新 更多