网站改版后的内容,冠县网站建设电话,做家乡的网站,做网站 需要什么商标最近关注程序性能的优化方面#xff0c;本想写篇CLRProfiler的简要文档#xff0c;看到pengpeng已写好#xff0c;那就转载好了#xff0c;偷偷懒。
.Net的尽管拥有非常强大调试器#xff0c;但也有很多局限性#xff0c;只限于CLR之上#xff0c;无法得到CLR的具体细节…最近关注程序性能的优化方面本想写篇CLRProfiler的简要文档看到pengpeng已写好那就转载好了偷偷懒。
.Net的尽管拥有非常强大调试器但也有很多局限性只限于CLR之上无法得到CLR的具体细节而且在多线程上就显得很无力。 CLR在运行中隐藏了很多细节像.net语法糖上的一些细节可以通过reflector得知.Net 很多api在不同的版本实现细节也有较大的改动CLR的运行也可以通过一些工具得到。也许你会问为什么需要知道这些细节呢要知道.net也是有很多bug而且.Net中的BCL多数都是在CLR中实现的通过他我们可以很清楚找到我们的代码是怎么运行的快速的找到代码的运行瓶颈。 这类工具有很多如vs自带的性能分析、Windbg、clr profiler。 vs自带的性能分析可以很快的找到瓶颈代码而且支持多线程。Windbg就更彪悍了不过使用起来就比较费劲搭配sos可以在运行时查看应用程序的一些状态但没有另外的两种详细。这里主要要说的是CLR Profile了他检测结果最为详细不过致命检测会影响应用程序的运行速度而无法准确或阿尔时间上的性能测试好像使用的人不多。有空写写windbg 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.他因为记录了很多内容如果记录了很长的时间分析的过程将会很久 4.也就是这个东西只好用在测试环境生产环境就得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多页真的很详细有了它就没必要再去查什么资料了。建议不明白的还是看看那个为好
转自http://www.cnblogs.com/lulu/archive/2010/08/21/1805444.html