最后一篇博文发表自去年圣诞节前一天,7个多月过去了,现在终于有时间坐下来,总结一下这半年的收获。这半年都没有更新博文,是因为团队组织架构调整,我的工作内容增加了很多,一句话总结就是,一个人撑起一个项目的自动化。我不仅负责UI Automation,还负责系统另外两个底层模块的集成自动化测试。自动化代码、提升效率、每天运行发regression report都在我头上。所以很忙。忙归忙,收获还是很大的,颇有成就感。原来UI自动化 + 另两个模块的集成测试是分别由3个团队各自负责,以往需要0.5个人天 * 3来执行分析regression tests,现在全部在我这里,仅需要1.5个小时每天。效率提升十分明显。这期间,我将集成测试里面,很多需要手动做的事情,改为代码代劳。还做了一个简约高大上的辅助性网站,展示所有regression jobs的执行状态(C# WebForm)。
言归正传,Vistual Stuido自带一个性能分析器 – Performance profiler,用Performance profiler跑完目标代码,它会给出一个.vsp的报告。Summary里会有一个带时间轴和CPU使用率的折线图,据此折线图,可以看出在运行过程中,哪些时间段资源使用率高。Summary折线图下面还会给出调用次数最多的方法。
下拉菜单点开,还会有很多其他选项,我用的比较多的是Functions 和 Call tree.
下面我用虚拟机里的Visual Studio 2015,展示如何配置Performance Profiler.
Step 1:
顶栏Debug菜单展开,选择Performance Profiler(Visual Studio必须有项目打开着,再去调Performance Profiler)
Step 2:
勾中Performance Wizard,点击Start按钮
Step 3:
因为我想要看各个方法的调用次数以及时长,所以选择Instrumentation,点击Next
Step 4:
这一步是要配置我们想要做性能分析的对象,可以是项目,可以是.exe可执行文件,也可以.dll,根绝不同的项目需求,选择类型。比如我公司的项目,我需要选择.dll,然后在下一个配置页面,输入执行程序.exe的路径,输入我想要分析的.dll文件路径,并输入执行参数。注意,如果路径里带空格的话,记得用双引号括起来。换言之,怎么在命令行里执行.exe或者.dll,那么在这里就按照那样去配置就好了。为了示范,我仅选择当前项目
Step 5:
配置结束页面,如果勾选上,就是说,现在就开始执行性能分析,不勾选的话,就是说,回头再执行性能分析。到时候,从Performane Explorer页面,找到刚刚的配置,右键,选择Start Profiling执行并性能分析。这里我够选上,点击Finish按钮,它就开始执行并分析。
Step 6:
执行结束后,查看性能报告。
这是Summary报告。
这是Functions报告。Elaspsed Inlcusive Time %是指该方法(包括方法里调用别的方法的执行时长)执行时长占总时长的百分比。例如StarbuzzCoffee.Main()方法执行时长是100%,因为它是入口程序,它的执行时长就是所有的执行时长。而Elapsed Exclusive Time %衡量的是指该方法不包含其内调用别的方法时长占比。后面avg inclusive/exclusive time同理,讲的是平均包含不包含执行时长。
通过这份报告,将执行时长(不包含)很长且调用次数多的方法加以改进,整体性能就会有很大提升。