Articles of gestión de memoria de

Recogida de basura de python

He creado un código de Python que crea un objeto en un bucle y en cada iteración sobrescribe este objeto con uno nuevo del mismo tipo. Esto se realiza 10.000 veces, y Python ocupa 7 MB de memoria cada segundo hasta que se utiliza mi RAM de 3 gb. ¿Alguien sabe de una manera de […]

¿Hay alguna forma de eliminar variables creadas, funciones, etc. de la memoria del intérprete?

He estado buscando la respuesta precisa a esta pregunta por un par de días, pero no tengo nada bueno. No soy un principiante completo en progtwigción, pero aún no en el nivel intermedio. Cuando estoy en el shell de Python, escribo: dir() y puedo ver todos los nombres de todos los objetos en el ámbito […]

CPython: internamente, ¿qué se almacena en la stack y el montón?

En C #, los tipos de valor (por ejemplo: int, float, etc.) se almacenan en la stack. Los parámetros del método también se pueden almacenar en la stack también. Casi todo lo demás, sin embargo, se almacena en el montón. Esto incluye listas, objetos, etc. Me preguntaba, ¿CPython hace lo mismo internamente? ¿Qué almacena en […]

Python reclama memoria después de eliminar elementos en un diccionario

Tengo un diccionario relativamente grande en Python y me gustaría poder no solo eliminar elementos de él, sino recuperar la memoria de estas eliminaciones en mi progtwig. Me estoy topando con un problema por el cual, aunque elimino elementos del diccionario e incluso ejecuto el recolector de basura manualmente, Python no parece estar liberando la […]

MemoryError gancho en Python?

¿Hay alguna forma de interceptar globalmente las excepciones de MemoryError para que una biblioteca pueda borrar las cachés en lugar de dejar que el código de usuario vea un MemoryError? Estoy desarrollando una biblioteca de almacenamiento en caché de memoria en Python que almacena objetos muy grandes, hasta el punto en que es común que […]

¿Cuántos bytes por elemento hay en una lista de Python (tupla)?

Por ejemplo, ¿cuánta memoria se requiere para almacenar una lista de un millón de enteros (32 bits)? alist = range(1000000) # or list(range(1000000)) in Python 3.0

¿Qué pasa cuando importas un paquete?

En aras de la eficiencia, estoy tratando de averiguar cómo funciona Python con su montón de objetos (y el sistema de espacios de nombres, pero es más o menos claro). Básicamente, estoy tratando de entender cuándo se cargan los objetos en el montón, cuántos de ellos hay, cuánto tiempo viven, etc. Y mi pregunta es […]

Uso de memoria Python Slice Assignment

Leí en un comentario aquí en Stack Overflow que es más eficiente en la memoria hacer la asignación de porciones al cambiar las listas. Por ejemplo, a[:] = [i + 6 for i in a] debería ser más eficiente en memoria que a = [i + 6 for i in a] porque el primero reemplaza […]

Objeto de Python borrándose

¿Por qué no funciona esto? Estoy tratando de hacer que una instancia de una clase se elimine. >>> class A(): def kill(self): del self >>> a = A() >>> a.kill() >>> a

¿Cuándo se recolectan los objetos en Python?

¿Cuándo se recolectan los objetos en Python? ¿Cuándo se libera la memoria y la colección afecta el rendimiento? ¿Se puede optar o sintonizar el algoritmo gc y, en caso afirmativo, cómo?