![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
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 |
|
#2
|
||||
|
||||
|
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. |
|
#3
|
|||
|
|||
|
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 |
|
#4
|
|||
|
|||
|
FREE !!!!!!!!!!!!!! El Destroy no se debe usar !!!
|
|
#5
|
||||
|
||||
|
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. |
|
#6
|
|||
|
|||
|
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 |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|