ReSharper 2026.1 Help

监测

ReSharper 提供了集成的监控工具,可以实时跟踪应用程序性能并分析运行时行为。 您可以查看 CPU 使用率、内存消耗、垃圾回收活动、环境变量、计数器和指标。 在 Windows 上,该工具还可以在后台收集详细的性能数据,并允许您使用集成的性能分析器进行分析。

默认情况下,当您运行或调试项目时,监控会自动在 监测 工具窗口中启动。

Windows 操作系统上的监控工具窗口

支持的应用程序

  • .NET Core 3.0 及更高版本、.NET 5.0 及更高版本

  • .NET Framework(无计数器、指标和异常信息)

  • Mono(无计数器、指标和异常信息)

  • Unity(仅提供 CPU 和内存图表)

  • C++(仅提供 CPU 和内存图表)

  • Unreal Engine(仅提供 CPU 和内存图表)

性能选项卡

性能 选项卡会通过图表可视化应用程序的运行时行为。 在 Windows 上,还会提供已检测的性能问题列表,并允许您通过集成的性能分析器进行详细分析(需要 dotUltimate 许可证)。

图表

监控图表

图表 选项卡显示应用程序的 CPU 和内存使用情况。 将鼠标悬停在图表上,可以查看数据点的详细信息。

  • CPU 图表显示应用程序的 CPU 使用率以及检测到 UI 冻结性能热点 问题的时间区间。

  • 垃圾回收 图表显示应用程序中的垃圾回收(GC)事件,以及检测到 高垃圾回收活动 问题的时间区间。

  • 内存 图表显示应用程序的内存使用情况。

    内存使用量的计算方法

    内存 图表显示进程的 专用内存—— 仅为此进程分配且不与其他进程共享的内存。

    • Windows: 图表显示进程的 提交量(Commit Charge) 值。 该值包含专用页面(即使被交换出去),并排除与其他进程共享的页面,因此可能与其他工具显示的“常驻/工作集”数值有高有低。 图表通过 GetProcessMemoryInfo 获取 PROCESS_MEMORY_COUNTERS_EX.PrivateUsage

    由于不同工具显示的指标不同(专用内存与常驻/工作集),因此工具间显示的数字不完全一致是正常现象。

检测到的问题

监测. 检测到的问题

在 Windows 上,监控工具可以自动检测应用程序中的各种类型问题。 您可以使用集成的性能分析器详细分析检测到的问题。

了解有关检测到问题的更多信息

后台分析

在 Windows 上,ReSharper 使用 ETW CPU 采样,在运行或调试会话期间于后台收集详细的性能数据。 此过程类似于性能分析器的时间线分析,但会自动运行且开销极小。 收集的数据包括:

  • 包含方法执行时间的堆栈跟踪

  • 方法活动的时间线

  • 如分配和垃圾回收等运行时事件

后台分析通常仅会对应用程序性能造成 1–2% 的影响。 在极端情况下,额外开销可能高达 10%。 如果您遇到性能下降,可以在 ReSharper | 选项 | 监控 中禁用 ETW CPU 采样 复选框。

您可以使用集成的性能分析器分析性能数据(详见下文)。 请注意,分析数据需要 dotUltimate 许可证

检测到的问题 功能同样依赖于这些后台分析数据提供支持。

分析监控数据

您可以使用集成的性能分析器分析收集到的性能数据(需要 dotUltimate 许可证)。

分析问题

  1. 双击列表中的问题,或右键点击后选择 分析问题

  2. 关于该问题的详细信息将显示在新的编辑器标签页中。 了解更多有关分析检测到问题的信息

在 dotTrace 中分析问题

  1. 右键单击列表中的问题并选择 选择问题范围

  2. 点击 分析区间分析所选时间范围 按钮,位于 图表 选项卡顶部。

  3. 问题的时间范围将在 性能分析器 工具窗口中打开,显示调用树和事件数据。

在 dotTrace 中分析时间区间

  1. 点击图表,并选择您想要分析的时间区间。

  2. 点击 分析区间分析所选时间范围 按钮,位于 图表 选项卡顶部。

  3. 对应的时间范围将在 性能分析器 工具窗口中打开,显示调用树和事件数据。

    分析所选范围

在 dotTrace 中分析完整时间范围

  1. 点击 分析所有性能数据分析完整时间范围 按钮,位于 图表 选项卡顶部。

  2. 性能分析器 工具窗口将打开,并显示整个运行或调试会话的调用树和事件数据。

计数器选项卡

计数器 选项卡显示所有已启用计数器和指标提供器的计数器及其数值。

  • 计数器

    .NET 计数器是获取应用程序性能数据的方式之一。 大多数 .NET 系统程序集提供其自身的一组计数器。 例如,基础 System.Runtime 程序集包含如 CPU 和内存使用量、特定堆的垃圾回收次数、锁争用数、线程池队列长度等计数器。 Microsoft.AspNetCore.Hosting 提供对服务器应用程序监控很有用的计数器:如请求率、失败请求数等。 此外,您的应用也可借助 EventCounters 提供自定义计数器。

  • 指标

    指标是一种更现代的应用数据收集方式,支持如 OpenTelemetry 等多种第三方提供方。 .NET 程序集也会提供自己的指标集。 例如, Microsoft.AspNetCore.Hosting 提供请求持续时间及当前活动请求数等指标。 与计数器类似,您的应用也可自行提供自定义指标。

要添加或移除提供器,请前往 ReSharper | 选项 | 监控 | 计数器 ,并在 计数器提供程序指标提供程序 中配置提供器列表。 添加提供器时:

  • 要从某一提供器添加全部计数器/指标,请指定其名称,例如 MyProvider

  • 要从某一提供器添加指定计数器/指标,请以如下格式指定提供器和计数器/指标名称: ProviderName[CounterName1,CounterName2]。 例如, OpenTelemetry.Instrumentation.Runtime[process.runtime.dotnet.gc.collections]

环境选项卡

环境 选项卡显示应用程序的环境变量和系统属性。

监控模式

默认情况下,监控会在您运行或调试项目时自动启动。 您可以通过 启用监测 选择器在 监测 工具窗口设置中更改此行为:

  • 调试或运行时—— 监控会在您运行或调试项目时自动启动。

  • 调试时—— 仅在调试您的项目时自动启动监控。

  • 从不—— 监控已禁用。

获取分析数据

有时,监控工具收集的数据不足以分析应用程序的性能。 要获得更深入的分析,您可以直接在 监测 窗口的工具栏中获取分析数据(例如启动性能分析会话或获取内存快照):

  • 获取堆栈跟踪收集堆栈跟踪—— 获取应用程序的堆栈跟踪。 堆栈跟踪会自动在 堆栈跟踪资源管理器 中打开。 例如,当遇到意外的 UI 卡顿并希望调查潜在线程锁时,此功能会很有帮助。

  • 开始内存分析获取内存快照—— 立即获取应用程序的内存快照。 快照收集后会在 Memory Profiler 工具窗口中打开。

  • 开始采样分析开始采样分析 | 开始时间线分析开始时间线分析—— 使用时间线或采样分析类型启动性能分析会话。 要停止记录分析数据并保存性能快照,点击 停止分析 按钮。 收集到的快照将在 Performance Profiler 工具窗口中打开。

2026年 3月 25日