【发布时间】:2016-06-28 16:15:29
【问题描述】:
我以前没有使用过 Windows 的 DebugDiag 的经验,需要对这份报告有所了解。
我的 EWS 托管 API 应用程序每次发生事件时都会跨越一个新任务。
我的应用程序以大约 30-35% 的 CPU 使用率运行,因此我决定运行此诊断工具来找出原因和原因。
我知道了,需要确保我看到的和我想的一样。
从下图来看,Task.StartNew函数被执行了5次,导致CPU占用这么高?
更新
深入研究后,我发现似乎是“Stacktrace”,其中一些函数调用以红色突出显示,我有一种感觉,红色意味着这些函数导致高 CPU,这些函数似乎来自 EWS 托管 API 代码。
【问题讨论】:
-
调用堆栈的顶部是一个同步数据的 Exchange 任务。因此可以预期高 CPU 使用率,并将在数据同步完成时结束。如果您知道如何使用 ILSpy 等工具,则可以反编译相关方法以获得更多见解。
标签: .net multithreading infinite-loop cancellationtokensource