Solution
When developing memory intensive TestStand applications, you may encounter memory limits due to the fact that 32-bit Windows applications can only utilize 2 GB of memory by default. To expand the amount of memory TestStand can utilize, you can configure TestStand to be large address aware to gain access to up to 3 GB of memory on a 32-bit Windows operating system, and up to 4 GB of memory on a 64-bit Windows operating system.
Configuring TestStand to be LAAIf you are using a 32-bit Windows operating system, you must configure Windows to support large address aware applications in order for these applications to access the additional memory. For information on how to configure Windows to be Large Address Aware, refer to the article
Microsoft Developer Network: 4-Gigabyte Tuning. If you are using a 64-bit Windows operating system, no additional configuration is necessary.
You can check to see if the Large Address Aware flag is enabled for the Sequence Editor using Microsoft's dumpbin.exe tool, and change the flag using the editbin.exe tool. These tools are provided with Microsoft Visual Studio.
To check the current state of the flag, complete the following steps:
- Navigate to Start » Programs » Microsoft Visual Studio »Visual Studio Tools » Developer Command Prompt.
- Type the following command into the command prompt: dumpbin /headers <TestStand>/bin/SeqEdit.exe
- In the output from the dumpbin command, look for the section titled FILE HEADER VALUES, look for a section titled <x> characteristics, where <x> is a number. Under this section, you will likely see statements such as Executable. If the Large Address Aware flag is enabled, you will see an entry titled Application can handle large (>2GB) addresses.
If the flag is not enabled, complete the following steps to enable it:
- Navigate to Start » Programs » Microsoft Visual Studio »Visual Studio Tools » Developer Command Prompt.
- Type the following command into the command prompt: editbin /largeaddressaware <TestStand>/bin/SeqEdit.exe
- If desired, use the steps above for checking the state of the flag to confirm that the change took effect.
If the flag is enabled and you would like to disable it, complete the following steps:
- Navigate to Start » Programs » Microsoft Visual Studio »Visual Studio Tools » Developer Command Prompt.
- Type the following command into the command prompt: editbin /largeaddressaware:NO <TestStand>/bin/SeqEdit.exe
- If desired, use the steps above for checking the state of the flag to confirm that the change took effect.
If you configure your TestStand application to be large application aware, all modules or components loaded in the TestStand process will also be large address aware.
Testing LAA Support in third-party ComponentsIf you are using any third-party components, you should confirm that these components support the LAA setting. You can test an application for compatibility with LAA by forcing it to use the large address memory space. To do this, configure the following registry key:
| Location | HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management\AllocationPreference |
| Key Name | REG_DWORD |
| New Value | 0x100000 |
With this registry key configured, the memory gained from the LAA flag will be used first by the application, thus making it more likely that any incompatibilities will be encountered in your testing.
Known Issues for TestStand 2012 and earlierIt is important to note the following specifics about large address aware settings for the TestStand Sequence editor and user interface applications in TestStand 2012 and previous versions:
- The TestStand Sequence Editor is not large address aware by default.
- Note: You should not apply the LAA setting to a TestStand application if you are using either Windows Vista or earlier or TestStand 4.2.1 or earlier due to a number of known issues, described later in this document.
- TestStand User Interfaces built in LabVIEW 8.5 and later are large address aware by default. National Instruments recommends only calling VIs developed in LabVIEW 8.5 and later from these TestStand applications. Earlier Run-Time Engines are not supported.
- TestStand User Interfaces built in LabWindows/CVI versions 8.1 and later are large address aware by default. National Instruments recommends installing the LabWindows/CVI 2009 or later Run-Time Engine on a system running a large address aware TestStand application. Earlier versions of the LabWindows/CVI Run-Time Engine are likely to work, but are not supported.
If you are using a version of the Sequence Editor or a user interface that is large address aware, and Windows is configured to support large address aware applications, the following known issues exist:
- In TestStand 4.2.1 and earlier, the .NET adapter can intermittently assign Nothing to object reference variables returned from .NET modules.
- TestStand shutdown can hang when unloading the LabVIEW 7.1.1 and LabVIEW 8.2.1 Run-Time Engines. These Run-Time Engines are loaded into memory if TestStand calls a VI that uses one of these Run-Time Engines.
Additionally, the following minor usability issues exist as described in the table below.
| Issue Description | Applications Affected | Operating System |
| Clicking on a pane undocks and initiates a pane drag, and movement of pane does not follow the mouse. | Sequence Editor | Windows Vista |
| Navigation to sub menu of context menu closes context menu | Sequence Editor | Windows Vista |
| Using the Ctrl+Z or Ctrl+Y shortcut keys can restore floating panes that you previously closed | Sequence Editor | Windows Vista |
| Context menus for panes are sometimes empty or do not appear | Sequence Editor | Windows Vista Windows 7 Windows 8 |
| Missing menu items in Context menu for Type button, located in Step Settings » Properties » General | Sequence Editor | Windows Vista Windows 7 Windows 8 |
| Tool tips are not displayed or are displayed in top left corner of the screen for some dialogs | User Interfaces | Windows Vista |
| Missing menu items in Context menu for the Sequence File tab | Sequence Editor | Windows Vista Windows 7 Windows 8 |