Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2004
Eduardo Eduardo is offline
Miembro
 
Registrado: jul 2003
Posts: 16
Poder: 0
Eduardo Va por buen camino
Aplicacion lenta

Hola

Uso Delphi 7 y tablas paradox y estoy probando mi aplicaicon en una red con 4 usuarios, todos con Windows 2000 y un minimo de 256 mb.

El problema que tengo es que la aplicacion se vuelve lenta sin razon aparente, unas veces es nada mas entrar en uno de los mantenimientos, otras cuando llevan tiempo trabajando.

La aplicacion la tenia instalada en un servidor,y la he pasado a uno de los puestos, pero sigue igual, por lo que opino que el problema no es de la red, sino de la propia aplicacion.

Tampoco creo que el problema sea de dejar 'cosas' sin destruir, porque como ya digo, a veces es a los dos minutos de entrar cuando se vuelve lenta y otras veces es a los 10 minutos.

¿es posible que sea problema del BDE? o bien ¿es posible que sea problema del propio Delphi?

Los puestos no tienen nada cargado, de hecho les he quitado hasta el antivirus para poder chequearlo bien.

Una cosa curiosa, uno de los usuarios me ha comentado que si deja la aplicacion, que iba lenta, 'sin tocar' durante un tiempo, comienza a funcionar otra vez bien, es como si hubiera consumido memoria, y la 'soltara' pasado un tiempo.

No creo que sea problema de cableado, pues les he pueto un switch y el cableado nuevo entre los 4 puestos.

Les agradeceria cualquier opinion sobre este tema.

Gracias a todos.

Eduardo
__________________
Eduardo
Responder Con Cita
  #2  
Antiguo 01-12-2004
LordSigma LordSigma is offline
Miembro
 
Registrado: nov 2004
Posts: 20
Poder: 0
LordSigma Va por buen camino
Tengo una red de 20 usuario con Win98 en los puestos y NT en el file server, sobre tablas Paradox (todo un reto) y lo que aprendi es que cuantas mas cosas hagas con SQL mas rapido va a funcionar tu aplicacion.
Fijate que las consultas y entradas esten en SQL y no con metodos de la TTable, eso va a acelerar mucho las cosas.
Igualmente te recomiendo un Firebird, vas a mejorar mucho y la calidad de los datos y consistencia no van a tener comparacion con las Paradox. Suerte !!!
__________________
Sistemas web
www.f5-sistemas.com.ar
Responder Con Cita
  #3  
Antiguo 01-12-2004
Eduardo Eduardo is offline
Miembro
 
Registrado: jul 2003
Posts: 16
Poder: 0
Eduardo Va por buen camino
Gracias por tu respuesta, el caso es que si fuera problema del paradox, iria lento el formulario o el listado o lo que fuera, pero lo que me pasa es que la aplicacion cada vez va mas lenta, hasta que llega un punto que se hace insoportable de trabajar con ella. Lo curioso es que si la dejas en resposo, al rato, vuelve a funcionar con normalidad, como si hiciera un 'garbaje collection' , creo que se llamaba asi, es decir una limpieza de memoria.

¿os ha pasado algo parecido?
__________________
Eduardo
Responder Con Cita
  #4  
Antiguo 01-12-2004
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Lo unico que te puede decir es que sin hacer un profiling de la aplicacion es programar por adivinacion. Conoces cuales son los metodos mas lentos? Realmente no hay memory leaks? Guardas en un log las consultas sql y cualquier otro comportamiento? Puedes reproducir de la forma mas simple posible los puntos de falla? Has usado el medidor de recursos de NT y sabes que EXACTAMENTE es el incremento, si es mayor CPU o mayor Memoria o que?

Si la aplicacion progresivamente es mas lenta, es porque hay contencion en los recursos (ie: Un recurso esta bloqueado y bloquea los procesos que intentan acceder a el) o hay recursos que no se liberan (memoria...?) o estas cargando listas de algo y no se estan liberando.

Seria util que trates de reducir el area de investigacion. Si puedes crear una version simplificada que imite la operacion y miras si se presenta el problema. Tambien puedes tratar con una herramienta de profiling. De esta pagina http://www.automatedqa.com/ te bajas la version gratis MemProof o AQtime. Sin embargo, no te va a ayudar magicamente sin sentarse a analizar las cosas...
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 01-12-2004
Eduardo Eduardo is offline
Miembro
 
Registrado: jul 2003
Posts: 16
Poder: 0
Eduardo Va por buen camino
Mario, gracias por interesarte por mi problema

Sobre lo que me comentas, uso habitualmente memprof, e incluso me he bajado una version nueva para ver si sacaba algo en claro. Efectivamente, a primera vista, lo que debe pasar es que no destruya los objetos o listas que se han creado antes, pero en este caso, la cosa es mas curiosa, porque si dejas la aplicacion en reposo, luego vuelve 'a cojer fuerza'.

Sobre CPU o memoria, lo que sube es la memoria, lo cual vuelve a hacer suponer que es algo que no destruyo.

Por esta razon, he llegado a pensar que era algun bug de delphi o de paradox y he consultado al foro por si a alguien le habia pasado algo semejante.

Una consulta de tontos, ¿que es mejor? destroy o free. A ver si lo estoy haciendo al reves.

Gracias de nuevo.
__________________
Eduardo
Responder Con Cita
  #6  
Antiguo 01-12-2004
LordSigma LordSigma is offline
Miembro
 
Registrado: nov 2004
Posts: 20
Poder: 0
LordSigma Va por buen camino
FREE !!!!!!!!!!!!!! El Destroy no se debe usar !!!
__________________
Sistemas web
www.f5-sistemas.com.ar
Responder Con Cita
  #7  
Antiguo 02-12-2004
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Si tu aplicacion destroye y crea rutinariamente todo el tiempo objetos de memoria pequeños, puede ser un problema de fragmentacion de memoria... Es algo que se nota en maquinas con multiples procesadores...

Si ya sabes que es la memoria, entonces enfila baterias y trata de analizar cual es el comportamiento de tu aplicacion al respecto y chequea los contadores a ver cual de todas las memorias se esta creciando, si el heap o que...
__________________
El malabarista.
Responder Con Cita
  #8  
Antiguo 02-12-2004
Eduardo Eduardo is offline
Miembro
 
Registrado: jul 2003
Posts: 16
Poder: 0
Eduardo Va por buen camino
Gracias a todos por vuestra respuesta. Voy a repasar el codigo y si encuentro algun problema, os lo dejare reportado en este hilo por si le puede servir a alguien

Un saludo.
__________________
Eduardo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:50:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi