Articles of gestión de memoria de

¿Por qué crear una clase en Python es mucho más lento que crear una clase?

Descubrí que la creación de una clase es mucho más lenta que la creación de instancias de una clase. >>> from timeit import Timer as T >>> def calc(n): … return T(“class Haha(object): pass”).timeit(n) <> >>> calc(9000) 15.947055101394653 >>> calc(9000) 17.39099097251892 >>> calc(9000) 18.824054956436157 >>> calc(9000) 20.33335590362549 Sí, crear 9000 clases tomó 16 segundos y […]

¿Por qué la unión consume más memoria si el argumento es un conjunto?

Estoy desconcertado por este comportamiento de asignación de memoria de set s: >>> set(range(1000)).__sizeof__() 32968 >>> set(range(1000)).union(range(1000)).__sizeof__() # expected, set doesn’t change 32968 >>> set(range(1000)).union(list(range(1000))).__sizeof__() #expected, set doesn’t change 32968 >>> set(range(1000)).union(set(range(1000))).__sizeof__() # not expected 65736 ¿Por qué usar un set como argumento duplica la cantidad de memoria utilizada por el set resultante? El resultado […]

¿Guardar memoria para lista en Python?

Al progtwigr en Python, ¿es posible reservar memoria para una lista que se llenará con un número conocido de elementos, para que la lista no se reasigne varias veces mientras se construye? He buscado en los documentos un tipo de lista de Python y no he encontrado nada que parezca hacer esto. Sin embargo, este […]

¿Cómo forzar el diccionario de Python para reducir?

Lo he experimentado en otros idiomas. Ahora tengo el mismo problema en Python. Tengo un diccionario que tiene muchas acciones de CRUD. Se podría suponer que eliminar elementos de un diccionario debería disminuir la huella de memoria del mismo. No es el caso. Una vez que un diccionario aumenta de tamaño (normalmente, la duplicación), nunca […]

¿Cómo depurar un error de memoria en Python? ¿Herramientas para rastrear el uso de la memoria?

Tengo un progtwig de Python que muere con un MemoryError cuando lo alimento con un archivo grande. ¿Hay alguna herramienta que pueda usar para averiguar qué está usando la memoria? Este progtwig funcionó bien en archivos de entrada más pequeños. El progtwig obviamente necesita algunas mejoras de escalabilidad; Sólo estoy tratando de averiguar dónde. “Benchmark […]

crecimiento de la memoria del proceso de Python con el tiempo

La memoria del proceso de mi código de Python aumenta dinámicamente a medida que almacena datos dynamics en listas, diccionarios y tuplas cuando sea necesario. Aunque todos esos datos dynamics se borran físicamente en sus variables después de esa fecha, la memoria no se está disparando. Por lo tanto, sentí que había una pérdida de […]

Error de asignación de memoria de Python usando subprocess.Popen

Estoy haciendo un trabajo de bioinformática. Tengo una secuencia de comandos de Python que en un momento llama a un progtwig para hacer un proceso costoso (secuencia de alineación … usa mucha potencia de cálculo y memoria). Lo llamo utilizando subproceso.Popen. Cuando lo ejecuto en un testcase, se completa y termina bien. Sin embargo, cuando […]

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 […]