Solución
Este mensaje de error suele aparecer al desarrollar una aplicación con grandes conjuntos de datos de matrices, clusters o formas de onda. Debido a que LabVIEW almacena cada conjunto de datos en un bloque de memoria contiguo, es posible que el bloque de memoria disponible en su computadora no sea lo suficientemente grande como para almacenar un conjunto de datos grande.
A continuación hay algunas sugerencias para ayudar a evitar que aparezca este mensaje de error:
Reducción de la memoria utilizada por matrices, clústeres y formas de onda
- Si tiene una matriz con un conjunto de datos grande, si es posible, use un tipo de datos más pequeño para representar los elementos de la matriz. Por ejemplo, si los elementos en la matriz están representados con números de punto flotante de precisión doble (DBL), pero el rango de posibles valores esperados se limita a números enteros entre 0 y 100, puede cambiar la representación entera de los elementos en el matriz a enteros de 8 bits sin signo (U8). El tipo de datos numérico U8 usa un octavo de la memoria que usa el tipo de datos DBL.
- En LabVIEW 8.5 y versiones posteriores, use el Coloque la "In Place Element Structure" para evitar realizar copias de datos al usar una matriz, grupo o forma de onda.
- Si está graficando datos de una matriz grande, use la reducción mínima-mínima para evitar graficar cada punto de datos. Véase este artículo en inglés para más información: Memory Management for Large Data Sets .
- Usa el perfil de rendimiento y memoria. Esta herramienta es para ayudar a reducir e identificar qué VIs son responsables del uso de la memoria .
- Analice el gran conjunto de datos para determinar dónde está llena la memoria. Transfiera o escriba los datos en el disco y use una herramienta de análisis e informes de alto rendimiento, como los archivos TDMS y el software NI DIAdem .
Reducción del uso de memoria en aplicaciones
- Para limitar la cantidad de veces que LabVIEW copia datos, reduzca la cantidad de variables globales y locales en su aplicación. En lugar de usar variables, considere usar un patrón de diseño de productor / consumidor , o la función New Data Value Reference para crear una referencia a los datos.
- Separe grandes secciones de código en subVIs y use el Call By Reference Node para llamar a los subVI dinámicamente. Un subVI no está en la memoria hasta que un VI lo llama dinámicamente.
- Configure los subVIs grandes como no reentrantes cuando sea posible. No reentrante es la configuración predeterminada para Windows y VIs en tiempo real).
- Use el Kit de Profile Performance and Memory para identificar problemas que podrían afectar negativamente el rendimiento, como las pérdidas de memoria y las pérdidas de referencia. El kit de herramientas también puede recopilar información de bajo nivel, como la cadena de llamadas, el ID del hilo y la ubicación en la memoria virtual de seguimiento, así como los VIs de perfil, los ejecutables y las bibliotecas compartidas.
Incrementando la memoria en LabVIEW