开发环境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 使用心得相关推荐

  1. Kafka-0.10.0.0 集群高可靠实验

    记录实验过程之前,先谈一谈学习Kafka过程的心得. 大数据包含一个生态,需众多组件配合使用.逐个学习各个组件非常费力,想摸索出一种快速入门的方法,可能是每个学习大数据的同学都想要的. 我的方法是,每 ...

  2. 执一不二 跬步千里-王子密码10月份月会心得(四)

    执一不二 跬步千里-王子密码10月份月会心得(四) 2010年11月08日 十月份公司部分心得 闫宁宁:金秋十月过去了,经过大家的共同努力,不但完成了个人目标,也在最后一天,完成了我们的总目标.转眼来 ...

  3. TensorFlow 版本 1.10.0 发布

    我们非常开心的跟大家分享一条新消息!TensorFlow 版本 1.10.0 已经正式发布啦!请阅读本文,及时了解一些主要特点和功能改进,以及一些突破性变化! ▌重大改变 TensorFlow 1.1 ...

  4. 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 ...

  5. 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 ...

  6. Ubuntu18.04+RTX 2080Ti+CUDA 10.0 +cuDNN+PyTorch搭建深度学习环境

    SSH无密码登陆 安装SSH Server Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server: sudo apt-get install openssh-serv ...

  7. PostgreSQL 10.0 preview 功能增强 - 后台运行(pg_background)

    标签 PostgreSQL , 10.0 , 后台运行 , pg_background_launch , pg_background_result , pg_background_detach , p ...

  8. CentOS7.0下编译安装Nginx 1.10.0

    2019独角兽企业重金招聘Python工程师标准>>> 准备工作 安装编译工具.依赖包 $ yum -y install gcc gcc-c++ autoconf automake ...

  9. 部署Symantec Antivirus 10.0网络防毒服务器之六

    七.部署分发SYMANTEC客户端程序 客户端程序远程分发. 将要部署SYMANTEC客户端程序的计算机添加到右边. 局域网客户端全部安装完毕. 第一次那就手动更新病毒库吧,HOHO HOHO,服务器 ...

最新文章

  1. android arcgis 绘制圆_ArcGIS For Android 定位绘图工具 [中心点,误差圆]
  2. html里的value什么含义,HTML input value属性表示什么
  3. js+dom开发第十六天
  4. 调整home和根分区大小
  5. layout android name,android中的android:name属性
  6. STM8S103重映射
  7. java微信分享朋友圈_Java实现微信公众平台朋友圈分享功能详细代码
  8. 7-11 输出大写英文字母 (15 分)
  9. 赋值具有的非单一 rhs 维度多于非单一下标数怎么办
  10. excel文件打不开如何修复
  11. 什么是多进程-多线程-多协程 ----进程和多进程
  12. 钜泉光电2018年 IC校招笔试题目
  13. 地平线:面向规模化量产的智能驾驶系统和软件开发
  14. [翻译学习]MonoSLAM: Real-Time Single Camera SLAM
  15. Python使用pngquant实现批量压缩图片
  16. 破解组态王在wince系统工业平板电脑中的安装应用
  17. 基于C语⾔的中间代码⽣成
  18. 老男孩教育 | 0基础学习三个月的心得分享!
  19. JSP宿舍寝室管理系统
  20. 基于两相静止坐标系上的状态方程的感应电动机起动动态计算matlab程序

热门文章

  1. Jsp实现在线影院售票系统
  2. Protocol Buffer序列化协议及应用
  3. c语言学习笔记-if语句块一定要加分号
  4. Bootstrap-table组合表头
  5. 一系列视频教程 收藏
  6. Vue.js之UI组件elementUI——MintUI
  7. Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)
  8. HDU 1241Oil Deposits---(dfs)
  9. print、println的区别
  10. 获取文件名称的两个函数