Python - Trabajando alrededor de las fugas de memoria

Tengo un programa Python que ejecuta una serie de experimentos, sin datos destinados a ser almacenados de una prueba a otra. Mi código contiene una pérdida de memoria que no puedo encontrar por completo (he visto elotros hilos en fugas de memoria). Debido a limitaciones de tiempo, tuve que renunciar a encontrar la fuga, pero si pudiera aislar cada experimento, el programa probablemente duraría lo suficiente para producir los resultados que necesito.

¿Ejecutar cada prueba en un hilo separado ayuda?¿Existen otros métodos para aislar los efectos de una fuga?

Detalle de la situación específica.

Mi código tiene dos partes: un corredor de experimento y el código de experimento real.Aunque no se comparten globales entre el código para ejecutar todos los experimentos y el código utilizado por cada experimento, algunas clases / funciones se comparten necesariamente.El corredor de experimentación no es solo un bucle for simple que se puede poner fácilmente en un script de shell. Primero decide las pruebas que deben ejecutarse dados los parámetros de configuración, luego ejecuta las pruebas y luego genera los datos de una manera particular.Intenté llamar manualmente al recolector de basura en caso de que el problema fuera simplemente que no se estaba ejecutando la recolección de basura, pero esto no funcionó

Actualizar

La respuesta de Gnibbler me ha permitido descubrir que mis objetos ClosenessCalculation que almacenantodos de los datos utilizados durante cada cálculo no están siendo eliminados. Luego utilicé eso para borrar manualmente algunos enlaces que parecen haber solucionado los problemas de memoria.

Respuestas a la pregunta(4)

Su respuesta a la pregunta