5

我有一个分配给核心#7 的.NET 线程。线程函数每 300ms 触发一次。最初执行一个调用大约需要 20-30 毫秒。但是这个时间逐渐增加,在大约 2,52,000 次调用后变得超过 150 毫秒。

我还注意到核心#7 的使用率从 10% 开始。到线程函数的调用次数达到 2,52,000 核心 #7 的处理器使用率大约为 60%。当我停止触发线程函数时,处理器使用率变为 0%。但是当我再次开始触发时,核心使用率从 60%(不是从 0%)开始,然后逐渐增加。

我还注意到应用程序没有内存泄漏。

在我的线程函数中,我将两个字典的元素组合起来,并将其添加到 foreach 循环中的另一个字典中。字典中的元素数将始终为 45。

我希望这个应用程序能够 24/7 全天候运行。请让我知道一些技巧,以使此处理器的使用保持不变。

4

1 回答 1

4

当您将项目添加到 aDictionary时,可能必须增加容量。你的字典会永远增长吗?

来自MSDN

如果 Count 小于容量,则此方法接近 O(1) 操作。如果必须增加容量以容纳新元素,则此方法变为 O(n) 操作,其中 n 为 Count。

于 2012-11-13T04:30:37.617 回答