2

我正在使用 dotTrace 来分析用 C# 编写并在 IIS 服务器上运行的 WCF .Net Web 应用程序。一项显示在 PipelineRuntime.ProcessRequestNotification 中花费了 7.77 秒,其中包含以下子进程

  • MyMethod 中的 0.03 秒
    • 0.016 秒在 HttpRequest.GetHeaders
  • [不安全的堆栈行走] 0.2 秒

这使得超过 7 秒的时间完全下落不明。有谁知道错过的时间会去哪里?是否有可能 MyMethod 中的某些东西占用了那个时间,但 dotTrace 只是没有正确报告它?

4

1 回答 1

0

在这种情况下,未计入时间是 PipelineRuntime.ProcessRequestNotification 自己的时间。这意味着该特定函数的代码和所有由 JIT函数内联的代码消耗了大约 7 秒。

如果我们假设但不应该花费太多,我们必须调查原因。有两种可能性 - 此函数被调用太多次(跟踪分析类型将有助于检查)或该函数中的某些指令很慢(逐行分析类型将帮助您分析内部的相对指令时间)。

于 2015-04-20T11:03:19.420 回答