CLR Profiler 性能分析工具

CLR Profiler 有两个版本,分别用于CLR1.1 和 CLR2.0,至于CLR4试了一些也可以,但不知道是否完全兼容不,分别2003,和2005 由微软CLR性能组发布的。几百k很小巧的工具,有给出源代码,核心部分用C++写的,UI使用C#编写。CLR Profiler使用注入式测试,他会记录每一次的内存分配和方法调用,因而严重的影响程序的执行速度,会慢10~100倍的样子,而且无法直接附加到当前运行的进程。 
     CLRProfiler 是个侧重于跟踪分析GC heap的运行情况的的工具。
      使用它你可以知道:
1.那个方法分配了那些类型的对象?
2.那些对象存活下来了?
3.在heap都有些什么?
4.是什么保持对象的存活?
5.在调用统计中可以得知方法被调用的的频率?
6.测试应用程序,asp.net(这个我没整有成功),和service
7.抓dump
8.提供命令行和api(没试过)

也有致命不足:
1.减缓运行速度,结果不能表明程序的速度
2.不能附加到进程
3.他因为记录了很多内容,如果记录了很长的时间,分析的过程将会很久
也就是这个工具,只好用来跑跑自己测试代码,其他地方只能Windbg了。

先给张运行截图,在下面说面各种功能。

这是工具的祝界面,start application 选择需要运行的程序,可以选择是否跟踪内存分配和方法调用。当关闭应用程序(可以自动或手动),Profiler自动开始整理结果。显示如下:

在这里显示本次统计中的汇总。

Clr Profiler有个抓Dump的功能,当然是及时性的,在程序运行时点击show head now 即可抓取Dump同时很快的统计处分析结果。

如下:

在统计界面上有很多查看详情的按钮:

heap statistic 堆栈对象信息统计

Allocated :应用程序整个启动周期内分配的对象,按照对象大小排列,不同的颜色代码不同的对象,这在右侧会列出,没有截出来,下面的也是这样:

Relocated:重新移动过的对象,GC之后内存整理移动过的对象:

Finally head 最终堆栈内对象信息:

还有object finalized 和 critical object finalized,表示被终止化器终止的对象,后面那个是特殊标记过的终止对象,图相差不大就没有截取了。

接下来的就是垃圾回收统计

这个归总了回收次数

TimeLine:这是详细图(貌似这个得较强的显卡渲染,在公司那机器就出不来)

图中可以清晰的看出各次回收时间和前后内存占用量

GC Handle 统计GC句柄数

具体细节如下:

其他

summery界面没有显示所有的功能:

在View下面可以找到这些:

在所有的柱形图上右键有如下菜单,show who allocated Is a nice one,通过他可以追踪对象是谁分配的。

assmebly graph

class graph

call tree 这个功能记录每个方法的调用次数,感觉还是vs自带分析好些,那个还能统计时间占用:)

和进哥说起这个CLR Profiler,说回去写篇使用说明发出来。终于写好了,写篇还真花时间,这回真的理解live writer的好用,如果在网页里面编辑真要死人了。

这是对CLR Profiler介绍性的文章,具体应用场景在看完应该也能想到。限于篇幅,很多内容没有写出来,在卸载clr profiler中会带有详细的说明,100多页,真的很详细,有了它就没必要再去查什么资料了。建议不明白的还是看看那个为好:)

CLR Profiler 性能分析工具的更多相关文章

  1. CLR Profiler 性能分析工具 (转)

    原文地址:http://www.cnblogs.com/kevinlzf/archive/2010/11/12/1876066.html 下载地址:http://www.microsoft.com/e ...

  2. profiler跟踪事件存为表之后性能分析工具

    使用profiler建立跟踪,将跟踪结果存到表中,使用下面存储过程执行 exec temp_profiler 'tra_tablename'对表数据进行处理归类,然后进行性能分析 1.先建存储过程 2 ...

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

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

  4. .NET : 使用代码性能分析工具

    NET : CLR Profiler的使用 经常讲课的时候会提到值类型和引用类型,也会提到如何查看它们的大小.多次被朋友问到,如何真的想要知道到底每个方法分配了多少内存之类的问题,其实这可以通过CLR ...

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

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

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

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

  7. Java 性能分析工具 , 第 2 部分:Java 内置监控工具

    引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...

  8. Java 性能分析工具

    如何利用 JConsole观察分析Java程序的运行,进行排错调优 http://jiajun.iteye.com/blog/810150 如何使用JVisualVM进行性能分析 http://jia ...

  9. Hi,腾讯WeTest联合Unity官方打造的性能分析工具UPA,今日全新发布!

    早在2016年ChinaJoy开始,WeTest曾受邀出席过Unity中国的线下性能场的活动,介绍我们的自动化框架和王者荣耀的故事.当时的活动很成功,期间我们收到了不少Unity开发者的好评,也为我们 ...

随机推荐

  1. jQuery Easy UI Accordion(可伸缩的面板)包

    Accordion 可伸缩的面板组件.基于panel,示为以下的比率: <!doctype html> <html lang="en"> <head& ...

  2. REST API出错响应的设计(转)

    REST API应用很多,一方面提供公共API的平台越来越多,比如微博.微信等:一方面移动应用盛行,为Web端.Android端.IOS端.PC端,搭建一个统一的后台,以REST API的形式提供服务 ...

  3. Hadoop Streaming 得到mapreduce_map_input_file中遇到的问题的版本号

    1.Hadoop Streaming,您可以在任务获得hadoop设置环境变量, 例如,使用awk书面map从而能获得:filename = ENVIRON["mapreduce_map_i ...

  4. react.js 从零开始(四)React 属性和状态详解

    属性的含义和用法: 1.属性的含义. props=properties 属性:一个事物的性质和关系. 属性往往与生俱来,不可以修改. 2. 属性的用法. <Helloworld name=??? ...

  5. Android批量图片加载经典系列——使用二级缓存、异步网络负载形象

    一.问题描写叙述 Android应用中常常涉及从网络中载入大量图片,为提升载入速度和效率,降低网络流量都会採用二级缓存和异步载入机制.所谓二级缓存就是通过先从内存中获取.再从文件里获取,最后才会訪问网 ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框 ...

  7. 汉字转拼音 oracle方式 [转]

    oracle汉字转拼音(获得全拼/拼音首字母/拼音截取等)   效果如下: Oracle 字符集 GBK 没有问题 , UTF -8 需要修改一下   Sql代码   --oracle汉字转拼音 PA ...

  8. Instruments-Automation: 通过命令行执行测试用例

    为了实现该脚本的自己主动定时执行.我们需要开始在命令行和脚本,详细代码如下所示的: instruments -t /Applications/Xcode.app/Contents/Applicatio ...

  9. AspNet.WebAPI.OData.ODataPQ

    AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务 AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔) AspNet. ...

  10. Web项目

    Eclipse部署Web项目(图文讲解)   讲解是在linux下完成的,但对windows系统,操作也是一样的,不要被吓到了 1.下载Eclipse