2010-07-28 72 views
1

我想了解一些来自MSBuild的性能汇总输出。结果如下所示:解释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秒。我在网上看到的这些摘要的任何例子都表明总任务和目标时间是相同的。

+0

ResolveAssemblyReferences(RAR)和ResolveCOMReferences(RCR)通常占用大部分时间。 – 2011-07-18 01:08:19

+1

@RitchMelton其实,他们没有。我已经添加了追踪到这些目标(通过直接修改微软的目标),他们显示RAR需要很少的时间整个时间报告似乎打破了我... – ya23 2013-07-02 10:05:50

+0

他们曾经。显然如此。如果它奇迹般地改变,我会感到惊讶。 – 2013-07-02 10:12:59

回答

5

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

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