解释数量惊人的计时器并找到它们的来源

Explain surprising number of timers and finding their origin

我在某处发生了 CPU 泄漏,我正试图找出源头(RAM 增加了一点,但没有那么快)。

我通过dotnet-counters收集了一些数据,发现给定进程中的计时器数量不断增加。例如,当使用了 46% 的 CPU 时,它报告了大约 450 个计时器(请参阅以下数据)。请注意,此计数只会增加,缓慢但肯定会像我的 CPU 用法一样。还要注意,它几乎处于闲置状态,没有在线客户。

这导致了 2 个问题:

1) 正常吗?我应该继续走这条路吗?我觉得有这么多计时器很奇怪。

2) 在我自己的代码中,我从不使用计时器 class,我使用秒表 class 一次,仅此而已。

那么找到使用这些计时器的 class/library 的最佳方法是什么?

1)确实有猫腻,绝对不正常

我有一个 class 生成数百个线程并让它们保持活动状态以侦听来电。

长话短说,这么多计时器不正常。

2) 计时器来自图书馆深处的某个地方。我找不到找到它们的简单方法。

最佳选择是使用 dotnet-trace collect。 https://www.speedscope.app/ 对我帮助很大,可以直接从 dotnet-trace 为 speedscope 生成 de traces。