zoukankan      html  css  js  c++  java
  • dotTrace--.Net性能分析

    dotTrace分析两种方式:性能和时间线。

    1.分析器选项

         (1)抽样

         最快的方式。准确评估出调用时间,但不获取调用数。这种分析方式可以快速获取应用的总体性能。

      (2)跟踪

        比抽样慢,因此不能准确评估出调用时间,但可以准确获取方法的调用次数。当抽样数据不满足需求时,使用这个方法,例如,评估算法的复杂度

      (3)单步

        最慢的方式-评估每行代码。单行分析只有在知道导致问题的函数并想单行分析它时有用。

     (4)时间线

        时间线分析。

    由此可见,如果仅仅需要评估应用的总体性能,应该选择抽样方法。

    2.时间线分析

      (1)找出高CPU占用

      (2)找出最慢的方法并查看它的所有调用树

      (3)快速理解方法内部发生了什么

        从版本2017.1开始,时间线视图提供超有用的子系统特征。子系统的目的是快速回答“我的app再做什么鬼”的问题,也有更详细的问题比如:是什么引起的性能下降或为什么消耗这么多内存?

    性能下降是否和文件操作,JIT,字符串处理有关?或者仅仅是一些过度的工作有关?

      (4)查看方法的父类调用

      (5)通过方法名称找到方法

      (6)找到UI冻结的原因

      (7)找到内存占用过大的原因

      (8)追踪http请求 

    demo1:分析引起UI冻结的原因

    demo2:优化App性能和内存问题(应用占用不再使用的内存)

      垃圾回收机制有代价。首先,垃圾回收需要占用一些CPU时间。例如,它的一个阶段是检测无用对象,一个涉及建立对象引用图的复杂操作。其次,为了执行Gen0和Gen1,垃圾回收器必须获取专有权限访问运行堆的一部分。这样,反过来,挂起所有的运行线程除了触发垃圾回收的那个。由于用户接口线程也被挂起,用户在这些时刻可能体验到UI冻结。

    这是为什么你需要优化应用来减少内存过载并最小化GC对应用响应的影响。

    参考文献:dotTrace官方文档

  • 相关阅读:
    转载
    转载
    HDU
    HDU
    Hdu
    转载
    HDU
    UVa
    HDU
    POJ
  • 原文地址:https://www.cnblogs.com/mbaymax/p/13253403.html
Copyright © 2011-2022 走看看