![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
#1
|
||||
|
||||
El truco que comenta [radenf], tal y como explica Ian Martins aquí es "obligar" al sistema a liberar la memoria que tu programa tiene en ese estado "marcada para liberar" que he comentado antes.
El problema es que hay quien piensa que eso puede no ser todo lo beneficioso que a priori parece. Es decir, de alguna forma le estamos diciendo al sistema (obligándole) que queremos que liberar la memoria de nuestro proceso, cuando el sistema tiene su propio sistema de liberación. En cierta manera estamos interfiriendo en el correcto(normal) funcionamiento de este proceso. ¿Y si el sistema piensa que es mejor liberar la memoria de otro proceso, en lugar del nuestro? ¿Y si el sistema puede coger memoria de otro lugar sin necesidad de liberarla ahora (de nuestro proceso o de ningún otro)? ¿Y si el sistema piensa que ahora no es el momento de liberar? ¿...? Lo que quiero decir es que no va a pasar nada por hacerlo, pero a lo mejor en algunos casos lanzar este proceso cada X tiempo, puede empeorar el rendimiento en lugar de mejorarlo (link -si buscas encontarás otros similares-).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#2
|
||||
|
||||
El "método Marteens" lo he usado desde siempre ¿1998? y con muy buenos resultados.
|
#3
|
||||
|
||||
Yo lo utilizo en mi programa para visualizar imágenes médicas en formato Dicom, que eleva el uso de la Ram en mas de 1Gb cada vez que cargo un nuevo examen (500-1500 Imágenes) y funciona a la perfección. Si no lo utilizo al cargar el segundo o tercer examen recibo el fatídico mensaje de que no dispongo de memoria suficiente.
Salu2 |
#4
|
||||
|
||||
En mi opinión, los tres últimos mensajes (Neftalí, Casimiro y radenf) llevan razón.
El método de Marteens no tiene porqué fallar, como dice Casimiro, pero sí puede hacer la aplicación un poquillo menos eficiente (aunque en muchas ocasiones sea casi imperceptible) pues, como dice Neftalí, el sistema puede tener un mejor momento para hacer su trabajo (podemos pedirle al intendente que limpie nuestro lugar cada vez que derramamos un poco de café pero no es realmente necesario y el intendente hará mejor su trabajo si no lo interrumpimos a cada momento). Pero habrá situaciones como las que describe radenf en que el uso de memoria es tan demandante que sea preferible limpiar cuanto antes (por ejemplo, si se nos cae toda la taza de café, seguramente convendrá llamar al intendente de inmediato). // Saludos |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Liberar el DataModule | Cañones | OOP | 5 | 13-10-2010 12:40:17 |
Liberar DLL | acertij022 | Varios | 1 | 26-06-2008 16:38:05 |
TSHFileInfo, se ha de liberar? | [Gunman] | API de Windows | 4 | 28-11-2005 21:14:36 |
Liberar Objetos II | OscarG | OOP | 12 | 11-10-2005 10:13:55 |
Liberar un objeto | xerkan | Servers | 1 | 28-10-2003 17:29:10 |
![]() |
|