Ver Mensaje Individual
  #6  
Antiguo 27-12-2010
Avatar de Marck Silencer
Marck Silencer Marck Silencer is offline
Registrado
NULL
 
Registrado: dic 2010
Posts: 7
Reputación: 0
Marck Silencer Va por buen camino
Thumbs up

Cita:
Empezado por ElKurgan Ver Mensaje
Hola; ¿Que sistema operativo estás usando?
Al menos en mi Windows 7 (no se si en versiones anteriores) en el "administrador de tareas" viene un botón para llamar al administrador de recursos, con el que se puede visualizar como se va comiendo la memoria "privada" del programa.

Creo que estos problemas lo dan las clases Tcolor y otras, como TFont; No se muy bien porque, hablaba de liberar memoria que no se está usando gracias a "SetProcessWorkingSetSize".

He probado a poner en cada llamada del timer esta instrucción al iniciar el método y al cabo de un rato he obtenido estos valores en el medidor de recursos:

Mem. privada consumida por ejecutable sin liberación de memoria: 2.870 Kb
Mem. privada consumida por ejecutable CON liberación de memoria: 380 Kb

La instrucción metida al inicio del Ontimer ha sido la siguiente

Código Delphi [-]
SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);

Espero que te sirva
Un saludo
Hola! Gracias por tu respuesta!..... Estoy utilizando Win XP, que buen tip, desconocia completamente esa opcion en Win Seven!, me parecee bastante buena esa opcion del SetProceesWorkingSetSize!! no la eh utilizado, ahora la pruebo a ver como se comporta ;D!!

Cita:
Empezado por Neftali Ver Mensaje
Bienvenido al club, por mi parte también.
Por mi parte lo primero que se me ha ocurrido es evitar crear y destruir el Bitmap cada vez que accedes al Timer. Lo tienes definido fuera, así que bastaría con crearlo y destruirlo al inicio y al final. Además te evitaría tiempo de proceso innecesario.

También tengo dudas de si la llamada a Dormant debe estar justo ahí.
Hola! gracias por la bienvenida!, había intentado hacer algo parecido en que sólo se creeara una vez y en el timer escanear indefinidamente utilizando ese Tbitmap creado al inicio, también me funciono pero al igual despues de un tiempo me arrojaba ese error de los recursos, entonces puse al fina del timer "Pxl.Free" y ya solo lo hacia la primer vez porque lo desrtuia, también intente intente colocar las instrucciones de ReleaseHandle ya que me marcaba algo sobre que el Tcanvas no podia dibujar y vi en el foro que tenia que liberar ese handle ya que cada vez qeu corria el timer se utilizaba otro handle pero de igual manera al liberar el handle solo lo hacia una vez....por eso no encontre otra forma más que color el create siempre en el timer si es que quería liberar los recursos pero pues ni aún asi funciona adecuadamente T-T!!

En cuanto al Dormant jaja si tienes razón esque ya despues de varias horas practicamente estaba colocando por todos lados instrucciones por la desesperación jaja xD y ese Dormant se me quedó ahi xD Saludos y gracias por tu ayuda!! Volveré tambien a intentar algo parecido a ver como me va ;D
Responder Con Cita