Está en la página 1de 31

Trucos para Mejorar el Desempeo de LabVIEW

Contenido
Programacin Manejada por Eventos Administracin de Memoria
Carga Dinmica de VIs Conversiones de Tipo Reubicacin de Memoria

Desempeo de Interfaz del Usuario Anlisis Automatizado de Cdigo Esttico

Programacin con Eventos en LabVIEW

Ejemplos de Eventos de LabVIEW Presionar el ratn Presionar una tecla del teclado Interaccin del usuario con la pantalla principal

Estructura de Eventos en LabVIEW


Cmo funciona?
Duerme hasta ocurrir un evento Ejecuta el caso del evento apropiado No realiza ciclos implcitamente

Ventajas
No hace polling (no se sobrecarga al procesador) Garanta de captacin de todos los eventos Los casos de eventos se ejecutan en el orden en que ocurren

Eventos de Notificacin versus Eventos de Filtracin


Los eventos se dividen en dos categoras: Filtracin y Notificacin Los eventos de notificacin son las notificaciones despus de ocurridos los hechos Los eventos de filtracin le ayudan a cambiar los datos del evento a medida que ocurren o bien, descartar el evento por completo
Eventos de teclas, eventos de ratn, eventos del men, y el evento para cerrar la ventana principal son todos eventos de filtracin.

Ejemplos de eventos de filtracin:


Hacer controles tipo string para mapear maysculas a minsculas Crear dilogos de confirmacin cuando el usuario intente cerrar la ventana principal

Ejemplo: Estructura del Evento LabVIEW

Utilice Plantillas para la Estructura del Evento


Mquina de Estados Arquitectura de Ciclos Paralelos Manejador de Mensajes Productor/Consumidor (Datos) Manejador de Eventos de Interfaz del Usuario Productor/Consumidor (Eventos)

Combine o expanda las arquitecturas como se necesite

Pasos para Administrar la Memoria


1. Separe los VIs en subVIs 2. Analice los VIs para localizar problemas 3. Cargue dinmicamente los subVIs cuando sea apropiado 4. Reduzca copias de datos y reubicacin de memoria 5. Minimice las actualizaciones del panel frontal

Analice el Desempeo y Memoria del VI


Analice el tiempo de ejecucin y uso de memoria del VI

ToolsProfilePerformance and Memory

Jerarqua Tpica de un VI
VI de Alto Nivel

VIs de Adquisicin de Datos

VIs de E/S a Archivos

VI de Calibracin

VI para Guardar Reportes

Tareas Comunes. Cargar con VI.

Tareas Proco Frecuentes. Cargar segn se requiera.

Carga Dinmica Programtica de VI


1. 1 Abrir Referencia al VI 2 Call by Reference Node 2. 3. 3 Cerrar Referencia al VI 1 2 3

Cargar Configurable LabVIEW 8.20


1 2

Ejemplo: Cargar Dinmicamente los VIs

Mejoras al Call Library Node


Carga y descarga dinmicamente los DLLs en LabVIEW 8.20.

Conversiones de Tipo
Los puntos de coercin significan dos tipos de datos numricos diferentes unidos al mismo punto.
Coerciones en LabVIEW requieren copia de datos Coerciones que involucran grandes arreglos requieren de mucha memoria

Conversin de Datos Recomendada


La mejor solucin es convertir un nmero aleatorio a medida que es creado
Evita la conversin de un gran bfer de datos

Configurando Puntos de Coercin


Tools>>Options>>Colors to change coercion dot color

Construyendo Arreglos y Strings


Reubicar memoria es costoso cuando se realiza muy seguido Deben limitarse las funciones que tienden a causar un reacomodo de memoria
Build array Concatenate strings

Construya un Arreglo en 18.7 Segundos


Muy lento debido a que cada iteracin involucra reubicar memoria

Construya un Arreglo en 0.42 Segundos


Mucho ms rpido ya que solo ubica memoria una vez

Construya un Arreglo en 0.40 Segundos


El mtodo ms rpido y tambin el ms limpio

Ejemplo: Asignacin de la Memoria en LabVIEW

Mostrar la Asignacin del Buffer


Show Buffer Allocations despliega los lugares donde ocurren las ubicaciones de la memoria

Desempeo de la Interfaz del Usuario


Los nodos de propiedades e invocacin de mtodos para controles e indicadores pueden alentar una aplicacin
1. Forzan un cambio de threads al thread de UI 2. Puede forzar la actualizacin de UI al completar el proceso 3. Cambio al thread original

Ejemplo: Cambios de Threads

Mtodo Preferido de Actualizacin de la IU


Use Defer Panel Updates para deshabilitar el panel frontal durante mltiples actualizaciones
1 2 3 4 5

1 2 3

Referencia al IV Referencia del Panel Deshabilitar el Panel

4 5

Hacer Cambios Habilitar el Panel

LabVIEW VI Analyzer
Herramienta adicional para LabVIEW* Automatice el anlisis de cdigo con ms de 60 pruebas configurables
Desempeo Estilo

Inspeccione fallas de forma interactiva Genere reportes personalizados


* Incluido en el NI Developer Suite Core

Pruebas de Desempeo con VI Analyzer


Arreglos y Strings en Ciclos Cdigo en desuso Puntos de Coercin Terminales Conectadas en Depuracin habilitada Subdiagramas Espera en Ciclos While Uso de la Estructura de Tamao del VI Secuencia Valores Predefinidos del Arreglo Objetos Escondidos en Estructuras Variables Globales y Locales

Ejemplo: VI Analyzer Toolkit

Resumen
Utilice la programacin basada en eventos para minimizar el uso del procesador Cargue dinmicamente los VIs para mejorar el desempeo de la memoria y tiempo inicial de carga Reduzca la reasignacin de memoria e intercambio de threads para mejorar la velocidad de ejecucin Localice conflictos de desempeo con la inspeccin automatizada del cdigo

También podría gustarte