elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda objetos Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda objetos Python  (Leído 3,035 veces)
Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Ayuda objetos Python
« en: 20 Junio 2021, 06:05 am »

Hola, hay alguna forma de destruir objetos y liberar memoria? Sin que sea ingeniero profesional, porque la verdad no se como hacer algo asi


Quiero hacer esto porque estoy usando Imágenes muy grandes y de alta resolución y parece que cada vez que abro mi proyecto todo se vuelve mas y mas lento.



Gracias :·)


En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Ayuda objetos Python
« Respuesta #1 en: 20 Junio 2021, 06:17 am »

Hola, para eso existe "del":

Código
  1. a = 'Demo'
  2. del a
  3.  

Igual va a depender del contexto de tu proyecto, si es de escritorio o web, normalmente si es web debes obtener los bytes del archivo de a trozos y enviarlos al navegador en ves de cargar todo el binario en una variable y mostrarla, desde una aplicación de escritorio puedes utilizar recursos de tkinter o directamente con canvas y pygame.

Saludos.


« Última modificación: 20 Junio 2021, 06:20 am por WHK » En línea

Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Ayuda objetos Python
« Respuesta #2 en: 20 Junio 2021, 06:20 am »

Hola, para eso existe "del":

Código
  1. a = 'Demo'
  2. del a
  3.  

Saludos.


Seguro que elimina el objeto de memoria?
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Ayuda objetos Python
« Respuesta #3 en: 20 Junio 2021, 06:21 am »

Asi es, mira, dale un vistazo acá: https://www.delftstack.com/howto/python/python-clear-memory/

Una cosa es que se elimine y otra totalmente distinta es la asignación de clonado automático de objetos por referencia, o sea, si pasas un objeto a otra función y luego la eliminas entonces por defecto creará un clon en ves de crear una referencia, esto es dinámico, lo hace python de manera automática, también puedes darle un vistazo al destructor __del__() para eliminar manualmente conectores o threads al momento de destruir el módulo.

Normalmente llevar bytes de una funcion a otra es una mala práctica, normalmente siempre debes hacer viajar el puntero de la apertura del archivo o la ruta y hacer la carga únicamente cuando lo necesites, recuerda que vaciar muchos bytes en memoria toma su tiempo, las memorias ram no son instantáneas, una cosa es que la aplicación se cierre o que la clase la hayas eliminado y otra muy diferente es que ya no exista en la memoria ram, mientras tanto el kernel estará esforzandose por realizar la limpieza que le ordenaste, por eso no es bueno llevarse a la memoria muchos recursos salvo que necesites mucha velocidad y cahce como por ejemplo el precargado del mapa de un juego y sus texturas, en tu caso desconozco de que sea tu aplicación.

Saludos.
« Última modificación: 20 Junio 2021, 06:26 am por WHK » En línea

Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Ayuda objetos Python
« Respuesta #4 en: 20 Junio 2021, 06:28 am »

Asi es, mira, dale un vistazo acá: https://www.delftstack.com/howto/python/python-clear-memory/

Una cosa es que se elimine y otra totalmente distinta es la asignación de clonado automático de objetos por referencia, o sea, si pasas un objeto a otra función y luego la eliminas entonces por defecto creará un clon en ves de crear una referencia, esto es dinámico, lo hace python de manera automática, también puedes darle un vistazo al destructor __del__() para eliminar manualmente conectores o threads al momento de destruir el módulo.

Normalmente llevar bytes de una funcion a otra es una mala práctica, normalmente siempre debes hacer viajar el puntero de la apertura del archivo o la ruta y hacer la carga únicamente cuando lo necesites, recuerda que vaciar muchos bytes en memoria toma su tiempo, las memorias ram no son instantáneas, una cosa es que la aplicación se cierre o que la clase la hayas eliminado y otra muy diferente es que ya no exista en la memoria ram, mientras tanto el kernel estará esforzandose por realizar la limpieza que le ordenaste, por eso no es bueno llevarse a la memoria muchos recursos salvo que necesites mucha velocidad y cahce como por ejemplo el precargado del mapa de un juego y sus texturas, en tu caso desconozco de que sea tu aplicación.

Saludos.

Muchísimas gracias joven!
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[python] Objetos que se guardan y cargan solos
Scripting
lnvisible 4 4,071 Último mensaje 8 Diciembre 2010, 06:26 am
por lnvisible
Ayuda .NET Serialización Objetos Web
.NET (C#, VB.NET, ASP)
jonatown 0 1,989 Último mensaje 13 Febrero 2012, 13:53 pm
por jonatown
Ayuda con RMI y objetos
Java
ZedGe 0 1,502 Último mensaje 14 Noviembre 2013, 02:54 am
por ZedGe
[AYUDA][PYTHON] Necesito ayuda con el metodo SEARCH del modulo RE de python
Scripting
Noxware 2 4,163 Último mensaje 24 Mayo 2014, 16:11 pm
por Noxware
ayuda con php orientado a objetos
PHP
geshiro 7 2,725 Último mensaje 23 Septiembre 2015, 08:07 am
por geshiro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines