Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Image Removed

...

Process Virtualization in VS Compilation of C++ Projects

This section describes in detail how the IncrediBuild architecture is used for Process Virtualization, when Visual Studio performs compilation of C++ projects.

Notes:

  • The following is a simplistic and general explanation of how the IncrediBuild architecture is used for Process Virtualization. It omits many details that occur during the process.
  • In this step by step illustration, Visual Studio is used to perform the necessary compilation of a C++ project. However, the steps are basically identical for any other compiler you decide to use.

The following describes the sequence of events that occur when VS performs compilation of C++ projects:

...

In Visual Studio builds, IncrediBuild executes a VS command (such as DevEnv or MSBuild command), and requests VS to build a solution. When the VS command runs and the VS process is ready to build the solution that IncrediBuild passed to it, IncrediBuild injects DevEnv or MSBuild into the VS process, and acts as a mediator between the calls that the VS process makes and the OS. It monitors all the calls to the OS and decides how to process them.
Image Removed

...

As part of the build command, the build runs compilation processes (cl.exe). When VS runs a cl.exe process (a compilation process), VS runs a Create Process command, which is intercepted by IncrediBuild before it reaches the OS. IncrediBuild detects cl.exe as a process predefined to run on a remote machine, and does not allow this process to reach the OS; instead, it tells VS that a dummy process has been created.
Image Removed

...

Instead of letting the cl.exe process run on the OS, IncrediBuild asks the Coordinator component for a Helper Agent (on a single core), on which it can run the compilation process.
Image Removed

...

The requested file is copied from the file system of the Initiating machine to a cache of IncrediBuild in a dedicated remote directory.

...

Image Removed

...

Instead of giving the OS the original path address of the file that cl.exe requested to open, IncrediBuild Virtualization gives the OS the path to the file in the cache.
The same virtualization techniques are applied to other file-system events such as Registry calls, DLL loading, and the running of executables. The virtualization environment handles StdOut, StdErr, and StdIn for the process in a similar manner.
Image Removed

...

IncrediBuild Virtualization makes use of many Helpers to significantly accelerate processes and to supply the Initiating machine with hundreds of cores, which it can use to accelerate its processes instead of only using the cores on its local machine.
Image Removed

...

IncrediBuild's Virtualization Technology:

Children Display
styleh4
pageIncrediBuild's Virtualization Technology

User Manual:

...

Image Added