如果要创建性能出色的应用,则应设计和规划性能,就像设计应用的任何其他功能一样。 可以使用Microsoft提供的工具来衡量应用的性能,如果需要,可以改进内存使用、代码吞吐量和响应能力。 本主题列出了Microsoft提供的性能分析工具,并提供指向其他主题的链接,这些主题涵盖应用开发的特定区域的性能。
设计和规划以优化性能
如果想要出色的应用,则必须将性能设计到应用中,就像设计任何其他功能一样。 你应该确定应用中的性能关键方案,设置性能目标,并尽早和经常衡量这些应用方案的性能。 由于每个应用都不同,并且具有不同的性能关键执行路径,因此尽早确定这些路径并集中精力可以最大程度地提高工作效率。
无需完全熟悉目标平台即可创建高性能应用。 但是,你应该了解目标平台的哪些部分在性能方面成本高昂。 可以在开发过程的早期通过测量性能来执行此操作。
若要确定对性能和建立性能目标至关重要的领域,请始终考虑用户体验。 启动时间和响应能力是影响用户对应用的感知的两个关键领域。 如果你的应用使用大量内存,它可能会对用户显示迟缓或影响系统上运行的其他应用,或者在某些情况下,它可能会使 Windows 应用商店或 Windows Phone 应用商店提交过程失败。 此外,如果确定代码的哪些部分执行频率更高,则可以确保代码的这些部分得到很好的优化。
分析性能
作为总体开发计划的一部分,在开发过程中设置点,可在其中测量应用的性能,并将结果与之前设置的目标进行比较。 请在您希望用户使用的环境和硬件中对您的应用进行测量。 通过及早并频繁分析应用程序的性能,可以更改体系结构决策,以避免在开发周期的后期修复时产生高昂成本。 以下部分介绍可用于分析应用的性能工具,以及由这些工具使用的事件跟踪功能。
性能工具
下面是可用于 .NET Framework 应用的一些性能工具。
工具 | DESCRIPTION |
---|---|
Visual Studio 性能分析 | 用于分析将部署到运行 Windows作系统的计算机的 .NET Framework 应用的 CPU 使用率。 打开项目后,此工具可从 Visual Studio 中的 “调试 ”菜单中获取。 有关详细信息,请参阅 性能资源管理器。 注意: 面向 Windows Phone 时,请使用 Windows Phone 应用程序分析(请参阅下一行)。 |
Windows Phone 应用程序分析 | 用于分析 Windows Phone 应用中的 CPU 和内存、网络数据传输速率、应用响应能力和电池消耗量。 安装 Windows Phone SDK 后,此工具可从 Visual Studio 中 Windows Phone 项目的“调试”菜单中获取。 有关详细信息,请参阅 适用于 Windows Phone 8 的应用分析。 |
PerfView | 用于识别 CPU 和内存相关的性能问题。 此工具使用针对 Windows 的事件跟踪 (ETW) 和 CLR 分析 API 来提供高级内存和 CPU 调查,以及关于垃圾回收和 JIT 编译的信息。 有关如何使用 PerfView 的详细信息,请参阅 博客文章。 |
Windows 性能分析器 | 用于确定在同一台计算机上运行多个应用时的总体系统性能,例如应用的内存和存储使用。 此工具可从下载中心获取,作为适用于 Windows 8 的 Windows 评估和部署工具包(ADK)的一部分。 有关详细信息,请参阅 Windows 性能分析器。 |
针对 Windows (ETW) 的事件跟踪
ETW 是一种技术,可用于获取有关运行代码的诊断信息,对于前面提到的许多性能工具至关重要。 当 .NET Framework 应用和 Windows 引发特定事件时,ETW 会创建日志。 使用 ETW,可以动态启用和禁用日志记录,以便在生产环境中执行详细的跟踪,而无需重启应用。 .NET Framework 为 ETW 事件提供支持,许多分析和性能工具都使用 ETW 来生成性能数据。 这些工具通常启用和禁用 ETW 事件,因此熟悉它们非常有用。 可以使用特定的 ETW 事件收集有关应用特定组件的性能信息。 有关 .NET Framework 中 ETW 支持的详细信息,请参阅 公共语言运行时中的 ETW 事件 和 任务并行库和 PLINQ 中的 ETW 事件。
按应用类型排序的性能
每种 .NET Framework 应用都有自己的最佳做法、注意事项和用于评估性能的工具。 下表链接到特定 .NET Framework 应用类型的性能主题。
应用类型 | 请参阅 |
---|---|
适用于所有平台的 .NET Framework 应用 |
垃圾回收和性能 性能提示 |
以 C++、C# 和 Visual Basic 编写的 Windows 8.x 应用商店应用 | 使用 C++、C# 和 Visual Basic 的 Windows 应用商店应用的性能最佳做法 |
Windows Presentation Foundation (WPF) | WPF 性能套件 |
ASP.NET | ASP.NET 性能概述 |
相关主题
标题 | DESCRIPTION |
---|---|
.NET Framework 应用程序中的缓存 | 介绍用于缓存数据以提高应用中性能的技术。 |
延迟初始化 | 介绍如何根据需要初始化对象以提高性能,尤其是在应用启动时。 |
可靠性 | 提供有关在服务器环境中防止异步异常的信息。 |
编写大型响应式 .NET Framework 应用 | 提供在托管代码中重写 C# 和 Visual Basic 编译器时收集的性能提示,并包括 C# 编译器中的几个实际示例。 |