This content is not available in your preferred language.
The content is shown in another available language. Your browser may include features that can help translate the text.
When I am developing a large application in LabVIEW, I sometimes receive one of the following error messages:
LabVIEW: Memory is full.
The top-level VI was stopped on the block diagram.
Refer to the VI Memory Usage topic in the LabVIEW Help for suggestions on monitoring and improving VI memory usage.
ErrorNot Enough Memory to complete this operation.I have a large amount of available RAM, so why am I receiving this error message?
This error message is typically encountered when developing an application with large data sets of arrays, clusters, or waveforms. Because LabVIEW stores each data set in a contiguous block of memory, the block of memory available on your computer might not be large enough to store a large data set. Another reason could be that lots of references are being opened and not closed properly.
Below are some suggestions to help prevent this error message from appearing:
Reducing Memory Used by Arrays, Clusters, and Waveforms
Reducing Memory Usage in Applications
Increasing Memory in LabVIEW
This message is most common if LabVIEW cannot allocate a block of memory large enough for an array. For example, a 2D array of double-precision floating-point numbers of size 2,000 by 2,000 elements uses approximately 32 MB. Even if 32 MB of memory is available, you may not have a block of contiguous memory large enough for the array.This message is also generated when an array containing more than 2^31 elements is used to index a For Loop. Arrays can contain up to 2^32 elements, but a For Loop can only index up to 2^31 values. This is because the N terminal uses the signed 32-bit integer (I32) numeric data type rather than the unsigned 32-bit integer (U32) data type. The most significant bit of the I32 data type is used to specify whether the value is positive or negative. To get around this limitation, you can split your array into two smaller arrays, or replace your For Loop with a While Loop, comparing the iteration value to the size of the array and terminating when the two are equal.
Collaborate with other users in our discussion forums
A valid service agreement may be required, and support options vary by country.