dotTrace 2025.2 Help

线程状态

线程状态 过滤器的目标是 “选择线程处于指定状态的所有时间间隔”。 例如,如果您只想分析某个线程未工作的时间间隔,请在 线程 图表中选择该线程,并在 正在等待 过滤器中的 线程状态 状态。

线程在任意时间只能处于两种状态之一:

  • 运行中  – 线程正在运行。

  • 等待中  – 线程未运行,正在等待其他线程的资源或通知。

线程状态

1 状态名称。

2 所有选定线程在此状态下的总时间。

3 此状态下的时间占选定总时间的百分比。

应用线程状态过滤器

  • 在过滤器中选择所需的线程状态。

    选择状态后,其他过滤器将仅显示线程处于选定状态的时间间隔的数据。

    线程状态示例

线程状态:运行中

当您想分析某个线程完成的工作时,例如找出线程中大部分时间执行的方法,请选择 正在运行 状态。

选择 正在运行 状态后,您可以使用 运行:CPU 核心 子过滤器微调结果过滤器。

运行:CPU 核心

此子过滤器显示逻辑 CPU 核心之间的工作分布。 该过滤器可能在两种情况下有用:

  • 评估是否值得将线程绑定到单个核心(核心之间过于频繁的切换会导致额外的工作负载)。

  • 评估是否值得将线程的工作分配给多个线程(如果线程完全占用单个核心,而其他核心未被占用)。

运行中的 CPU 核心

1 逻辑 CPU 核心编号。

2 线程在此核心上运行的时间 所有选定线程的总和

3 线程在此核心上运行的时间占选定总时间的百分比。

应用运行中:CPU 核心过滤器

  • 在过滤器中选择所需的逻辑核心。

    选择核心后,其他过滤器将仅显示线程在选定核心上运行的时间间隔的数据。

    运行中的 CPU 核心

线程状态:等待中

正在等待 状态表示线程当前未运行,正在等待解锁。 例如,这可能是由于争用同步对象、其他线程触发的垃圾回收等原因导致的。

选择 正在等待 线程状态以了解线程何时以及为何被挂起。 例如,要了解线程因其他线程的垃圾回收而等待的时间,请在 线程 图表中选择该线程,并在 线程状态 中的 正在等待 状态。 时间将在 垃圾收集 中的 事件 过滤器中显示。

选择 正在等待 状态后,您可以使用 等待:激活者 子过滤器微调结果过滤器。

等待:激活者

等待:激活者 子过滤器显示解锁选定线程的线程和进程。 这在您需要了解是谁阻塞了某个线程时可能会很有用。

由激活

1 线程或进程名称。

2 线程在被激活线程或进程解锁前等待的时间,所有选定线程的总和。

3 线程在被激活线程或进程解锁前等待的时间占选定总时间的百分比。

例如,您想了解是谁阻塞了应用程序中的 Main 线程。 您在 线程 图表中选择 Main 线程,并在 线程状态 中的 正在等待 状态。 等待:激活者 子过滤器显示以下内容:

Thread#2 90 ms 90%

Thread#1 10 ms 10%

这意味着 Main 线程被阻塞了 100 ms。 在 90% 的情况下(总计 90 ms),是由于 Thread#2;在 10% 的情况下(总计 10 ms),是由于 Thread#1。

应用等待中:由激活过滤器

  • 在过滤器中选择所需的激活线程或进程。

    选择线程或进程后,其他过滤器将仅显示线程在被指定激活线程或进程解锁前等待的时间间隔的数据。

    由激活
最后修改日期: 2025年 9月 28日