首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何衡量我的AngularJS应用程序的摘要周期的性能?

如何衡量我的AngularJS应用程序的摘要周期的性能?
EN

Stack Overflow用户
提问于 2014-04-15 01:27:39
回答 8查看 52K关注 0票数 84

测量angularjs消化周期持续时间的简单方法是什么?有各种方法可以分析摘要循环的性能,但是每种方法都有自己的缺点:

  • 浏览器档案器:太多的细节,没有在一个容易找到的manner
  • Batarang (AngularJS浏览器插件)中分解摘要周期:太多的开销,缓慢的刷新率,与大型应用程序爆炸。

..。一定有更好的办法?!1?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2014-04-15 01:41:06

这里有个秘密。在chrome dev工具中,运行一个cpu配置文件。停止捕获后,屏幕底部会出现一个向下的三角形,旁边是"Heavy (Bottom Up)“。单击三角形并选择"Flame Chart“。进入火焰图表模式后,您可以缩放和平移以查看摘要周期、它们所用的时间以及正在调用的确切函数。Flame Chart对于跟踪页面加载问题、ng-repeat性能问题、摘要周期问题非常有用!我真的不知道我是如何在火焰图表之前进行调试和分析的。下面是一个示例:

票数 150
EN

Stack Overflow用户

发布于 2014-04-15 01:27:39

下面的答案将告诉您$digest循环的idle性能,即当您的监视表达式都没有更改时的摘要性能。如果您的应用程序看起来很慢,即使在视图没有变化的情况下,这也很有用。对于更复杂的情况,请参阅aet的答案。

在控制台中键入以下内容:

代码语言:javascript
复制
angular.element(document).injector().invoke(function($rootScope) { 
  var a = performance.now(); 
  $rootScope.$apply(); 
  console.log(performance.now()-a); 
})

结果将给出摘要周期的持续时间,以毫秒为单位。数字越小越好。

注意:

Domi在注释中指出:如果您使用ng-app指令进行初始化,angular.element(document)将不会产生太多结果。在这种情况下,请改为获取ng-app元素。例如,通过执行angular.element('#ng-app')

您还可以尝试:

代码语言:javascript
复制
angular.element(document.querySelector('[ng-app]')).injector().invoke(function($rootScope) { 
  var a = performance.now(); 
  $rootScope.$apply(); 
  console.log(performance.now()-a); 
})
票数 42
EN

Stack Overflow用户

发布于 2015-03-12 18:09:21

下面是我发现的一个新工具,它对摘要分析很有帮助:Digest-HUD

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23066422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档