Dottrace 10.0.2 使用心得
开发环境vs2015
软件:JetBrains dotTrace 10.0.2
刚开始不知道怎么下手,多看了一会还有一位仁兄的解释.算是对某个功能小有入门了. 当前会查看某个方法在抓取快照时间它的执行时间了.今天就在此把这个方法介绍一下
引言:
当自己程序遇到性能问题,比如IIs请求反应缓慢,客户端程序执行缓慢,怎么分析是哪里出了问题呢?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,这样让我们更清晰的看出是哪里执行时间过长,然后再分析应该怎样解决。Dottrace是由JetBrainshttp://www.jetbrains.com/ 公司开发的一款产品,它分dottrace Performance和dottrace Memory 两个工具,dottrace Performance用来分析代码性能,比如函数执行时间,调用次数,消耗时间比率等,dottrace Memory一般用来分析内存占用情况。dottrace可以跟踪.net编写的:应用程序,IIS挂接的程序,windows服务,silverlight,WCF服务程序等。还可以把跟踪的文件,以快照的方式保存下来,保存为dtp后缀的文件。跟踪后的结果,如果能找到对应用户的代码信息,还可以直接查看对应的源代码,并选择在VS里直接编辑该方法对应的文件。
复制别的博客的内容,今天懒得改了,版本不一样大体都差不多.关键的原理就在下边.
如上图,Application、Arguments分别对应可执行程序的路径和需要的参数。
profiling type 有三种类型:
- Tracing:它是通过获取CLR内部一个方法开始执行和结束执行的时间差来计算的分析时间。
- Line-by-line:它是通过收集代码执行的每条语句的时间来,它计算出的时间更精确。
- Sampling:它是抽样的方式,每隔一段时间(windows下大概是10ms),会暂停所有线程,并抓取堆栈里的信息,然后计算出代码执行时间差,这个选项可能会导致一些执行很短的方法抓取不到的问题。
Measure的三种类型:
- Wall time(performance counter): 它是通过Performance Counter API来收集的信息,一般操作系统和各个硬件设备都提供性能计数的API供程序调用。
- Thread time:它只支持Sampling的分析方式,它通过一个固定的线程来抓取堆栈信息计算时间,并且它只计算自己内部程序执行的时间,不管等待其他IO的时间。
- Wall time(CPU instruction):它是通过读取TSC processor register里记录的方法进入和退出时间差的方式来计算的。
根据上面的选项方式,一般我们要想完整分析自己程序的执行时间,建议可以采用Line-byline(或Tracing)和Wall time(CPU instruction)或Wall time(performance counter)的方式,因为如果用抽样和Thread time的搭配方式,会只计算自己内部时间,不能计算自己程序和外部程序交互的时间,会让自己分析性能时产生误导。
一下是自己的心得:
数据快照抓取完毕后,进入all calls 此处应该是方法调用次数吧.
点工具栏上边的搜索框,输入你想查询的自己编写的方法.就能查出此方法运行占用的时间了. 如图:
main后半边的 ms 是整个运行的时间 下边是具体哪个部分占用的时间长,个人理解.
搜索后进入另一个界面
这是个写txt 的方法, 上边有总的时间, 写的时间,关的时间,close 用了5ms
打开那个上边12ms的目录
竟然createfile 方法占的最多
转载于:https://www.cnblogs.com/zuochanzi/p/6782769.html
Dottrace 10.0.2 使用心得相关推荐
- Kafka-0.10.0.0 集群高可靠实验
记录实验过程之前,先谈一谈学习Kafka过程的心得. 大数据包含一个生态,需众多组件配合使用.逐个学习各个组件非常费力,想摸索出一种快速入门的方法,可能是每个学习大数据的同学都想要的. 我的方法是,每 ...
- 执一不二 跬步千里-王子密码10月份月会心得(四)
执一不二 跬步千里-王子密码10月份月会心得(四) 2010年11月08日 十月份公司部分心得 闫宁宁:金秋十月过去了,经过大家的共同努力,不但完成了个人目标,也在最后一天,完成了我们的总目标.转眼来 ...
- TensorFlow 版本 1.10.0 发布
我们非常开心的跟大家分享一条新消息!TensorFlow 版本 1.10.0 已经正式发布啦!请阅读本文,及时了解一些主要特点和功能改进,以及一些突破性变化! ▌重大改变 TensorFlow 1.1 ...
- Ubuntu 16.04源码编译安装nginx 1.10.0
一.下载相关的依赖库 pcre 下载地址 http://120.52.73.43/jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.t ...
- ubuntu16.04 cuda9.0 cudnn Tensorflow GPU 1.10.0
Ubuntu14.04升级到Ubuntu16.04 查看目前版本 lsb_release -a apt-get update && apt-get dist-upgrade reboo ...
- Ubuntu18.04+RTX 2080Ti+CUDA 10.0 +cuDNN+PyTorch搭建深度学习环境
SSH无密码登陆 安装SSH Server Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server: sudo apt-get install openssh-serv ...
- PostgreSQL 10.0 preview 功能增强 - 后台运行(pg_background)
标签 PostgreSQL , 10.0 , 后台运行 , pg_background_launch , pg_background_result , pg_background_detach , p ...
- CentOS7.0下编译安装Nginx 1.10.0
2019独角兽企业重金招聘Python工程师标准>>> 准备工作 安装编译工具.依赖包 $ yum -y install gcc gcc-c++ autoconf automake ...
- 部署Symantec Antivirus 10.0网络防毒服务器之六
七.部署分发SYMANTEC客户端程序 客户端程序远程分发. 将要部署SYMANTEC客户端程序的计算机添加到右边. 局域网客户端全部安装完毕. 第一次那就手动更新病毒库吧,HOHO HOHO,服务器 ...
最新文章
- android arcgis 绘制圆_ArcGIS For Android 定位绘图工具 [中心点,误差圆]
- html里的value什么含义,HTML input value属性表示什么
- js+dom开发第十六天
- 调整home和根分区大小
- layout android name,android中的android:name属性
- STM8S103重映射
- java微信分享朋友圈_Java实现微信公众平台朋友圈分享功能详细代码
- 7-11 输出大写英文字母 (15 分)
- 赋值具有的非单一 rhs 维度多于非单一下标数怎么办
- excel文件打不开如何修复
- 什么是多进程-多线程-多协程 ----进程和多进程
- 钜泉光电2018年 IC校招笔试题目
- 地平线:面向规模化量产的智能驾驶系统和软件开发
- [翻译学习]MonoSLAM: Real-Time Single Camera SLAM
- Python使用pngquant实现批量压缩图片
- 破解组态王在wince系统工业平板电脑中的安装应用
- 基于C语⾔的中间代码⽣成
- 老男孩教育 | 0基础学习三个月的心得分享!
- JSP宿舍寝室管理系统
- 基于两相静止坐标系上的状态方程的感应电动机起动动态计算matlab程序