艺术字做到后期,性能成了一个比较大的瓶颈,优化性能的过程中接触了一些.NET性能调试工具,最喜欢的是ANTS Performance Profiler,操作简单,功能也跟我期望的差不多。
ANTS Performance Profiler是出自大名鼎鼎的Red Gate,很多人使用过的.NET Reflector就是出自此公司,该公司还出品其他产品,具体请戳http://www.red-gate.com/products/。ANTS Performance Profiler支持.NET平台所有语言编写的应用程序,能支持.NET1.1到.NET4.6(当前最高版本)。
ANTS Performance Profiler操作及其简单。
启动界面
选择New Profiling session 开启新的会话
在新会话界面可以选择要监控的.NET程序,可以看到支持exe,Win App,Silverlight,IIS等,这里以常用的exe为例。
Path to .NET executable:选择你要监控的exe路径,点开Show startup options 可以配置命令行参数。
Profiling mode:选择你的监控信息的详细级别,默认是最详细的级别,可以监控所有方法包括framework内部的方法。
Chart performance counters:选择你需要收集的性能相关信息,例如CPU,线程数,IO,内存,甚至.NET垃圾回收各代的信息。
Additional profiler options:根据需求进行额外的配置。
配置也是超级简单的,配置完毕即可点击Start profiling,开始监控。
此时操作你的程序,可以看到性能占用的变化,选择任意一段,下方即可看到该段时间各个方法的性能占用信息,这些信息包括耗时比例,触发次数等。在工具栏可以配置显示模式,可以以堆栈模式查看函数的性能占用信息,也可以在View里面选择其他统计方式,百分比或是毫秒等。选中方法后可以在最下方看到方法的代码,代码的左边即是相应代码行的性能占用信息,非常之方便。也可以选择以图表的形式查看一个方法中其子方法的性能占用情况,点击方法名后面那个小图标即可。