解释数量惊人的计时器并找到它们的来源
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。
我在某处发生了 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。