1.dotTrace简介:

(1)dotTrace是一个包含了可用于.NET应用程序的性能分析器(dotTrace Performance)和内存分析器(dotTrace Memory)的套件;

(2)dotTrace Performance可帮助用户对各种.NET框架内的应用程序的性能瓶颈进行检测,能够帮助.Net开发者以最快的方式找到并移除性能上的瓶颈;

(3)dotTrace Memory 则能帮助用户发现内存泄露并能对基于.NET 4.0以上框架的应用程序进行内存占用优化。

2.各个模块的介绍:

(1)Sampling(采样模式):通过获取CLR内部一个方法开始执行和结束执行的时间差来计算的分析时间

最快的方法,它用于精确测量程序运行时间,但可能会丢失一些数据。使用此配置类型可使你快速获取应用程序的的总体性能;

(2)Tracing(追踪模式):围绕函数输入和退出

慢于Sampling的方法,但是可以准确地测量特定方法被调用的准确次数。它是通过获取CLR内部一个方法开始执行和结束执行的时间差来计算的分析时间;

(3)Line-by-line(逐行执行):通过收集代码执行的每条语句的时间,它计算出的时间更精确

通过收集代码执行的每条语句的时间,它计算出的时间更精确。该方法适用于你已经知道大概哪里出现,并要找到具体某一个出现性能问题的方法时

(4)Timeline(时间线):抽样的方式,每隔一段时间(windows下大概是10ms),会暂停所有线程,并抓取堆栈里的信息,然后计算出代码执行时间差,这个选项可能会导致一些执行很短的方法抓取不到的问题

用于执行时间轴分析;

3.获取快照

步骤:

(1)执行应用程序你想收集数据的操作(不需要记录的可以先Drop);

(2)点击Get Snapshot and Wait/Get Snapshot and Start 实现快照的获取;

Detach:将分析器与应用程序分离,保持应用运行;

Kill:杀死所有被分析的应用程序进程,并关闭该窗口;

Drop:暂停快照记录;

Start:开始快照记录。

4.分析模式

(1)Performance Viewer(使用Sampling、Tracing、Line-by-line模式)

适用于程序运行指定的功能速度慢,整体性能;

All Calls页面:全部线程运行状态均能显示,分为Main主线程以及其他分支线程;

Overview页面:提供的是有关快照,系统配置,应用程序配置和分析结果的信息;

Runtime chart:显示了分析期间应用程序的CPU活动和内存消耗。收集性能数据时所处的时间使用双箭头线表示;

Annotated Functions:一个列表展示您已经添加注释的方法。通过点击函数名可以在新标签中打开该功能;

Adjusted Functions:包含 adjusted functions列表。点击函数名在新标签中打开该功能。如果您想对所有的功能恢复原始值,可以单击Clear all;

User code hotspots:一个列表,用于显示用户代码中调用时间最长的方法;

Snapshot:展示快照位置、创建日期和时间、分析设置等信息;

Application:包含关于应用程序的配置,这取决于所选择的应用类型的信息,在当前快照中模块和方法的数量;

Environment:列出有关被分析的程序所在计算机系统的信息;

Main Thread:显示主线程的时间分配;

Other Threads:显示所有子系统线程的时间分配;

Threads Tree:查看和分析在应用程序中发生的线程活动;

Call Tree:会显示在所有线程中的所有被调用的方法。使用此视图可快速获取到应用程序实际进行的活动展示了所有线程中的所有函数调用信息。每个根节点代表由一个线程执行一个根函数。每个节点对应一个函数的调用和它对应的性能分析信息;

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

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

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

(2)Timeline Viewer(使用Timeline模式)

适用于应用程序运行中CPU消耗高、内存占用高、UI冻结。

