【问题标题】:Interpreting MSBuild Performance Summary Output解释 MSBuild 性能摘要输出
【发布时间】:2010-07-28 14:39:43
【问题描述】:

我正在尝试了解 MSBuild 的一些性能摘要输出。结果如下所示:

Target Performance Summary:
        0 ms  PrepareForRun                             74 calls
        0 ms  Compile                                   74 calls
        ...
        ...
        ...
        ...
    15173 ms  ResolveProjectReferences                  74 calls
    29607 ms  Build                                     75 calls

Task Performance Summary:
        2 ms  CreateCSharpManifestResourceName           6 calls
        2 ms  ResolveKeySource                           1 calls
    ...
    ...
    ...
    ...
     3623 ms  Copy                                     511 calls
     7468 ms  ResolveAssemblyReference                  74 calls
    11234 ms  Exec                                      12 calls
    48600 ms  MSBuild                                  210 calls

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:29.60

为什么 MSBuild 的总时间超过了总运行时间?实际上,运行此构建的实际秒表时间约为 29 秒。我在网上看到的这些摘要的任何示例都表明,总任务和目标时间是相同的。

【问题讨论】:

  • ResolveAssemblyReferences(RAR) 和 ResolveCOMReferences (RCR) 通常花费的时间最多。
  • @RitchMelton 实际上,他们没有。我已经添加了对这些目标的跟踪(通过直接修改 Microsoft 目标),它们显示 RAR 花费的时间很少。整个时间报告对我来说似乎被打破了......
  • 他们曾经。显然如此。如果它神奇地改变了,我会感到惊讶。
  • 为什么不做一个诊断?
  • 它的工作原理是一样的。说它不是只是坏信息。

标签: msbuild


【解决方案1】:

MSBuild 和 CallTarget 任务调用其他目标(以及其他任务)。在这些任务中花费的时间也计入 MSBuild 和 CAllTarget 任务。一个错误,真的。

因此,在读取此数据时,请始终忽略这两个任务。其他任务的总和应该比总构建时间少一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多