If your test system requires the use of more memory than the Windows operating system is able to provide to a single process, you may be able to use out-of-process execution to increase the amount of memory available to the test system as a whole. Because memory limitations are imposed on each process individually, executing a portion of test code in a separate process will allow that code to access a separate memory space from the memory being used by the rest of the test system. There are several ways in which you may be able to implement out-of-process execution in your test system architecture.
Executing Code Modules Out-of-Process
If your test system contains code modules which require a large amount of memory, configuring the code modules to execute out-of-process allows the code modules to access a separate memory space from the TestStand process itself. This increases the amount of memory available to the code modules and lessens the likelihood that an out-of-memory error will occur during execution.
The LabVIEW and LabWindows/CVI module adapters can be configured to execute code modules out-of-process. This is accomplished by configuring the adapter to use the LabVIEW Development System or the LabWindows/CVI development environment to execute code modules. There are two downsides to configuring the adapters to execute code modules out-of-process:
- Execution Speed – Executing code modules out-of-process is typically slower than executing code modules in-process, because out-of-process execution requires the TestStand Engine to communicate with the external process to instruct it to execute code.
- Licensing – The development version of LabVIEW or LabWindows/CVI must be installed on the test machine to execute code modules in one of these environments. This requires a development license for each test machine.
For information on configuring out-of-process execution for a module adapter, refer to the Module Adapter section of the TestStand Help.
Executing a TestStand Sequence Out-of-Process
In TestStand 2014 and newer, you can configure a test sequence to execute out-of-process in a separate instance of TestStand running on the same computer, which allows the sequence to access a separate memory space from the original TestStand process. You can also use this approach to execute a sequence in the opposite bitness of TestStand, although this approach requires both 32-bit and 64-bit TestStand to be installed on the computer. For information on configuring a sequence to execute out-of-process, refer to the KnowledgeBase article Executing Cross-Bitness Sequence Calls in TestStand.
Note: Using remote sequence calls to execute test sequences out-of-process has a performance penalty compared with in-process execution. It is also more difficult to debug a sequence executing out-of-process.