在Visual Studio C++中打印每个文件的编译时间

10 visual-studio-2005 visual-studio

如何在Visual Studio 2005项目中创建一个表来获取每个c ++文件的编译时间.

Bow*_*ens 10

我正在使用Visual Studio 2010,但其他版本的Visual Studio可能有类似的东西.在VS2010中,您可以添加命令行选项/ Bt +,它打印编译每个文件所用的时间.所以在"配置属性" - >"C/C++" - >"命令行" - >"其他选项"下的项目属性中添加/ Bt +

设置/ Bt +选项会导致输出(记录在日志文件中)行如下所示:

time(c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\c1.dll)=0.05110s < 25394686804 - 25394831194 > BB [C:\not-important\nlopt-2.4.2\direct\DIRect.c]
Run Code Online (Sandbox Code Playgroud)

有关此选项的更多信息,请访问 https://blogs.msdn.microsoft.com/vcblog/2010/04/01/vc-tip-get-detailed-build-throughput-diagnostics-using-msbuild-compiler-and-linker/ 我发现这要归功于这个答案/sf/answers/245913041/

根据您可以使用的工具,有很多方法可以提取时间线.我使用find,grep和perl的组合在bash shell下完成.以下将为您提供排序最长的编译时间.

find . -name '*.log' | xargs grep time | perl -ne '$_ =~ /=(.*?)s.*\[(.*)\]/; print "$1 $2\n";' |sort -rn
Run Code Online (Sandbox Code Playgroud)


Ale*_*x B 3

“工具”->“选项”->“项目和解决方案”->“VC++项目设置”

勾选“构建时间”。

  • 构建计时给出了各种构建过程的时间,而不是每个文件的时间。 (3认同)