如何创建一个表来获取visual studio 2005项目中每个c ++文件的编译时间。
答案 0 :(得分:8)
我使用的是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
答案 1 :(得分:4)
“工具” - &gt; “选项” - &gt; “项目和解决方案” - &gt; “VC ++项目设置”
勾选“构建时间”。
答案 2 :(得分:0)
我已经使用了那个版本的编译器已经有一段时间了,但是我记得它打印了它正在编译到控制台的文件的名称(当你使用命令行构建时)。如果是这种情况,那么您可以编写一个执行以下操作的程序:
虽然这种方法可以用C ++开发,但使用Perl等工具来实现它可能更容易。