Compartir a través de


Mejora del rendimiento en aplicaciones de Visual FoxPro

En este artículo se ofrece una sugerencia para mejorar y solucionar problemas de rendimiento con aplicaciones personalizadas escritas en Visual FoxPro 8.0 o 9.0.

Versión original del producto: Visual FoxPro
Número de KB original: 2671338

Síntomas

Tiene una aplicación personalizada escrita en Visual FoxPro 8.0 o 9.0. Los usuarios notifican el rendimiento que no cumple sus expectativas. El objetivo de este artículo es ofrecer sugerencias para mejorar el rendimiento y algunas herramientas que el desarrollador puede usar para identificar áreas de código que contribuyen a cuellos de botella de rendimiento.

Causa

Las causas principales del rendimiento deficiente de la aplicación son muchas y variadas. Incluyen, pero no están limitados, a lo siguiente:

  • Uso y configuración de memoria de Visual FoxPro
  • Diseño de software (código ineficaz)
  • Configuración de software antivirus
  • Rendimiento de la red de área local
  • Rendimiento de red de área extensa

Solución

A menudo, la solución de problemas de rendimiento en cualquier aplicación se realiza mejor mediante un enfoque holístico. Significa examinar detenidamente todos los factores que podrían afectar al rendimiento. Estos problemas incluyen la aplicación, el sistema operativo, el software que se ejecuta simultáneamente en el entorno con el ejecutable foxPro y la red.

El marco de solución de problemas propuesto en este artículo comienza con la aplicación. Observamos los diversos factores relacionados con la configuración y el diseño que afectan al rendimiento. A continuación, examinamos el software que se ejecuta en las máquinas (tanto el servidor como la estación de trabajo local) y, por último, examinamos la red.

Más información

Para solucionar eficazmente problemas de rendimiento deficiente de una aplicación personalizada de Visual FoxPro, necesita una comprensión profunda del entorno del sistema operativo y del código fuente de la aplicación personalizada. Si un proveedor de terceros creó la aplicación FoxPro, póngase en contacto con ellos para obtener soporte técnico. Tienen la comprensión necesaria del código fuente, lo que podría ser fundamental para resolver un problema de rendimiento.

Uso y configuración de memoria de Visual FoxPro

A menudo puede mejorar el rendimiento del código FoxPro agregando uno o varios de los siguientes comandos al principio (en el programa principal) de la aplicación:

SET REFRESH TO 0,0

SET TABLEVALIDATE TO 2

SET DELETED OFF

SYS(3054) function

Temp files directed locally

Debe probar los cambios individualmente para medir mejor su impacto en el rendimiento.

Diseño de software (código ineficaz)

El código de aplicación no optimizado dificulta gravemente el rendimiento de la aplicación. Sin embargo, el código ineficaz no siempre es obvio. Afortunadamente, Visual FoxPro 8.0 y 9.0 tienen una herramienta, el Generador de perfiles de cobertura, que permite ejecutar código y enumerar el tiempo necesario para que se ejecute cada línea. El Generador de perfiles de cobertura está disponible en el entorno de desarrollo, tanto VFP 8.0 como 9.0, y en un ejecutable compilado, en VFP 9.0.

El diseño de código a menudo se destaca como un factor que dificulta el rendimiento si tiene código heredado (código de procedimientos FoxPro 2.x) que se ejecuta en VFP. Por ejemplo, puede usar un comando LOCATE en lugar de una función SEEK o SEEK(). Dado que los comandos LOCATE leen cada registro de una tabla, naturalmente será más lento en casi todas las circunstancias. El generador de perfiles de cobertura le ayuda a identificar estos cuellos de botella.

Otro área común relacionada con el código para el problema de rendimiento es comandos SELECT-SQL no optimizados. De nuevo, el generador de perfiles de cobertura puede identificar si el comando SELECT-SQL está tomando una cantidad de tiempo inordinada. Sin embargo, no le indica cómo optimizar la consulta. El objetivo es asegurarse de que los comandos SELECT-SQL usen Rushmore la optimización en la mayor medida posible.

Consulte estos artículos y vínculo a MSDN para obtener más información:

Configuración de software antivirus

El software antivirus puede afectar drásticamente al rendimiento de las aplicaciones VFP. Aunque nadie disputa la necesidad de software antivirus, si el software escanea archivos de datos VFP, su rendimiento puede sufrir. Aunque no somos expertos en todas las opciones de configuración posibles del software antivirus, podemos proporcionar algunas sugerencias generales:

  • Deshabilite el examen automático.
  • Impedir que el software antivirus escanea los archivos de datos de VFP.
  • Asegúrese de que tiene la compilación más reciente del software antivirus.

Rendimiento de la red de área local

Una red de área local lenta (LAN) puede provocar un rendimiento lento de la aplicación. No hay ninguna función o utilidad en VFP que le permita supervisar el rendimiento de la red, hay pasos de solución de problemas que quitan el rendimiento de LAN del entorno, lo que le permite probar solo el rendimiento de la aplicación. En primer lugar, puede ejecutar la aplicación desde una máquina de Terminal Server. La aplicación se ejecuta en los espacios de memoria de la máquina de Terminal Server (no en el sistema operativo cliente) y solo la imagen de pantalla necesita transmitir a través de la LAN. En segundo lugar, también puede ejecutar la aplicación localmente y eliminar la red. (Esta opción funciona si solo un cliente experimenta un rendimiento lento).

El problema de red puede ser complejo y a menudo implica hardware (enrutadores, conmutadores, tarjetas NIC), configuración (Oplocks, network transmission rates) y software (versiones del sistema operativo, máquinas virtuales). A menudo, los problemas relacionados con la red requieren que el equipo de plataformas tome seguimientos de netmon y ejecute otras herramientas de diagnóstico del sistema operativo.

Rendimiento de red de área extensa

Las redes de área extensa suelen abarcar un área geográfica mucho mayor y una LAN. Una LAN podría conectar un sitio donde una WAN podría conectar sitios en dos estados o países. Con el aumento de la distancia, vienen más cuellos de botella potenciales para el rendimiento de las aplicaciones. La misma sugerencia de resolución de problemas para LAN se aplica a una WAN (pruebe la aplicación en un Servidor de Terminal o localmente si es posible). También puede ser necesario consultar con los equipos de plataformas o especialistas en hardware.