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

Memory leaks 解释令人惊讶的计时器数量并找到它们的来源,memory-leaks,asp.net-core-3.0,Memory Leaks,Asp.net Core 3.0,我有一个CPU泄漏的地方,并试图找出根源(内存增加了一点太多,但没有那么快) 我通过dotnet计数器收集了一些数据,发现给定进程中的计时器数量不断增加。例如,当46%的CPU被使用时,它报告了大约450个计时器(参见下面的数据)。请注意,此计数只会缓慢增加,但肯定会像我的CPU使用率一样增加。还要注意的是,它几乎处于空闲状态,没有客户在线 这导致了两个问题: 1) 这正常吗?我应该继续走这条路吗?我觉得有这么多计时器很奇怪 2) 在我自己的代码中,我从未使用过Timer类,我只使用过Stop

我有一个CPU泄漏的地方,并试图找出根源(内存增加了一点太多,但没有那么快)

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

这导致了两个问题:

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

2) 在我自己的代码中,我从未使用过Timer类,我只使用过Stopwatch类一次,但仅此而已

那么,找到使用这些计时器的类/库的最佳方法是什么呢?

1)确实有些可疑,这肯定不正常

我有一个类生成了数百个线程,并让它们保持活动状态以监听传入呼叫

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

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

最好的选择是使用dotnet跟踪收集。对我帮助很大,可以直接从dotnet trace为speedscope生成反跟踪