3

在 Teamcity 上,我的项目的构建日志如下所示:

[Build] MSBuild (28s)
    [CoreCompile] Csc (6s)
    [RunCodeAnalysis] CodeAnalysis (11s)
    [StyleCop] StyleCopTask (9s)

[Build] MSBuild (9s)
    [CoreCompile] Csc
    [RunCodeAnalysis] CodeAnalysis (8s)
    [StyleCop] StyleCopTask

这是一个简化的摘录,完整的日志有数千行。无论如何,这些行显示了每个 msbuild 任务花费了多长时间(如果省略括号中的时间,我理解这意味着它花费了不到一秒)。

Teamcity 是否可以将这些信息绘制在图表中,累积类似的任务?因此,对于上面的示例,图表将显示 C# 编译器为 6 秒,CodeAnalysis 为 19 秒,StyleCop 为 9 秒。

对于具有多个“构建步骤”的项目,Teamcity 会在“PerfMon”选项卡下的表格中显示每个步骤所花费的时间。我喜欢。但我的项目是一个漫长的“构建步骤”(msbuild)。我想知道时间是如何在其中度过的。

动机:我们的构建非常缓慢。与实际编译代码(Csc 是 C# 编译器)相比,我很好奇在 Style Cop 和代码分析中花费了多长时间。

4

1 回答 1

3

如果您对简单的控制台输出没问题,请尝试使用PerformanceSummary 开关(/clp:PerformanceSummary) 调用 MsBuild。

在构建结束时,它会输出如下的详细摘要。

   ...
   14 ms  SplitResourcesByCulture                    3 calls
   18 ms  ResolveProjectReferences                   3 calls
   22 ms  PostBuildEvent                             1 calls
   28 ms  CleanReferencedProjects                    3 calls
   48 ms  UpdateAssemblyInfo                         1 calls
   51 ms  CoreResGen                                 3 calls
   74 ms  CoreClean                                  3 calls
  103 ms  _CopyOutOfDateSourceItemsToOutputDirectory   2 calls
  177 ms  _CopyFilesMarkedCopyLocal                  3 calls
  293 ms  CheckPrerequisites                         3 calls
  327 ms  GenerateTemporaryTargetAssembly            1 calls
  329 ms  Clean                                      5 calls
  460 ms  MarkupCompilePass2                         1 calls
  627 ms  ResolveAssemblyReferences                  3 calls
  890 ms  RestorePackages                            3 calls
  891 ms  MarkupCompilePass1                         1 calls
  936 ms  CoreCompile                                4 calls
 4583 ms  Rebuild                                    4 calls
12133 ms  Setupkit                                   1 calls
24258 ms  CompileAndTest                             1 calls
于 2013-08-30T20:11:04.477 回答