分析编译时间

Nav*_*een 6 c++ build

我有一个C++代码,我正在使用VC7进行编译,它需要花费大量的时间来构建它.有什么方法可以描述它,并找出为什么需要时间来构建?

Rog*_*mbe 9

在Visual Studio 2008中,有一个用于打开构建计时的设置.它可能也存在于VC7中......

Tools/ Options/ Projects and Solutions/ VC++ Project Settings/ /Build Timing: Yes

这适用于C++项目,(从VS2008开始)不使用MSBuild.对于基于MSBuild的项目(例如C#),您希望增加详细程度:

Tools/ Options/ Projects and Solutions/ Build and Run/ /MSBuild project build output verbosity

默认情况下,它设置为"最小".


小智 5

最近,Microsoft 的C++ Build Insights SDK/timetrace为其vcperf引入了一个选项,该选项允许您在任何基于 chromium 的浏览器中以火焰图的形式分析您的构建并可视化特定组件的构建时间。

假设您已vcperf下载并安装,您需要:

  1. 通过执行启动其会话
vcperf /start SessionName
Run Code Online (Sandbox Code Playgroud)
  1. 运行您的构建(事件由 vcperf 在系统范围内捕获)
  2. 停止会话
vcperf /stop SessionName /timetrace output.json
Run Code Online (Sandbox Code Playgroud)

您现在可以运行基于 chromium 的浏览器,输入<browser_name>://tracing, (例如chrome://tracing)并加载output.json文件以进行可视化。

可视化示例取自此处