{"id":3943,"date":"2010-04-01T14:23:00","date_gmt":"2010-04-01T14:23:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vcblog\/2010\/04\/01\/vc-tip-get-detailed-build-throughput-diagnostics-using-msbuild-compiler-and-linker\/"},"modified":"2019-02-18T18:45:34","modified_gmt":"2019-02-18T18:45:34","slug":"vc-tip-get-detailed-build-throughput-diagnostics-using-msbuild-compiler-and-linker","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/vc-tip-get-detailed-build-throughput-diagnostics-using-msbuild-compiler-and-linker\/","title":{"rendered":"VC++ Tip: Get detailed build throughput diagnostics using MSBuild, compiler and linker"},"content":{"rendered":"<p><font size=\"3\"><font face=\"Calibri\"><\/p>\n<p><p class=\"MsoNormal\">We know that build throughput for applications are a time crunch on developer productivity. We have spent some time on <a href=\"http:\/\/blogs.msdn.com\/vcblog\/archive\/2009\/09\/10\/linker-throughput.aspx\"><font color=\"#0000ff\">improving linker throughput<\/font><\/a> and other areas in VS2010, and will continue to investigate improving overall build throughput in future releases.<\/p>\n<p class=\"MsoNormal\">In this blog post, we will describe a couple of options to get diagnostics for your projects using <a href=\"http:\/\/blogs.msdn.com\/vcblog\/archive\/2008\/11\/20\/printf-hello-msbuild-n.aspx\"><font color=\"#0000ff\">MSBuild<\/font><\/a> and then taking a deeper dive into the compiler and the linker.<\/p>\n<p class=\"MsoNormal\"><u><span><font face=\"Cambria\"><strong>Using MSBuild<\/p>\n<p><\/strong><\/font><\/span><\/u><\/p>\n<p class=\"MsoNormal\">Using the IDE, you can enable Timing Logging by setting &ldquo;Tools\/Options\/Projects and Solutions\/VC++ Project Settings\/Build Timings&rdquo; = &ldquo;Yes&rdquo; or raise the verbosity of the build to &ldquo;Diagnostics&rdquo; from &ldquo;Tools\/Options\/Project and Solutions\/Build and Run\/MSBuild project build output verbosity&rdquo;.<\/p>\n<p class=\"MsoNormal\">Using these options, you can get performance summaries per project and also get details on where time is spent on targets and tasks. This sort of information is useful say when you are trying to figure out how long that copy task is taking to copy your files over from across folders.<\/p>\n<p class=\"MsoNormal\"><span>1&gt;&#8212;&#8212; Rebuild All started: Project: mfc-app, Configuration: Debug Win32 &#8212;&#8212;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Build started 1\/12\/2010 5:31:58 PM.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;_PrepareForClean:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Deleting file &#8220;Debugmfc-app.lastbuildstate&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;InitializeBuildStatus:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Creating &#8220;Debugmfc-app.unsuccessfulbuild&#8221; because &#8220;AlwaysCreate&#8221; was specified.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;ClCompile:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; stdafx.cpp<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; ChildFrm.cpp<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Generating Code&#8230;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Manifest:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Deleting file &#8220;Debugmfc-app.exe.embed.manifest&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;LinkEmbedManifest:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; mfc-app.vcxproj -&gt; C:Usersuserdocumentsvisual studio 2010Projectsmfc-appDebugmfc-app.exe<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;FinalizeBuildStatus:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Deleting file &#8220;Debugmfc-app.unsuccessfulbuild&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Touching &#8220;Debugmfc-app.lastbuildstate&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Project Performance Summary:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp;&nbsp;&nbsp; 17877 ms&nbsp; C:Usersuserdocumentsvisual studio 2010Projectsmfc-appmfc-appmfc-app.vcxproj&nbsp;&nbsp; 1 calls<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;17877 ms&nbsp; rebuild&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 calls<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Target Performance Summary:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 ms&nbsp; CreateCustomManifestResourceNames&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 calls<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 630 ms&nbsp; LinkEmbedManifest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 calls<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 956 ms&nbsp; Manifest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 calls<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp;&nbsp;&nbsp;&nbsp; 2419 ms&nbsp; Link&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 calls<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp;&nbsp;&nbsp; 12738 ms&nbsp; ClCompile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 calls<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Task Performance Summary:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 ms&nbsp; FindUnderPath&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 calls<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp;&nbsp;&nbsp;&nbsp; 3035 ms&nbsp; Link&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 calls<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp;&nbsp;&nbsp; 12733 ms&nbsp; CL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 calls<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Build succeeded.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Time Elapsed 00:00:17.89<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========<\/span><\/p>\n<h2><u><span><font face=\"Cambria\">Compiler and Linker switches<\/p>\n<p><\/font><\/span><\/u><\/h2>\n<p class=\"MsoNormal\">There are a couple of &ldquo;hidden&rdquo; undocumented switches that you could use to diagnose where you are spending most of your build times. \/Bt and \/time switches could be valuable to you if you are interested to know about where time is being spent. <\/p>\n<p class=\"MsoNormal\">We use \/Bt+ and \/time+ pairings for our internal throughput runs where a tool takes as input the output timings and generates a summary listing of time spent per component. This allows us to get throughput measurements for individual components. (A useful tool for someone to write and contribute to <a href=\"http:\/\/code.msdn.microsoft.com\/\">code gallery<\/a> \ud83d\ude09 )<\/p>\n<p class=\"MsoNormal\"><b>Note on hidden switches: <\/p>\n<p><\/b><\/p>\n<p class=\"MsoNormal\"><span>These are switches that we sometimes expose for diagnostic purposes. They are not documented and will\/could change in future releases. Please use them with discretion. <\/span><b><\/p>\n<p><\/b><\/p>\n<p class=\"MsoListBullet\"><b>Usage<\/p>\n<p><\/b><\/p>\n<p class=\"MsoListBullet\"><span><span>&middot;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span>To get less verbose output, use &ldquo;cl \/Bt&rdquo; or &ldquo;link \/time&rdquo;<\/p>\n<p class=\"MsoListBullet\"><span><span>&middot;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/span>To get more verbose output, use &ldquo;cl \/Bt+&rdquo; or &ldquo;link \/time+&rdquo; (Works in VS2010 only)<\/p>\n<h2><u><span><font face=\"Cambria\">Using compiler switch &ldquo;\/Bt&rdquo;<\/p>\n<p><\/font><\/span><\/u><\/h2>\n<p class=\"MsoNormal\">Add &ldquo;\/Bt&rdquo; to your compiler options directly on the command line or go to project properties and add &ldquo;\/Bt&rdquo; to Additional options in &ldquo;Configuration Properties\/C\/C++\/Command Line&rdquo;. After building, the highlighted text will tell you how much time was spent in c1xx (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Compiler#Front_end\"><font color=\"#0000ff\">front end compiler<\/font><\/a>) and c2 (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Compiler#Back_end\"><font color=\"#0000ff\">back end compiler<\/font><\/a>)<\/p>\n<p class=\"MsoNormal\"><span>1&gt;&#8212;&#8212; Rebuild All started: Project: mfc-app, Configuration: Debug Win32 &#8212;&#8212;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Build started 1\/13\/2010 10:44:51 AM.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;_PrepareForClean:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Deleting file &#8220;Debugmfc-app.lastbuildstate&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;InitializeBuildStatus:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Creating &#8220;Debugmfc-app.unsuccessfulbuild&#8221; because &#8220;AlwaysCreate&#8221; was specified.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;ClCompile:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; stdafx.cpp<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; time(C:Program Files (x86)Microsoft Visual Studio 10.0VCbinc1xx.dll)=6.914s<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; time(C:Program Files (x86)Microsoft Visual Studio 10.0VCbinc2.dll)=0.064s<\/span><span><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>&hellip;&hellip;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Generating Code&#8230;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; time(C:Program Files (x86)Microsoft Visual Studio 10.0VCbinc2.dll)=0.011s<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>&hellip;&hellip;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; time(C:Program Files (x86)Microsoft Visual Studio 10.0VCbinc2.dll)=0.005s<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Manifest:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Deleting file &#8220;Debugmfc-app.exe.embed.manifest&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;LinkEmbedManifest:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; mfc-app.vcxproj -&gt; C:Usersuserdocumentsvisual studio 2010Projectsmfc-appDebugmfc-app.exe<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;FinalizeBuildStatus:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Deleting file &#8220;Debugmfc-app.unsuccessfulbuild&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Touching &#8220;Debugmfc-app.lastbuildstate&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Build succeeded.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Time Elapsed 00:00:10.92<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========<\/span><\/p>\n<h2><u><span><font face=\"Cambria\">Using linker switch &ldquo;\/time&rdquo;<\/p>\n<p><\/font><\/span><\/u><\/h2>\n<p class=\"MsoNormal\">Add &ldquo;\/time&rdquo; to your linker options directly on the command line or go to project properties and add &ldquo;\/time&rdquo; to Additional options in Configuration Properties-&gt;Linker-&gt;Command Line. The highlighted text will tell you how much time was spent in each pass of the linker. See more on why linker does multiple passes <a href=\"http:\/\/blogs.msdn.com\/vcblog\/archive\/2009\/09\/10\/linker-throughput.aspx\"><font color=\"#0000ff\">here<\/font><\/a><\/p>\n<p class=\"MsoNormal\">Note on LTCG: <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/xbf3tbeh(VS.100).aspx\"><font color=\"#0000ff\">Link time code generation<\/font><\/a> or <a href=\"http:\/\/blogs.msdn.com\/vcblog\/archive\/2009\/02\/24\/quick-tips-on-using-whole-program-optimization.aspx\"><font color=\"#0000ff\">LTCG<\/font><\/a> is where the linker calls the back end (c2.dll) to do code generation. Thus, if you use generate LTCG builds, you may see that a lot of time is spent in the linker though it is the back end compiler that is doing all the work.<\/p>\n<p class=\"MsoNormal\"><span>1&gt;&#8212;&#8212; Rebuild All started: Project: mfc-app, Configuration: Debug Win32 &#8212;&#8212;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Build started 1\/13\/2010 10:47:39 AM.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;_PrepareForClean:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Deleting file &#8220;Debugmfc-app.lastbuildstate&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;InitializeBuildStatus:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Creating &#8220;Debugmfc-app.unsuccessfulbuild&#8221; because &#8220;AlwaysCreate&#8221; was specified.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;ClCompile:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>&hellip;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Generating Code&#8230;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Link:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Pass 1: Interval #1, time = 0.187s<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp;&nbsp;&nbsp; Wait PDB close: Total time = 0.484s<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Pass 2: Interval #2, time = 0.578s<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Final: Total time = 0.765s<\/span><span><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Manifest:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Deleting file &#8220;Debugmfc-app.exe.embed.manifest&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;LinkEmbedManifest:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; IncrPass2: Interval #1, time = 0.062s<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; IncrPass2: Interval #2, time = 0.032s<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Final: Total time = 0.094s<\/span><span><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; mfc-app.vcxproj -&gt; C:Usersuserdocumentsvisual studio 2010Projectsmfc-appDebugmfc-app.exe<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;FinalizeBuildStatus:<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Deleting file &#8220;Debugmfc-app.unsuccessfulbuild&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;&nbsp; Touching &#8220;Debugmfc-app.lastbuildstate&#8221;.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Build succeeded.<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>1&gt;Time Elapsed 00:00:10.82<\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\"><span>========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========<\/p>\n<p><\/span><\/p>\n<p class=\"MsoListBullet\">\n<p>&nbsp;<\/p>\n<\/p>\n<p class=\"MsoListBullet\">If you have any questions or have tips\/stories that you would like to share, please post a comment to this blog and we will respond where appropriate. <\/p>\n<p class=\"MsoNormal\">Thanks<a class=\"\" name=\"_GoBack\"><\/a>,<\/p>\n<p class=\"MsoNormal\">Vikas Bhatia<span><\/p>\n<p><\/span><\/p>\n<p class=\"MsoNormal\">VC++ Team<\/p>\n<p class=\"MsoNormal\">\n<\/p>\n<p><\/font><\/p>\n<p>&nbsp;<\/p>\n<p><\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We know that build throughput for applications are a time crunch on developer productivity. We have spent some time on improving linker throughput and other areas in VS2010, and will continue to investigate improving overall build throughput in future releases. In this blog post, we will describe a couple of options to get diagnostics for [&hellip;]<\/p>\n","protected":false},"author":289,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[77,78,65,25,13],"class_list":["post-3943","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","tag-build-throughput","tag-build-times","tag-compiler","tag-linker","tag-msbuild"],"acf":[],"blog_post_summary":"<p>We know that build throughput for applications are a time crunch on developer productivity. We have spent some time on improving linker throughput and other areas in VS2010, and will continue to investigate improving overall build throughput in future releases. In this blog post, we will describe a couple of options to get diagnostics for [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/3943","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/289"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=3943"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/3943\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=3943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=3943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=3943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}