Aplicaciones Visual FoxPro lentas en función del "orden" de ejecución de la misma.

964 views
Skip to first unread message

Miguel Angel

unread,
Sep 12, 2012, 5:41:15 AM9/12/12
to publice...@googlegroups.com
Hola.

Estoy manteniendo una aplicación de VFP 9 que no he desarrollado (muy grande). Donde varios terminales trabajan sobre una base de datos situada en el servidor (.dbc con sus .dbf's ...), en total pueden llegar a 15 terminales aunque los normal es que estén menos de 10.

He detectado que el comportamiento de esta aplicación varia en función del orden en que se ejecuta la misma:

- El primero le va más rápido.
- Al segundo un poco menos.
- ...
- Hasta llegar a un punto en el cual el rendimiento se estabiliza y ya no desciende de forma apreciable.

Si el primero sale de la aplicación y vuelve a entrar se pone a la cola del rendimiento (por ser el último que llega).


No acabo de entender porque pasa esto, pues el problema se mantiene aunque las aplicaciones no estén realizando ninguna operación.

¿Puede ser que de alguna forma Visual FoxPro asigne "privilegios de acceso"? ¿Os ha pasado algo similar? ... soy novato en estas lides y la verdad es que estoy algo perdido y estos problemas no se como afrontarlos.

Muchas gracias.
Saludos.

Carlos Miguel FARIAS

unread,
Sep 12, 2012, 11:03:34 AM9/12/12
to publice...@googlegroups.com
El motor de datos en vfp está en cada aplicación (en realidad, dentro del runtime desplegado en cada instalación).
Donde tenes ubicado los exe y runtimes de vfp? Si esta en cada máquina, es una cosa (supuestamente la más rápida) pero si están en el servidor, estas cargando la red cada vez que arranca la aplicación (debe transferir exe, runtime, etc.).
Busca por el lado de la configuración del S.O. del servidor.
Supongo que tenes correctamente configuradas las rutas a tablas temporarias. (config.fpw) (para que sean locales a cada puesto).
Supongo que tienes optimizados los accesos a tablas (por ejemplo, no usar SELECT * FROM, enumerando siempre los campos a leer).
Supongo que están correctamente creados los indices por aquellos campos que intervengan:
a) claves primarias. b) claves foráneas si consulta desde los unos de la relación. c) Campos que se usen para filtrar registros. d) Campos que se usan permanentemente para establecer el orden.
Si accedes a tablas relacionadas (+ de 1 a la vez), solo usando SELECT (SQL) se aprovecha rushmore.
Es natural que a medida que se conectan mas usuarios, la carga aumente, y el tiempo de respuesta sea mayor, pero es importante (al menos) los puntos enumerados previamente.
Saludos: Miguel, La Pampa (RA)



--
 
 
 

Diego Rossler

unread,
Sep 12, 2012, 11:55:24 AM9/12/12
to publice...@googlegroups.com
si en el servidor tenes instalado NOD32 como antivirus en la versión 4 o superior, proba desinstalarlo y fijate si se normaliza esta situacion.
 
salu2
--
 
 
 


__________ Information from ESET NOD32 Antivirus, version of virus signature database 7471 (20120912) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

Miguel Angel

unread,
Sep 13, 2012, 4:19:41 AM9/13/12
to publice...@googlegroups.com
Gracias por responder.

Os comento sobre la aplicación:
- La base de datos (los archivos) están en el servidor y el .exe en cada uno de los clientes.
- El servidor lo he llegado a tener sin antivirus instalado (hasta ese punto llegó la desesperación :-).
- Yo soy nuevo en la aplicación y hay de todo (mucho bueno y "algo" malo), una de las cosas peores es que las tablas y las relaciones por regla general no están de forma explícita y es en el código donde se relacionan. Sobre los índices ... pues más o menos.

Miraré a ver las tablas temporales y ver como están configuradas.

No obstante lo que me llama la atención es la disminución de rendimiento entre el primero que entra, el segundo, ... pues cada uno ejecuta su propia aplicación y los datos son lso que están centralizados.

Muchas gracias.
PD: Si a algien se le ocurre algo más se lo agradecería enromemente.

FidelJ

unread,
Sep 13, 2012, 8:57:25 AM9/13/12
to publice...@googlegroups.com
Siguiendo lo que piensa Diego, habría que ver:
1) Sistema operativo del Server
2) Capacidad del harware del servidor (fundamentalmente, velocidad del HD.)
3) Sistema de conexiones físicas (switcher, modem-switcher, hub). A veces las redes se arman con lo que hay y algunos elementos provocan problemas.
4) Direcciones IP. Yo prefiero armar la red con direcciones IP estáticas.
Visual Fox tiene respuestas muy rápidas para sistemas LAN. Sin embargo, comandos como SET FILTER TO causan problemas importantes. Como dices que no has desarrollado el sistema, no sabemos si tienes el código fuente como para ver qué hace.
Aunque no comprendo bien a qué te refieres cuando dices que son lentas  aunque las aplicaciones no estén realizando ninguna operación, ese dato me inclina a pensar que es un problema de estructura de red ó de configuración del servidor. O sea, no se si se tardan mucho en abrir el sistema, se ralentizan las operaciones o ambas cosas a la vez. Si es solo lo primero, pienso que el aplicativo está intentando realizar una rutina poco apropiada (alguna verificación, registro, etc.). Por ejemplo, comprobar si hay tablas abiertas por otros usuarios para determinar la posibilidad de efectuar un PACK, puede insumir tiempo. Eso debería estar en una rutina de mantenimiento y no en el inicio de la aplicación.
Saludos.

