工具箱

用于 .NET 代码分析的工具和技术

特拉尔西

下载代码示例

Terrence Dorsey
精辟的警句"过早的优化所有罪恶的根源"不同程度地归咎多年高德纳、 威廉 · Wulf 和 C.A.R.贺。(看来贺源自一词,但 Knuth 获取信贷推广它。请参阅bit.ly/fW1jWE为主题的 Knuth 的思考综述。)

所以平均为你勇敢。网商?你应该忽略的性能和代码走到你的心内容吗?最好按照智能感知的怪念头和更快的硬件,以扩展您的应用程序依赖吗?

嗯,没有。

测试的一个重要部分确保您的应用程序不仅执行没有错误,但也执行有效地反映民情。这是哪里的代码分析工具和技术来发挥。这些让你作为生成和测试过程的一部分,评估您的代码的结构 — — 和完全错误— — 那些可能会造成问题。你点您直接在您的应用程序中的位置的自动的平视,需要重构。

分析基础知识

开始学习的好地方。网络性能分析是由保罗 Glavich 的代码项目文章"性能分析的性能。网中的应用"(bit.ly/fpua6i)。你不只会一些基础。净的分析,但 Glavich 还向您介绍到蚂蚁探查器 (其中我们晚些时候会给了)。

另一个很好的起点是塔林加姆 Prasanna 博客张贴内容,"性能分析您。NET 代码"(bit.ly/dDXWsF)。他开始通过列出 10 大理由为什么您应该分析代码,然后将引导您完成使用 CLR 事件探查器的过程 (bit.ly/eSJyWd)。

在布赖恩 · 长的 Microsoft 广泛的演练。NET 框架分析 Api,"。网内构件: 分析 API"(bit.ly/hNEDYP),您将学习有关性能计数器,性能监视器和相关的 Api。您还将了解如何创建您自己简单的分析工具,来说明 Api 是如何工作的。

CLR 现在提供广泛的性能分析支持,和 David Broman 显示您如何使用它在自己的博客中后,"探查器,在进程肩并肩 CLR 实例和免费测试工具"(bit.ly/dYeRnQ)。请务必阅读通过 Broman 的网站的档案 — — 有很多大量的信息。

当你在做高性能分析获取真的很重要,高度等比例缩小编程。如果是你,签出通道 9 日的"SC08: Windows HPC: 多核并行代码分析在 VS2010"网络广播 (bit.ly/gyeKPi)。

不要错过 Visual Studio 事件探查器团队博客 (blogs.msdn.com/b/profiler) 的分析提示、 技巧和最新发布的公告。

编写的代码更有效率

当然,避免痛苦的测试、 分析和多次重构您的代码的一种方法是编写更有效的代码放在第一位。这里是讨论的写作,希望,需要通过探查器实现您希望的速度跑几少的应用程序的最佳做法的三篇文章:

  • "指导提高代码的性能。网络: 第一部分"由 C# 角 Satesh Arveti (bit.ly/gyImk9)
  • "书面高效 C 和 C 代码优化"Koushik Ghosh 代码项目 (bit.ly/icnYEi)
  • "写高性能。NET 代码"的胡安 · 罗德里格斯和 Simonijt · 杜塔 · 从英特尔 (intel.ly/fvweaP)

分析工具

这是工具箱列,所以让我们讨论工具。软件分析的实用程序执行动态分析的应用程序代码在运行时。这里有几个的免费和商业产品,您可能想要兜一圈。

AMDCodeAnalyst 性能分析器bit.ly/gAqPeu) 是一个免费的性能分析工具,从 — — 你猜到了吧 — — 先进微设备公司。你可以用配置文件 Fortran,C/c + + Java 和。净的代码。特别是,它用于优化您的 AMD 芯片组的多线程执行的代码。CodeAnalyst 集成了 Visual Studio 2003 至 2010 年,并从 Windows 7 在 x86 和 AMD64 架构下通过 Windows XP 系统上运行。

事件探查器 EQATECbit.ly/h2hDCF) 是专门设计制作的代码探查器你。网络应用程序运行得更快。它支持。净框架 2.0 及更高版本,Windows 演示文稿基础 (WPF),Silverlight 的。网契约框架。它也是第一次探查器提供 Windows Phone 7 性能分析功能的仿真程序和设备上。提供免费和付费的许可证。该站点的详细信息,请参阅。

EQATEC Profiler

