在Visual Studio中显示构建时间?

Rog*_*mbe 168 msbuild build-process visual-studio

我们的构建服务器花了太长时间来构建我们的一个C++项目.它使用Visual Studio 2008.有没有办法让devenv.com记录在解决方案中构建每个项目所花费的时间,以便我知道在哪里集中精力?

在这种情况下,改进的硬件不是一种选择.

我已经尝试设置输出详细程度(在工具/选项/项目和解决方案/构建和运行/ MSBuild项目构建输出详细程度下).这似乎在IDE中没有任何影响.

从命令行运行MSBuild时(对于Visual Studio 2008,它需要是MSBuild v3.5),它显示结束时经过的总时间,但不显示在IDE中.

我真的想要一个解决方案中每个项目的时间报告,以便我可以找出构建过程花费时间的地方.

或者,因为我们实际上使用NAnt来驱动构建过程(我们使用Jetbrains TeamCity),有没有办法让NAnt告诉我每一步所花费的时间?

Jes*_*erE 192

菜单工具选项项目和解决方案VC++项目设置构建时间应该有效.

  • 人们会认为它是在"构建和运行"下,但是没有,这本来就是简单的 (76认同)
  • 如果他们愿意把它放在那里,别人会抱怨它不是他们所期望的那样.对于不同的用户来说,最明显的地方是不同的. (4认同)
  • 这是什么输出? (4认同)
  • 这适用于在构建阶段中分析各个任务,但不提供整个构建的摘要. (4认同)
  • @AndreasBonini:在*Build and Run*下你会发现*MSBuild项目构建输出详细程度*你可以在上面设置*Minimal*来获得时间. (3认同)
  • 要获取任何计时信息,有必要将设置*"MSBuild项目构建输出详细程度"*从***"最小"***(安装默认值)更改为***"正常"***(在菜单中*工具*→*选项*→*项目和解决方案*→*构建和运行*).也许您可以将此信息添加到您的答案中? (2认同)

Dav*_*ore 81

转到工具→选项→项目和解决方案→构建和运行→MSBuild项目构建输出详细程度 - 设置为"正常"或"详细",构建时间将显示在输出窗口中.

  • 设置为"Normal"而不是"Detailed"就够了:) (22认同)
  • 将此设置为Normal确实是最想要的,因为VC++ Project Settings - > Build Timing显示了太多细节 (6认同)
  • 这正是大多数人想要的 - 总时间,而不是 ClCompile 在其中一个项目中花费了 22424 毫秒。Ctrl+Q,构建并运行<Enter>,并将第一个“minimal”更改为“normal”。 (3认同)
  • 在Visual Studio 2010之前,Visual C++项目不使用MSBuild,因此此设置无效.但是,适用于其他项目类型. (2认同)

Seb*_*ian 32

Visual Studio 2012至2017年

  • 对于MSBuild项目(例如所有.Net-Projects):
    单击Tools -> Options,然后选择Projects and Solutions -> Build and Run.更改MSBuild project build output verbosityNormal.因此,它将在其构建的每个解决方案项目中显示经过的时间.但不幸的是,所有项目都没有经过时间总和.您还将看到Build started Timestamp

  • FOR C/C++项目:

单击Tools -> Options,然后选择Projects and Solutions -> VC++ Project Settings.

更改Build TimingYes.

  • 您提供的解决方案也适用于VS 2015的C++项目.此外,我选择使用此解决方案而不是"构建计时",因为它仅显示总时间. (4认同)
  • 与 VS2019 没有变化。显示所有 MSBuild 项目(包括 C/C++)的总“已用时间”。 (2认同)

ope*_*och 13

我创建了一个扩展来测量构建时间并在图表中显示事件的顺序:Visual Studio Build Timer

在此处输入图片说明

它在 Visual Studio 市场上可用,适用于 VS2015、VS2017 和 VS2019。

除了显示哪些项目需要更长的时间之外,该图表还有效地显示了它们之间的依赖关系,即需要等待其他项目的项目,这有助于确定需要打破哪些依赖关系以增加构建的并行度。

  • 请将 Visual Studio Build Timer 扩展升级到 VS2022,它真的很简洁!顺便说一句,我在这篇博客文章中提到了它 https://blog.ndepend.com/improve-visual-studio-build-performance/ (5认同)
  • 这些天我有点忙,但这在我的计划中。 (4认同)
  • 您能否升级它以支持VS 2019 (3认同)
  • 如果您有时间支持 CS 2022 那就太好了:) (3认同)

Oli*_*ver 9

对于Visual Studio 2012,您可以使用Build Monitor扩展.


Mat*_*tyT 6

如果您坚持使用VS2005,则可以使用vs-build-timer插件.在构建完成时,它显示了所花费的总时间和每个项目持续时间的(可选)摘要.

免责声明; 我写的.是的,我需要创建一个安装程序...有一天!


小智 6

工具 - >选项 - >项目和解决方案 - >构建和运行 - >

将"MSBuild项目构建输出详细程度"从"最小"设置为"正常"


Dav*_*ore 5

由于您的问题涉及从命令行使用 DevEnv,我还建议使用MSBuild(它可以在不修改的情况下构建 .sln 文件)。

msbuild /fl /flp:Verbosity=diagnostic Your.sln
Run Code Online (Sandbox Code Playgroud)

msbuild /? 将向您展示文件记录器的其他有用选项。


小智 5

如果您想可视化您的构建,您可以使用 IncrediBuild。IncrediBuild 现在作为 Visual Studio 2015 Update 1 的一部分免费提供独立模式(未分发,但仅用于本地机器上的 8 个内核)

免责声明:我为 IncrediBuild 工作