【DotTrace】界面详解(一)

1、安装

【DotTrace】界面详解(一)_第1张图片

2、主界面配置和运行分析会话

【DotTrace】界面详解(一)_第2张图片
Profiler Options:

  • Sampling:通过获取CLR内部一个方法开始执行和结束执行的时间差来计算的分析时间
    • 最快的方法。它用于精确测量程序运行时间,但可能会丢失一些数据。使用此配置类型可使你快速获取应用程序的的总体性能
  • Tracing:围绕函数输入和退出
    • 慢于Sampling的方法,但是可以准确地测量特定方法被调用的准确次数。它是通过获取CLR内部一个方法开始执行和结束执行的时间差来计算的分析时间
  • Line-by-line:通过收集代码执行的每条语句的时间来,它计算出的时间更精确
    • 通过收集代码执行的每条语句的时间来,它计算出的时间更精确。该方法适用于你已经知道大概哪里出现,并要找到具体某一个出现性能问题的方法时
  • Timeline:抽样的方式,每隔一段时间(windows下大概是10ms),会暂停所有线程,并抓取堆栈里的信息,然后计算出代码执行时间差,这个选项可能会导致一些执行很短的方法抓取不到的问题
    • 用于执行时间轴分析

3、获取快照

这里写图片描述
1)执行应用程序你想收集数据的操作
2)点击Get Snapshot and Wait 实现快照的获取

  • Detach All:将分析器与应用程序分离,保持应用运行
  • Kill All:杀死所有被分析的应用程序进程,并关闭该窗口

4、分析快照

分析模式:

模式一:Performance Viewer(使用Sampling、Tracing、Line-by-line模式 )
适用于程序运行指定的功能速度慢,整体性能

【DotTrace】界面详解(一)_第3张图片

  • Overview:显示快照概述信息
    【DotTrace】界面详解(一)_第4张图片
    【DotTrace】界面详解(一)_第5张图片
    提供的是有关快照,系统配置,应用程序配置和分析结果的信息

    • Runtime chart:显示了分析期间应用程序的CPU活动和内存消耗。收集性能数据时所处的时间使用双箭头线表示
    • Annotated Functions:一个列表展示您已经添加注释的方法。通过点击函数名可以在新标签中打开该功能
    • Adjusted Functions:包含 adjusted functions列表。点击函数名在新标签中打开该功能。如果您想对所有的功能恢复原始值,可以单击Clear all
    • User code hotspots:一个列表,用于显示用户代码中调用时间最长的方法
    • Snapshot:展示快照位置、创建日期和时间、分析设置等信息
    • Application:包含关于应用程序的配置,这取决于所选择的应用类型的信息,在当前快照中模块和方法的数量
    • Environment:列出有关被分析的程序所在计算机系统的信息。
    • Main Thread:显示主线程的时间分配。
    • Other Threads:显示所有子系统线程的时间分配
  • Threads Tree:允许您查看和分析在应用程序中发生的线程活动

【DotTrace】界面详解(一)_第6张图片
提供的是应用程序中的所有线程。由他们的执行时间进行排序。每个线程由它的名称或ID进行了标识。主线程标有这里写图片描述图标。终结器线程标有这里写图片描述图标。其余线程都为工作线程

 - 99.44%:方法执行时间所占线程运行时间的百分比
 - Main:方法短名称
 - 22759*ms:方法及子方法执行的总时间
 - 1 call:方法在堆栈上的调用次数
 - Cvte.EasiNote.Shell.App.Main:被调用方法的全称
  • Call Tree:会显示在所有线程中的所有被调用的方法。使用此视图可快速获取到应用程序实际进行的活动
    展示了所有线程中的所有函数调用信息。每个根节点代表由一个线程执行一个根函数。每个节点对应一个函数的调用和它对应的性能分析信息

  • Plain List:显示了一个简单的方法列表。让您彻底分析一个特定的方法

  • Hot Spots:这个视图只将执行时间最长的方法进行列表显示。使用Hot Spots,你只需一眼就可找到执行时间最长的方法

  • Source View:用于展示源码的视图。请注意,无论何时您选择了一个方法, Performance Viewer会向您显示该方法的实际代码。如果没有源代码可用, Performance Viewer将尝试对程序进行反向编译,生成源码

模式二:Timeline Viewer(使用Timeline模式)
适用于应用程序运行中CPU消耗高、内存占用高、UI冻结

你可能感兴趣的:(性能测试)