JuliaPy / JuliaPy/PyPlot.jl

PyPlot memory deallocation problem

Abierto
#111 21 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Julia
Estrellas
488
Forks
90
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Hi,

when batch saving multiple figures with 'savefig()' a large amount of memory is
allocated and I am not able to free it afterwards without closing my julia session.

Basically I am doing:

``` julia
for ff=101:150
figure(1)
PyPlot.clf()
imshow(imagg,extent=[0,350,0,580],aspect=1);
imshow(gridG[1:18,1:35,ff],interpolation="bicubic",cmap="jet",origin="lower",extent=[14,339,158,300],alpha=.5,aspect=.8)
PyPlot.autoscale("off")
plt.axis("off")
plt.title("Absolute value @" *string(ff)* " Hz")
savefig("~/pianoMeas1/klavierKlopfTest_"*string(ff)*".png");
plt.close()
end
```

The memory usage before the loop is ~2gb, after the loop it is ~4gb.

I also tried

``` julia
figurN=open("~/pianoMeas1/klavierKlopfTest_"*string(ff)*".png","w")
plt.savefig(figurN);
close(figurN)
```

giving the same result.

When overwriting existing files the memory usage stays constant so I believe the
"memory-overflow" occurs while allocating space for the file, but this is just a shot in the dark.

My julia version is:

``` julia
versioninfo()
Julia Version 0.4.0-dev+2496
Commit 89f89e1* (2015-01-05 09:04 UTC)
DEBUG build
Platform Info:
System: Linux (x86_64-unknown-linux-gnu)
CPU: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
WORD_SIZE: 64
BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Sandybridge)
LAPACK: libopenblas
LIBM: libopenlibm
LLVM: libLLVM-3.3
```

Any ideas, pointers are appreciated as I am not shure where to start debugging this.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Reproduce the reported loop using PyPlot.savefig, plt.close, and the Julia versioninfo shown in the issue, comparing new output files with overwritten files. Trace the savefig and close entry points across the Julia/Python boundary and measure memory after each iteration; done means repeated saves no longer leave the additional allocation behind.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
julia, python
Área
data-visualization
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.