软件测试工具中VSTS性能分析工具Profiler的介绍
在MSDN文档中,对于VSTS中的Development Edition的介绍主要分两大块,第一是“编写高质量的代码”,第二就是“使用分析工具对应用程序性能进行分析”。在VSTS里面有一个工具,叫Profiler,这个工具可以帮助研发人员在程序运行的过程中收集相关的数据,并且对之进行分析,从而达到帮助实现性能调优的目的。本文讲述如何在使用命令行工具来对ASP.NET程序进行性能测试相关数据的收集。
在VSTS的Profiler中,有两种(VSTS2010好像有5种了)Profiling的方法,第一种是采样(Sampling),第二种是检测(Instrumentation)。对于采样模式,它的工作原理是Profiler定期中断CPU并且收集函数的调用堆栈信息。在网上找到一个图,对于采样工作方式的描述非常清晰:
对于检测模式,他的工作原理是用VSInstr程序在原始的代码中插入一些用于计算时间的代码,例如A函数调用B函数,那么在调用B函数的前后都会被插入用于计算时间的代码,具体可以看下图:
下面我自己写了一个小的Sample类,然后把编译好的代码用Reflector来查看,很容易地就能看出区别。第一个图是没有经过VSInstr处理的原始代码: