11 个 Visual Studio 代码性能分析工具
软件开发中的性能优化对程序猿来说是一个很重要的问题。
一个小问题可能成为一个大的系统的瓶颈。
可是对于程序猿来说。通过自身去优化代码是十分困难的。幸运的是。有一些很棒的工具能够帮助程序猿进行代码分析和性能測试,从而大大简化程序猿进行代码性能优化的过程。MSDN 杂志 2011 年 7 月份曾公布主题为“.NET 代码分析工具和技术”的那一期。让广大程序猿收获颇丰。四年过去之后,这些工具又进一步做出了非常多改进,同一时候也出现了很多其它的选择。很多其它应用代码安全工具请点击:http://t.cn/zQ6JvmN
AMD CodeXL
2011 年公布的 AMD CodeAnalyst Performance Analyzer 如今已经被 AMD CodeXL 所替代。AMD CodeXL 的主要目的是帮助开发人员更好利用 CPU, GPU 和 APU 的计算性能。具有强大的 GPU 调试、CPU 和 GPU 代码分析、及静态的 OpenCL 内核性能分析等能力。
AMD 提供了支持 Windows 7、Windows 8 和 Linux 系统的单机版 CodeXL 分析工具。在 Visual Studio 2010,2012 和 2013 上也有 AMD CodeXL 的扩展版。其在 Visual Studio 开发环境中集成了 GPU 和 APU 的调试和分析能力。旧的 AMD CodeAnalyst Performance Analyzer extension 眼下仍然可用。
JetBrains dotTrace
JetBrains dotTrace 经过四年漫长的发展,如今已经是一个包括代码运行跟踪工具和性能分析工具的套件。它包括 dotTrace Performance 和 dotTrace Memory 两个工具。dotTrace Performance 用来分析代码性能,比方函数运行时间,调用次数,消耗时间比率等,dotTrace Memory 一般用来分析内存占用情况。你能够在本地和远程系统中对代码进行跟踪、採样或逐行分析。
dotTrace 对微软 .NET 框架的支持一直到 4.5.2 版本号,也可用于分析 Silverlight4 或 5 的单机桌面应用程序、Web 应用程序、Windows 通信基础(WCF)服务等。
新功能包含时间轴分析(timeline profiling)和 SQL 查询分析。
dotTrace extension Visual Studio Gallery 网页提供了一个很清晰。简洁的产品概述。通过看完概述假设你对产品有兴趣。能够到 JetBrains 站点决定下载或购买。
JetBrains 眼下提供有时间限制的免费试用版以及几种许可选项,比如 ReSharper Ultimate包。当中包含 ReSharper。dotCover。dotTrace,dotMemory,以及 ReSharper C + +,全部包仅仅须要一个许可证。
RedGate ANTS
RedGate ANTS 性能分析工具和 ANTS 内存分析工具 是还有一组的商业工具,可用于分析 .NET 可执行文件,ASP.NET 应用程序,IIS 中的 Web 服务,IIS Express, Web 开发server,SharePoint 2007 或 2010 年套装。Silverlight 应用程序。Windows 服务。和 COM + 应用程序等。
ANTS 性能分析工具(图1)能够帮助分析不论什么 .NET 支持的代码库,以及 HTTP 请求,存储 IO,同一时候支持 SQL server。Oracle,MySQL,MariaDB,PostgreSQL 的数据訪问.
图 1. Red Gate ANTS 性能分析工具
ANTS 内存分析工具能够使 .NET 的内存分析更加简单。ANTS 内存分析工具能够用来查找内存泄露,优化应用程序。从而使其具有较高的内存使用率,并能检查代码的健康状况,能分析不论什么 .NET 应用程序,包含 ASP.NET 网络应用程序。
两个工具支持从 .NET1.0 版本号到 4.5 版本号的不论什么语言的框架,以及 Visual Studio 2005、2008、2010、2012 和 2013。能够在 RedGate 站点上查看试用版以及定价。
同一时候也有一个免费的版本号 ANTS Profiler Visual Studio Add-in extension。让你在 Visual Studio 上能够直接訪问性能分析工具和内存分析工具。
Telerik JustTrace
2013 年,Telerik 获了 EQATEC,因此 EQATEC 分析工具如今是 Telerik JustTrace .NET 内存和性能分析工具的一部分。JustTrace 提供两种模式的性能分析,轻量化分析的採样分析工具和收集 CLR 事件进行更深入分析的跟踪工具。它还具有捕获 .NET 实例分配快照的内存分析的功能。
JustTrace 集成了 Visual Studio 2013,2012,2010 和 2008,也能够作为一个单机版的分析工具。Telerik 提供 30 天的试用期,同一时候 JustTrace 也可作为 DevCraft 工具套件的一部分。
Visual Studio 质量和诊断中心
除了上述分析工具。Visual Studio 本身也内置了优秀的分析和调试工具,都放在 Visual Studio 的质量与诊断中心。
质量和诊断中心除了包含熟悉的 Visual Studio 分析工具,另一些新的工具,其功能包含 JavaScript 内存分析, HTML UI 响应能力分析,和 Windows 应用商店应用的 XAML UI 响应能力分析,和能量消耗、CPU 使用、内存使用情况分析等。
此外。Visual Studio 2012 中的 JavaScript 函数时间和性能向导也已经更新。包含在新的质量和诊断中心中。由于这些工具如今都能够在中心中获得,所以能够在一个单独的分析会话中执行多个工具。并获得相互结合和交叉分析的结果。
你还能够在 Visual Studio 2015 的性能和诊断页面执行分析工具。Visual Studio 2015 中的一些调试和诊断功能得到了增强,包含支持基于 JavaScript 的 Apache Cordova 项目。以及基于 C # 的 Xamarin 和 Android 项目的跨平台调试
其它改进包含在“监视”窗体通过 lambda 表达式进行 step,通过 Visual Studio 远程工具执行、调试和測试其它计算机上的程序,内置的 HTTP 流量数据的网络诊断等。
很多这些新工具与强大的 Visual Studio 2015 诊断工具调试器窗体放在了一起,并组合了输出窗体。IntelliTrace 历史数据。以及性能和诊断中心的工具。
其它的性能分析工具
除了以上介绍的代码性能分析工具。还存在其它的专业的代码性能分析工具,当中很多是由和你一样的程序猿所开发,并可供免费使用。
Clr Heap Allocation Analyzer extension 是一个基于 Roslyn 的 C #堆分配诊断分析工具,能够用于查看清晰的分配,boxing 分配。闭包捕获等。
您能够作为一个单机版的应用程序或作为 Visual Studio 内部的代码辅助工具执行该分析工具。
Visual Leak Detector for Visual C++是一个开源的 Visual C++ 内存泄漏检測系统。它与 Visual Studio 调试器一起工作。最初由 Dan Moulding 开发。项目眼下由 Arkadiy shapkin 维护。
Frans Bouma 的 ORM Profiler extension(图2)让你能够实时地深入实体框架数据訪问代码发现性能问题,并高速定位到它们。它具有在线、离线两种产品分析模式,能够直接从分析结果导航到项目中的相关代码。
图 2 使用 ORM Profiler 进行实体框架数据訪问的调试
为了检查和优化项目中的静态资源。Mads Kristensen 的 Image Optimizer extension 为解决方式资源管理器中的不论什么目录和图标加入了右键菜单。帮助自己主动优化目录中全部的 PNG,GIF 和 JPEG 文件。
最后,还有 Xamarin Profiler,它是一个跨平台开发框架。
在这一框架内,开发 Android 和 iOS 应用能够不用转到 Eclipse 或者额外购买 Mac 并使用 Xcode。而继续在 Visual Studio 之中使用 C# 与 .NET 框架进行。
本文简介了 Visual Studio 中当前比較流行的一些性能分析工具,其实还有许多的工具可供选择。但对于程序猿来说,最重要的是依据自身的编程习惯以及project项目的特点做出适合自己的选择。