From v2.11, NCrunch has the ability to host its engine outside the IDE process and share data with the IDE using memory sharing IPC.
This setting controls how NCrunch should host its engine. Note that changing this setting may require a restart of the IDE, as NCrunch cannot unload the engine from the IDE process after it has been initialised with the HostInsideIDE option.
The default value of this setting depends upon the capability of the machine NCrunch is installed on.
On 64-bit machines with total memory of at least 5,368,709,120 bytes (5GB), this setting will default to x64SatelliteProcess.
For all other machines, this setting will default to x86SatelliteProcess.
Hosting the engine outside the IDE brings both advantages and disadvantages. In most cases, the advantages will outweigh the disadvantages. However, it is worth understanding the implications of satellite hosting and deciding whether it is suitable for your environment.
When the engine is hosted outside the IDE, NCrunch will attempt to minimise its IDE footprint as much as possible. The only code executed within the IDE will be that which is required to service the visual elements of NCrunch's UI and to push data to the engine which is only available inside the IDE (such as open documents, the list of open projects, NCrunch configuration, etc). All background processing is performed in the satellite process with necessary data being exchanged with the IDE using shared memory (IPC).
Hosting the engine in an x86 satellite process consumes less total memory than an x64 satellite process, as objects under .NET have a smaller memory footprint under x86. However, the x86 process has a memory ceiling of only 2GB, greatly limiting its scalability. For this reason, x86 hosting is recommended on machines with only a small amount of physical memory available.
Satellite hosting brings the following benefits: