![]() |
Liberar memoria
Cuando cierro un programa, la memoria se libera automaticamente? y si es que no, como la libero?.
|
Hola,
¿Puedes concretar un poco más? |
Mmmmmmmm, bueon, cuando se carga un programa este se guarda en la memoria y quisiera saber si al cerrar un programa (que esta demas decir que es un programa creado en delphi) el espacio que ocupaba en memoria se libera o sigue hay "desperdiciandose".
Entonces en caso de que al cerrar el programa la memoria no se libera, como la libero yo, al programar en delphi que codigo meto al decirle al programa que se cierre o termine. Espero haber sido claro (ojala). |
Hola,
¿Pero tú tienes algún problema cuando se cierra el programa? ¿Notas algo o qué? |
Bueno el programa al cerrar se demora un poco en hacerlo.
|
Cita:
Era eso??? :confused: |
Exacto, esa es justamente mi duda...:p
|
Si y no...
La respuesta es SI y NO.
En teoría, y en general en la práctica, al cerrar la aplicación se libera la porción de memoria asignada. Pero... (siempre hay peros) si haces empleos de punteros, debes liberar lo que haz pedido; es decir que por cada New() que hayas realizado, un Dispose() debe ser ejecutado. Ahora bien, para mayor seguridad existe la sentencia CaFree. Que puede ejecutarse cuando se cierra el formulario. En el evento on Close() debes realizar esto:
Dicha sentencia permite (y se asegura) de que toda la memoria usada sea liberada (exceptuando los punteros). Espero que te sirva de ayuda. |
Cita:
Hola, yo solucione un problema similar, donde se demoraba en cerrar, simplemente quitandole prioridad a la aplicacion al cerrarla. Me ayudo bastante, ya q, cierra al toque la ventana y queda cerrandose pero no se ve, recupero el escritorio y puedo ir a otras ventanas mientras. Saludos y espero les sirva.
|
Prueba con esto, puedes hacerlo tantas veces como quieras, mira la memoria es el administrador de tareas
A ver si te ayuda |
liberar buffer
como seria para android XE5
|
Cita:
|
En android se emplea ARC (automatic reference counting) que es similar a como trabajan los record, string e interfaces en Delphi. Básicamente el sistema lleva la cuenta de la cantidad de referencias incrementando o decrementado cuando sea necesario. Cuando la cantidad de referencias llega a 0, se libera la memoria.
Si te fijas la implementación de los destructores, cuando el sistema es ARC, el método Destroy no hace nada |
liberar memoria en windows10
revivo el tema :D
con 2 preguntas como puedo acelerar la carga del programa en delphi tengo mi pc win10 con 8Gb memoria ,la aplicación comienza a cargar los combobox label etc uno por uno lo hace en 3 segundos, pero es notorio a la vista lo que carga lento? y mi segunda pregunta es como libero memoria hasta windows 7 estos códigos funcionan de primera, ahora estoy trabajando en windows10 y veo que no libera memoria ni el uso del procesador con con los 3 ejemplos q menciona en el post:
|
Cita:
|
Los "hacks" que están de ejemplo en este post *son innecesarios*. Y hasta idiotas. Pa' que carajos estan jodiendo el area de memoria de la app? Y la prioridad de los hilos en un cerrar de formulario???? (plop!!!!!).
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx Cita:
Una app al cerrarse libera su memoria. Eso es OBVIO. AUN SI NO SE LIBERA LA MEMORIA MANUALMENTE! De no ser así, habría que despedir a los programadores de ese OS*. https://stackoverflow.com/questions/...atically-freed Cita:
--- Cita:
|
La franja horaria es GMT +2. Ahora son las 05:19:55. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi