进化的测试

关注软件测试,白盒测试,自动化测试,性能测试

Entries Tagged ‘性能测试’

用VSTS Profiler发现性能问题并且进行优化实例

上一篇文章介绍了如何使用VSTS的Profiler,今天想分享一下对于一个ASP.NET应用程序,用Profiler找到性能问题并且对之进行优化。 由于ASP.NET程序运行在一个硕大的框架上,所以一般用Sample模式收集到的数据,对发现性能问题帮助不大,以下是一个用Sample模式收集的结果: 从这个报告中我们可以看到,前5个工作量最大的函数和执行单独工作最多的函数都是系统函数。 下面看一下有针对性地用检测模式收集的数据: 本文就采用“检测”模式收集性能数据来进行分析和处理。 首先,把本次测试的目标DLL用VSInstr工具进行处理,使得Profiler能够收集相关的性能数据,这一个步骤非常关键,通常来说不需要设置额外的参数,就是默认的方式就可以了,例如:VSInstr “D:\Websites\xxxx\bin\xxxx.dll”,在处理的过程中可能会提示一些错误,具体错误的信息可以在这里查找。把相应的DLL处理完毕以后,就在命令行输入以下指令(命令行的指令用斜体加下划线表示;说明文字加黑)

VSTS性能分析工具Profiler的介绍

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

图解微软性能测试工具VSTS2008 Load Test Agent安装

最近在用VSTS做性能测试的时候发现本地发起请求只能占用1个CPU,其余的CPU都是空闲的,上网查了一下,这个是因为用VSTS做性能测试的时候,发起压力的进程是VSTESTHost.exe,如果想让多核CPU的每一个CPU都产生压力,需要安装使用Visual Studio Team System Test Load Agent。这个工具是要钱的,即使你订阅了MSDN的什么版本,在下载中心里面下载到的都是90天试用版,可能也是因为这个原因,网上很少资料介绍如何安装和使用这个Load Agent。经过1个下午的摸索,成功配置成功,以下是在Windows Server 2003下安装Visual Studio Team System Test Load Agent的过程,VSTS,Controller和Agent都安装在同一台电脑上。