In the following post I’ll show you how you can measure how many read and writes (in bytes) your build takes. This may prove useful since the amount of writes can have a tremendous effect on the build total time. More on how to shorten your build time in a future post.
Step 1: Download Process Monitor
The key for measuring the build read and writes is to download the great tool by Sysinternals, Process Monitor.
Process Monitor is a tool which monitors all the processes in your system for several activities, like: file-access, Registry, etc. It has rich support for filtering and summarizing the information.
Step 2: Setup a filter on your build process
Select the “Filter” menu and then the “Filter…” menu item. Now add a new filter with “Process Name” as “devenv.exe” or “msbuild.exe”, depending on how you build your project.
Also disable all activities but the “file system” activity, since we want to focus on these alone.
Step 3: Run your build process
Clear the captured data from the process monitor to get a clean screen.
Now invoke your build process with your favorite tool: Visual Studio or msbuild.
Step 4: Get the results
Select the “Tools” menu and then the “File Summary…” menu item.
Note: some file names were blacked to protect the client’s properties.
Step 5: Check by folder
Present the file summary by folders to get a better understanding on which folders you get most of the writes.
This is it. Here you can already see exactly how many read and writes you are doing and also how much time was invested in those writes (check the File Time column).
In a future post, I’ll cover how you can decrease build time using this information.
That’s it for now,
Arik Poznanski.