在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#编译器)。
答案 0 :(得分:3)
如果您对简单的控制台输出没问题,请尝试使用PerformanceSummary switch(/ 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