EQATEC Profiler
- 下载 访问:http://www.eqatec.com/Profiler/Home.aspx ,到“DownLoad”页面填写相关信息后,下载的link会发到邮箱。也可以直接用这个下载好的:EQATECProfiler.7z
- 安装 下载得到的是个.msi扩展名的文件,直接安装即可
- 各个tab介绍 我们主要会用到EQATEC Profiler的3个tab:Build, Run, View Build:这个工具的原理是在需要监控的方法上加入性能监控代码,从而在程序运行时记录性能数据。和我们在代码里面写Stopwatch不同的是,它是直接对已经编译好的dll或者exe插入代码的。因此Build这个tab的主要功能,就是让你选择你要监控的dll或者exe,然后通过EQATEC Profiler的build功能,把性能监控代码插入到各个方法 Run:如果是exe,可以在这个tab里面直接启动。对于IIS里面的网站,或者windows service,则直接在IIS里面启动或者在windows服务管理器里面启动即可。一旦被监控的程序启动了,这个tab里面就会显示类似这样的信息“10:14:48: App: Profiled application 'FlightFare.Memcached' started”。这个tab的“Take snapshot”是最主要的按钮。我们在程序里面做完操作后,点击这个按钮后,就会记录之前的所有性能数据,同时把计数器归零,开始下一次的数据采集 View:这个tab用于查看报告。但是一般不需要直接在这个tab里面查看报告。一旦在Run tab里面“Take snapshot”,就会在Run tab下方生成一个新的report。在想要查看的report上面双击,就会自动跳转到View这个tab。一个报告有两种呈现方式:上方的是基于表的呈现,主要是一些数字;下方的是基于图的呈现,可以直观的显示方法的调用关系和每个方法的耗时
- 实际的操作过程 下面以一个实际的例子结合截图来说明这个工具的使用。这个场景是对计算引擎的主要计算逻辑进行profiling
第一步,先在Build tab里面通过“Browse”按钮找到计算引擎的dll,并勾选需要做profiling的dll(注意:由于我们使用的是免费版,因此一次只能针对3个dll做profiling)。选择完毕后,点击右下方的“Build”按钮,“Build profiled version”窗口会显示build进度。等build结束后,就完成了性能监控代码的注入第二步,启动程序。我这个场景里面,虽然程序是个exe,但是需要在启动时传入参数,因此我还是在外部启动的,并没有在Run tab里面启动。程序启动后,会在Run tab的“Run profiled app”下面的文本框内输出类似“10:14:48: App: Profiled application 'FlightFare.Memcached' started”这样的提示信息,表明被监控的程序已经启动。在程序运行一段时间后,点击“Take snapshot”按钮,就可以完成性能监控数据的收集和报告的生成。最新生成的报告,会列在“View snapshot reports”下面文本框最上面
第三步,查看报告。双击Run tab里面的某个报告,会自动切换到View这个tab。这个tab的主体是“Summary of method call times”和“Details of individual methods”。Summary是以表格的形式列出了各个方法的调用次数和耗时。其中,“Total(full)”指的是程序运行时花在这个方法上的总耗时;“Avg(full)”指的是执行一次这个方法的耗时,它等于“Total(full)”除以"Calls";“Total(self)”指的是程序运行时,这个方法自身的计算逻辑花的时间,因为一个方法可能会调用其他方法,所以这个数字反映的是这个方法自己的计算逻辑的复杂度;“Avg(self)”指的是执行一次这个方法,它自身的计算逻辑花的时间,它等于“Total(self)”除以“Calls”;“Calls”指的是程序执行过程中,这个方法的执行次数。Summary里面的时间都是以毫秒为单位。Details是以图的形式表示某个方法的耗时、调用次数、耗时占比等。里面的红色进度条表示自身的计算逻辑的时间开销,黄色进度条表示调用其他方法的时间开销。单击代表某个方法的方块,可以进入该方法的详细调用链和耗时情况