运行时分析

分析是在任何开发或部署方案中收集性能数据的方法。 本节面向需要收集与应用程序性能有关的信息的开发人员和系统管理员。

使用性能监视器 (Perfmon.exe) 跟踪性能

性能监视器(或者,在 Windows Vista 和 Windows 7 中为可靠性和性能监视器)是分析 .NET Framework 应用程序时最易于使用的工具。 性能监视器以图形方式表示 .NET Framework 性能计数器(这些计数器是随公共语言运行时和 Windows 软件开发包 (SDK) 一起安装的)中的数据。 这些计数器可用于监视从内存管理到实时 (JIT) 编译器性能的方方面面。 它们告诉您应用程序所使用的资源的情况,这是了解应用程序性能的间接方法。 使用这些计数器可了解应用程序在内部的工作方式。

在 Windows XP 上运行 Perfmon.exe

  1. 在命令提示符处,键入 perfmon。 出现性能控制台。

  2. 在工具栏上,如果有**“添加”图标(加号),请单击该图标。 如果没有,请在监视器窗口中单击右键,然后选择“添加计数器”**选项。

    这将打开**“添加计数器”对话框,其中显示了可用的性能对象和计数器。 .NET Framework 应用程序有许多预定义的对象,包括用于内存管理、互操作性、异常处理以及多线程处理的计数器,它们分别是“.NET CLR Memory”“.NET CLR Interop”“.NET CLR Exceptions”“.NET CLR LocksAndThreads”**。 每个 .NET Framework 性能对象包含多个单一性能计数器。

  3. 在**“性能对象”**列表中,单击要查看的性能对象。

  4. 在“计数器”列表中,单击要查看的计数器。

  5. 单击**“所有实例”**指定想要全局(也就是在系统范围内)监视公共语言运行时的性能计数器。

    - 或 -

    单击**“从列表中选择实例”**,然后单击要监视该应用程序的性能计数器的应用程序。

    若要区分运行时的多个版本,或消除具有相同名称的多个应用程序的歧义,也必须修改注册表项。 有关更多信息,请参见 性能计数器和进程内并行应用程序

在 Windows Vista 和 Windows 7 上运行 Perfmon.exe

  1. 在命令提示符处,键入 perfmon。 将出现**“可靠性和性能监视器”控制台(在 Windows Vista 中),或“性能监视器”**控制台(在 Windows 7 中)。

  2. 在**“监视工具”文件夹中单击“性能监视器”**。

  3. 在“性能监视器”工具栏上,如果有**“添加”图标(加号),请单击该图标。 如果没有,请在监视器窗口中单击右键,然后选择“添加计数器”**选项。

    这样将打开**“添加计数器”对话框。 在“可用计数器”列表框显示可用的性能对象。 .NET Framework 应用程序有许多预定义的对象,包括用于内存管理、互操作性、异常处理以及多线程处理的计数器,它们分别是“.NET CLR Memory”“.NET CLR Interop”“.NET CLR Exceptions”“.NET CLR LocksAndThreads”**。 每个性能对象均包含多个单一性能计数器。

  4. 选择性能对象的名称旁边的复选框,以查看它所支持的各个性能计数器的列表。

  5. 单击要查看的性能计数器。

  6. 在**“选定对象的实例”列表框中,单击“<所有实例>”**说明想要全局(也就是在整个系统的基础上)监视公共语言运行时的性能计数器。

    - 或 -

    在**“选定对象的实例”**列表框中,单击要监视该应用程序的性能计数器的应用程序的名称。

    若要区分运行时的多个版本,或消除具有相同名称的多个应用程序的歧义,也必须修改注册表项。 有关更多信息,请参见 性能计数器和进程内并行应用程序

注意注意

如果在性能控制台正在运行时安装新的性能计数器,请停止后再重新启动性能控制台以便显示新的计数器。

要分析位于某一区域或远程共享中的程序集,应确保该远程程序集在运行性能计数器的计算机上完全受信任。 如果该程序集不具有足够的信任,则性能计数器将不工作。 有关向不同的区域授予信任的信息,请参阅Caspol.exe(代码访问安全策略工具)

注意注意

在安装有 .NET Framework 4 的系统上,对于使用 .NET Framework 1.1 开发的应用程序,性能监视器可能不会显示某些类别的性能计数器数据,如 .NET CLR Data.NET CLR Networking。如果属于这种情况,您可以配置性能监视器,以显示此数据,方法是将 <forcePerformanceCounterUniqueSharedMemoryReads> 元素添加到应用程序的配置文件。

以编程方式读取和创建性能计数器

可以使用 .NET Framework 提供的类以编程方式访问性能控制台中提供的相同性能信息。 另外,还可以使用这些类创建自定义性能计数器。 下表描述了 .NET Framework 中提供的某些性能监视类。

说明

System.Diagnostics.PerformanceCounter

表示 Windows NT 性能计数器组件。 使用该类读取现有预定义的或自定义的计数器并向自定义计数器发布(写入)性能数据。

System.Diagnostics.PerformanceCounterCategory

提供与计数器交互的几种方法以及该计算机上计数器的类别。

System.Diagnostics.PerformanceCounterInstaller

指定 PerformanceCounter 组件的安装程序。

System.Diagnostics.PerformanceCounterType

为 PerformanceCounter 指定用于计算 NextValue 方法的公式。

请参见

概念

ASP.NET 的性能计数器

安全策略模型

其他资源

.NET Framework 中的性能计数器