解释MSBuild性能摘要输出
我试图理解MSBuild的一些性能摘要输出。结果如下所示:解释MSBuild性能摘要输出,msbuild,Msbuild,我试图理解MSBuild的一些性能摘要输出。结果如下所示: Target Performance Summary: 0 ms PrepareForRun 74 calls 0 ms Compile 74 calls ... ... ... ... 15173 ms
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秒。我在网上看到的这些摘要的任何示例都表明,总任务时间和目标时间是相同的。MSBuild和CallTarget任务调用其他目标(从而调用其他任务)。在这些任务中花费的时间也会根据MSBuild和CAllTarget任务计算。一只虫子,真的
因此,在读取这些数据时,始终忽略这两项任务。其他任务的总和应略小于总生成时间。MSBuild和CallTarget任务调用其他目标(以及其他任务)。在这些任务中花费的时间也会根据MSBuild和CAllTarget任务计算。一只虫子,真的
因此,在读取这些数据时,始终忽略这两项任务。其他任务的总和应该比总生成时间少一点。ResolveAssemblyReferences(RAR)和ResolveCOMReferences(RCR)通常花费最多的时间。@RitchMelton实际上,它们不会。我已经为这些目标添加了跟踪功能(通过直接修改Microsoft目标),它们表明RAR只需很少的时间,而在我看来,整个报告过程似乎都是中断的……它们过去是这样的。显然如此。如果它神奇地改变了,我会很惊讶。为什么不做一个诊断呢?它的工作原理是一样的。说这不是错误的信息。ResolveAssemblyReferences(RAR)和ResolveCOMReferences(RCR)通常花费的时间最多。@RitchMelton事实上,它们不会。我已经为这些目标添加了跟踪功能(通过直接修改Microsoft目标),它们表明RAR只需很少的时间,而在我看来,整个报告过程似乎都是中断的……它们过去是这样的。显然如此。如果它神奇地改变了,我会很惊讶。为什么不做一个诊断呢?它的工作原理是一样的。说这不只是坏消息。