Articles of gestión de memoria de

Uso de la memoria de Python

Así que tengo un código que toma un conjunto de archivos, une lo que puede y los grafica. Estoy publicando la mayor parte de mi código en un bash de hacerlo más legible, se puede agregar más si es necesario for paths,dirs,files in os.walk(start_path): for d in dirs: path = start_path + changedir + d […]

El script de Python sabe cuánta memoria está usando

¿Cómo puede un script de python saber la cantidad de memoria del sistema que está usando actualmente? (asumiendo un sistema operativo basado en Unix)

¿Cómo mido el uso de memoria de un objeto en Python?

Tengo una clase de python “foo” que contiene: datos (ints, flotadores) Listas (de entradas, de carrozas y de otros objetos) Diccionarios (de entradas, de carrozas, de otros objetos). Suponiendo que no hay referencias atrasadas (ciclos), ¿hay una manera fácil de medir el uso total de memoria de un objeto “foo”? Esencialmente, estoy buscando una versión […]

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