Articles of memoria fugas

xml.dom.minidom de análisis de memory leaks utilizando

Estoy usando xml.dom.minidom para analizar archivos xml, algo como esto: import xml.dom.minidom as dom file= open(‘file.xml’) doc= dom.parse(file) # SNIP doc.unlink() Incluso después de desvincular el documento, el uso de la memoria es de alrededor de 120 MiB. Cuando uno está realmente usando el progtwig, lo que hace que se analicen varios archivos xml, el […]

Python en Windows: un gran número de inserciones usando pyodbc provoca una pérdida de memoria

Estoy tratando de poblar una base de datos MS SQL 2005 usando Python en Windows. Estoy insertando millones de filas, y por 7 millones estoy usando casi un gigabyte de memoria. La siguiente prueba consume 4 megas de RAM por cada 100k filas insertadas: import pyodbc connection=pyodbc.connect(‘DRIVER={SQL Server};SERVER=x;DATABASE=x;UID=x;PWD=x’) cursor=connection.cursor() connection.autocommit=True while 1: cursor.execute(“insert into x […]

MemoryError con Pickle en Python

Estoy procesando algunos datos y he almacenado los resultados en tres diccionarios, y los he guardado en el disco con Pickle. Cada diccionario tiene 500-1000MB. Ahora los estoy cargando con: import pickle with open(‘dict1.txt’, “rb”) as myFile: dict1 = pickle.load(myFile) Sin embargo, ya al cargar el primer diccionario me sale: *** set a breakpoint in […]

Cómo evitar la pérdida de memoria con shared_ptr y SWIG

Estoy tratando de usar boost::shared_ptr ‘s para permitirme usar los objetos de flujo de E / S de archivos c ++ en mi script de Python. Sin embargo, el envoltorio generado me advierte que está perdiendo memoria. Aquí hay un archivo .i mínimo que muestra el problema: %module ptrtest %include “boost_shared_ptr.i” %include “std_string.i” %shared_ptr( std::ofstream […]

El uso de la memoria difiere mucho (y de forma extraña) entre el frontend y el backend

Mi aplicación App Engine está teniendo problemas con la pérdida de memoria. Registro el uso de la memoria en el camino para encontrar el problema. from google.appengine.api.runtime import memory_usage memory_usage().current() La función que excedió el “límite de memoria privada flexible de 128 MB” está dentro de una tarea diferida. Debería comportarse igual cada vez. Lo […]

Uso de memoria en la manipulación / procesamiento de grandes estructuras de datos.

Tengo varios archivos grandes (~ 100 Mb) que estoy procesando regularmente. Mientras trato de eliminar estructuras de datos innecesarias durante el procesamiento, el consumo de memoria es un poco demasiado alto. Me preguntaba si hay una manera de manipular eficientemente datos grandes, por ejemplo: def read(self, filename): fc = read_100_mb_file(filename) self.process(fc) def process(self, content): # […]

Uso de memoria Django subiendo con cada solicitud

Trasladé mi primer proyecto Django de DjangoEurope a Webfaction, y eso comenzó un problema que parecía una pérdida de memoria. Con cada solicitud de memoria, el uso del proceso del servidor aumenta aproximadamente 500 kb. Nunca baja Esto continúa hasta que Webfaction lo mata por usar demasiada memoria. Puedo ver esto claramente cuando actualizo la […]

Entendiendo gc.get_referrers

Estoy tratando de rastrear una pérdida de memoria en Python (2.7). He encontrado gc.get_referrers, pero no entiendo la salida. Después de eliminar dying_node (que debería eliminar todas las referencias excepto una lista que he creado como parte de mi búsqueda), tengo en mi código: gc.collect() print “done dying: “, getrefcount(dying_node) #note, includes the reference from […]

¿Cómo evito la pérdida de memoria cuando cargo archivos de gran tamaño en un bucle for?

Tengo 50 archivos pickle de 0.5 GB cada uno. Cada archivo pickle se compone de una lista de objetos de clase personalizados. No tengo problemas para cargar los archivos individualmente usando la siguiente función: def loadPickle(fp): with open(fp, ‘rb’) as fh: listOfObj = pickle.load(fh) return listOfObj Sin embargo, cuando bash cargar de forma iterativa los […]

La memoria se pierde cuando la imagen se desecha en Python

Actualmente estoy escribiendo un juego de mesa simple en Python y me di cuenta de que la recolección de basura no borra los datos de bitmap descartados de la memoria cuando se recargan las imágenes. Sucede solo cuando el juego se inicia o se carga o la resolución cambia, pero multiplica la memoria consumida, por […]