如何在Visual Studio 2005项目中创建一个表来获取每个c ++文件的编译时间。
我正在使用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]
关于https://blogs.msdn.microsoft.com/vcblog/2010/04/01/vc-tip-get-detailed-build-throughput-diagnostics-using-msbuild-compiler-and-linker/这个选项的更多信息,我发现这要归功于这个答案https://stackoverflow.com/a/3513043/453436
根据您可以使用的工具,有很多方法可以提取时间线。我使用find,grep和perl的组合在bash shell下完成。以下将为您提供排序最长的编译时间。
find . -name '*.log' | xargs grep time | perl -ne '$_ =~ /=(.*?)s.*\[(.*)\]/; print "$1 $2\n";' |sort -rn
“工具” - >“选项” - >“项目和解决方案” - >“VC ++项目设置”
勾选“构建时间”。
我已经使用了那个版本的编译器已经有一段时间了,但我记得它打印了它编译到控制台的文件的名称(当你使用命令行构建时)。如果是这种情况,那么您可以编写一个执行以下操作的程序:
虽然这种方法可以用C ++开发,但使用Perl等工具来实现它可能会更容易。