Miguel Angel

unread,
Sep 13, 2012, 12:04:11 PM9/13/12
to publice...@googlegroups.com
Hola FidelJ.

Por lento me refiero a que al primero que entra le va más o menos rápido, pero al segundo le va un poco más lento, al tercero un poco más lento ... es como si el orden de lanzar la aplicación determinara el rendimiento de la misma.

El problema es que el tiempo empleado un 30-50% más del segundo con respecto al primero. Aunque el primero no esté haciendo nada. Es algo muy raro y por lo que he mirado por internet parece que es muy poco común.

Gracias.
Saludos.

Miguel Canchas

unread,
Sep 13, 2012, 12:13:28 PM9/13/12
to publice...@googlegroups.com

Que servidor tienes y cuanto de ram ¿?

 

Tus tablas están bien indizadas.

 

MK

--
 
 
 

FidelJ

unread,
Sep 13, 2012, 2:36:42 PM9/13/12
to publice...@googlegroups.com
Por cierto que es muy poco común. Desde hace 6 años tengo sistemas en Visual Fox, en algunos casos con 8 usuarios que trabajan simultáneamente (hay otro con 12, pero algunos trabajan poco en el sistema) y nunca he notado degradación por la cantidad de usuarios. En algunos casos el equipo que hace de servidor corre un XP profesional. 
Incluso, el rendimiento entre una instalación local y una en LAN no es significativo, dependiendo de la potencia del servidor y el estado de la LAN.
Un tema que no pregunté es si el servidor es dedicado, y qué sistema operativo corre. Pero también hay que ver la instalación física de la red (placas, switcher y cableado). La velocidad de respuesta del servidor se degrada si continuamente está perdiendo paquetes de datos y reclama la repetición del envío. 
En una ventana de Cmd, prueba con el comando PING NombreDelServidor. No tiene que haber paquetes perdidos y el tiempo en ms debería dar cero. También puedes probar PING www.google.com y ver la respuesta. El tiempo medio debería andar alrededor de 20 ms. (acá supongo que tienen una puerta de enlace a un modem switcher. Esto se puede repetir para cada usuario de la red. Si con el nombre del servidor te da problemas, puedes hacer PING 192.168.0.1 (suponiendo que sea la IP del servidor). Pero eso ya estaría previniendo que hay un conflicto de resolución de nombres.

Miguel Angel

unread,
Sep 14, 2012, 3:31:41 AM9/14/12
to publice...@googlegroups.com
Hola.

La red da tiempos de acceso <0ms y sin pérdidas de paquetes.
La máquina es un Win2008r2 a 64b con buen procesador y 6Gb (probado en uno con más memoria pero pasaba igual) de ram.

Creo que este problema es causado por la forma en que está programado ... y viendo que no le pasa a nadie más, cada vez me parece más acertada esta idea.

Muchas gracias por las respuestas.
Si encuentro algo os lo haré saber.

Jorge L. Florez C.

unread,
Aug 13, 2013, 5:35:43 PM8/13/13
to publice...@googlegroups.com
y el funcionamiento lento del sistema en VFP es desde el momento que inician o el acceso se va degradando con el tiempo? si ese es el caso, revisa tus estaciones, seguro estan accediendo al internet sin pasar por el server, eso pone lenta la red, es mas, con el correr de las horas pierdes hasta las conexiones a las unidades compartidas del servidor.

Saludos
Jorge Florez



--
 
 
 

Fernando D. Bozzo

unread,
Aug 13, 2013, 5:52:19 PM8/13/13
to publice...@googlegroups.com
Hola Jorge:

¿Que sentido tiene responder algo de hace más de un año? o_O

Luis Maria Guayan

unread,
Aug 13, 2013, 5:56:47 PM8/13/13
to publice...@googlegroups.com
Ya lo dijo, el funcionamiento del sistema es lentoooooooooo !!!


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Jorge L. Florez C.

unread,
Aug 13, 2013, 6:07:39 PM8/13/13
to publice...@googlegroups.com
jajajajajaaa... si que esta lento.. jajajajajaa... bueno.. lapsus mis estimados

Saludos
Jorge Florez
Lima - Perú
Reply all
Reply to author
Forward
0 new messages