EQATEC 事件探查器

JetBrainsdotTracejetbrains.com/profiler) 是实际上两个轻量级的集合。网络性能分析的应用程序: dotTrace4 4 性能和 dotTrace 3.5 内存。dotTrace 使您可以使用的目标应用程序。NET 框架通过 4、 1.0。NET 框架精简版 3.5 和 Silverlight 4。您可以在本地和远程系统上运行跟踪、 取样或一行一行的分析。dotTrace 集成的 Visual Studio 2005 至 2010 年。JetBrains 目前提供限时免费试用和大量的许可选项。该站点的详细信息,请参阅。

红门蚂蚁性能探查器bit.ly/g1yVEt) 和 蚂蚁内存事件探查器bit.ly/h3JzAX) 另一套的商业分析分析 ASP Windows 窗体应用程序的工具。NET Web 应用程序,SharePoint 和 Silverlight 4。用。NET 框架 4、 蚂蚁性能探查器支持 CLR 分析,您可以将其附加到正在运行的进程。此外可以从您的代码引发的 SQL 查询来获取性能数据。这两种产品支持。NET 框架 1.0 通过 4 和 Windows XP 通过 Windows 7,并可以直接从 Visual Studio 中运行。请参阅定价的红门遗址。

SmartBearAQtime Probit.ly/ePmENJ) 是一个性能分析和内存和调试的程序的资源。NET 框架、 Java、 JScript 和 VBScript 代码。您可以使用 AQtime Pro 来分析两个 32 位和 64 位应用程序,和探查器可以直接集成到 Visual Studio 2002 年通过 2010年和 Embarcadero RAD Studio 开发环境。AQtime Pro 还提供了可编程的调试器使用基于 COM 的体系结构,因此您可以创建自定义分析器。下载限时免费试用版,或联系智能承担当前定价。

SmartBear AQtime Pro

SmartBear AQtime Pro

SlimTunecode.google.com/p/slimtune) 是一个免费、 开源性能分析和性能分析工具。网络的发展。发展目前处于测试阶段,,虽然您可以针对 x86 和 x64 应用程序,只基于样本的分析是可用。可如果你想要攻击在它自己的源代码。

电力软件GlowCodeglowcode.com) 是另一种商业演出和有针对性的在 32 位和 64 位的内存事件探查器管理,本机代码和混合代码编写 C、 c + + 或任何的。NET 框架兼容的语言。GlowCode 直接与 Visual Studio 2010 集成,因此您可以分析您的应用程序,而不离开 IDE。可随着单用户和浮动许可证限时评估许可证。检查 Web 站点的详细信息。

数据访问性能分析

您的应用程序的数据层需要爱,太。这里有几个工具和分析数据访问的资源。

如果使用的 SQL Server 2008 R2,SQL Server 事件探查器包含安装 ; 它可以分析查询、 TRANSACT-SQL 语句和表达式,等等。开始使用 SQL Server 事件探查器其他很好的资源包括:

如果您使用 SQL Server 2005 或 2008年速成版的不过,你不会有访问 SQL Server 的完整版本中包含的性能分析工具。在这种情况下,你要看看免费的 AnjLab 开源SQL Server Express 版事件探查bit.ly/eNg5oi)。

实体框架事件探查器efprof.com) 是用于分析和实时调试您的代码使用实体框架中的数据访问。它是一个伟大的工具,为揭露幕后到底发生了什么。实体框架事件探查器是一种商业的产品,但您可以请求 30 天的试用期,试试它对您自己的项目。

Entity Framework Profiler

实体框架事件探查器

SQL 负载测试sqlloadtest.codeplex.com) 是由 Visual Studio 团队系统 (VSTS) 游侠队从 SQL 事件探查器跟踪生成单元测试,并重播从使用 Visual Studio 负载测试的跟踪数据库调用创建的 CodePlex 项目。它是一个得心应手的工具进行测试以数据为中心的应用程序,不是直接的负载测试。

最后,别忘了LINQPadlinqpad.net) 作为一个得心应手的工具,用于评估 LINQ 查询,以及 C# 和 Visual Basic 代码。而不是代码的事件探查器,它是代码的通过迭代项目的上下文以外工作的一种简便方法。

特拉尔西  是的技术编辑 MSDN 杂志*.*您可以阅读他的博客,在terrencedorsey.com 或跟随他在 Twitter 上 twitter.com/tpdorsey