dotTrace工具的更多相关文章

  1. dump 内存分析

    CPU 及内存占用过大,这也是我们日常调试工作中最常见的两个问题 首先附上两链接 一个样例演示 http://www.cnblogs.com/xioxu/archive/2009/09/04/1560 ...

  2. dotnet 6 在 Win7 系统证书链错误导致 HttpWebRequest 内存泄露

    本文记录我将应用迁移到 dotnet 6 之后,在 Win7 系统上,因为使用 HttpWebRequest 访问一个本地服务,此本地服务开启 https 且证书链在此 Win7 系统上错误,导致应用 ...

  3. .net程序调用检测和性能分析工具——DotTrace

    DotTrace可以对.net程序进行性能监测,对正在运行的程序和网站监控,主要界面如下: 需要将该工具安装在程序运行的服务器上. 主要用到这个视图,显示了每个方法的时间,下面是反编译出来的代码. P ...

  4. 【转载】推荐5款超实用的.NET性能分析工具

    来源:http://www.csdn.net/article/2012-11-23/2812174-5-Good-and-useful-.NET-Profilers 虽然.NET框架号称永远不会发生内 ...

  5. 11个Visual Studio代码性能分析工具

    软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...

  6. 使用Dottrace跟踪代码执行时间

    当自己程序遇到性能问题,比如IIs请求反应缓慢,客户端程序执行缓慢,怎么分析是哪里出了问题呢?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,这样让我们更清晰的看出是哪里执行时间过 ...

  7. .Net 一些好工具

    1.代码类 ReSharper :代码检查,代码补齐,(收费)(vs插件) MultiEditing: vs多行编译工具 VSCommand : Web Essentials : Css扩展支持,JS ...

  8. Dottrace跟踪代码执行时间

    当自己程序遇到性能问题,比如请求反应缓慢,怎么分析是哪里出了问题呢?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,这样让我们更清晰的看出是哪里执行时间过长,然后再分析应该怎样解决 ...

  9. dotTracePerormance 工具

    今天凌晨 阿根廷对瑞士比赛已经过去,比分是1:0  阿根廷获胜:虽说我是伪球迷,但是也挺希望梅西进入决赛.昨晚也压了下90分之内  0:0  ,结果胜出:另一场压的是美国对比利时,也是压平,就这样二串 ...

随机推荐

  1. 企业MES系统与ERP信息集成要素有哪些?

    关于要讲明企业MES系统与ERP信息集成要素有哪些,得先弄清楚他们之间的关系:从工厂的管理来说,ERP在上MES在下,ERP统领企业全局包括MES,为管理层服务,重心在于企业决策,ERP对企业宏观管理 ...

  2. kubernetes Tcp流量可视化

    kubernetes Tcp流量可视化 使用k8spacket和grafana的node graph插件可以查看kubernetes pod的TCP相关信息,如connection.bytes.和du ...

  3. Python编程之多进程(multiprocessing)详解

    引言 multiprocessing是一个用于产生多进程的包,与threading模块的API类似.multiprocessing既可以实现本地的多进程,也可以实现远程的多进程.通过使用多个子进程而非 ...

  4. OCI runtime exec failed: exec failed: unable to start container process: exec: "mongo": executable file not found in $PATH: unknown

    前言: 今天按照以往在Docker安装MongoDB的方式安装,但是到最后使用mongo命令执行mongodb命令的时候一直执行不成功,最后还是按照官网的Issues解决了. 创建并运行一个Mongo ...

  5. python-D1-typora软件和计算机入门1

    一 typora软件 typora是一款目前非常火爆文本编辑器 1.1 安装 尽量安装在非系统盘符及设置为短路径,方便后面查找 1.2 文件路径 在计算机上就是一个资源的定位坐标,表现为具体在哪里,例 ...

  6. 我的Vue之旅 07 Axios + Golang + Sqlite3 实现简单评论机制

    第三期 · 使用 Vue 3.1 + TailWind.CSS + Axios + Golang + Sqlite3 实现简单评论机制 效果图 CommentArea.vue 我们需要借助js的Dat ...

  7. 如何用Virtualbox搭建一个虚拟机

    序言 各位好啊,我是会编程的蜗牛,作为java开发者,我们肯定会接触Linux服务器,除了使用云服务搭建Linux服务器外,我们一般也可以在自己的电脑上安装虚拟机来搭建Linux服务器用于各种功能的验 ...

  8. Linux基础_6_文本编辑

    vi i #编辑 ESC+:wq #保存退出 ESC+ZZ #保存退出 ESC+:q! #不保存退出 shift+z+q #不保存退出 dd #删除所在行 ESC+u #撤销dd误操作 :/字符串 # ...

  9. 齐博x1如果把万能表单直接插入到内容中去

    很多时候,你创建了一个万能表单可能像下面这个情况,在文章中加一个链接叫别人点击填表,其实这个很不人性化,用户也容易忽略. 其实你完全可以像下面这样,把表单直接引用到文章中来.给用户更直观的感觉 那是如 ...

  10. 「浙江理工大学ACM入队200题系列」问题 F: 零基础学C/C++39——求方程的解

    本题是浙江理工大学ACM入队200题第四套中的F题 我们先来看一下这题的题面. 由于是比较靠前的题目,这里插一句.各位新ACMer朋友们,请一定要养成仔细耐心看题的习惯,尤其是要利用好输入和输出样例. ...