Memory leak
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comienza con el reproductor mínimo proporcionado en un cuaderno de Jupyter, comparando el comportamiento de la memoria con %matplotlib widget habilitado y comentado. Investiga la integración del widget de ipympl y verifica que, después de trazar y llamar a gc.collect(), se libere como se espera la memoria del data frame y del gráfico.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the issue
Plotting a 30M row data frame causes memory only to increase. Also memory isn't collected by gc.collect.
As discussed with matplotlib guys in https://github.com/matplotlib/matplotlib/issues/21259 (and Jupyter guys: https://github.com/jupyterlab/jupyterlab/issues/11182) - we tested and it works as intended. I tested further and think I found the issue - %matplotlib widget:
%matplotlib widget # if this is commented out, gc.collect releases the memory
import gc
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
zeros = pd.Series(np.zeros(30_000_000))
df = pd.concat([zeros, zeros, zeros, zeros], axis=1)
FROM = 0
TO = 10_000_000 # df.shape[0]
color_spread = "grey"
fig, axs = plt.subplots(1, 1, sharex=True)
ax2 = axs.twinx()
ax2.plot(df[df.columns[0]][FROM:TO], color="blue")
ax2.plot(df[df.columns[1]][FROM:TO], color="red")
ax2.tick_params(axis="y", labelcolor="red")
ax1 = axs.twinx()
ax1.plot(df[df.columns[2]][FROM:TO], color="orange")
ax1.plot(df[df.columns[3]][FROM:TO], color="yellow")
fig.tight_layout()
plt.show()
gc.collect()
Versions
3.7.10 | packaged by conda-forge | (default, Feb 19 2021, 16:07:37)
[GCC 9.3.0]
ipympl version: 0.7.0
jupyter core : 4.7.1
jupyter-notebook : 6.4.3
qtconsole : not installed
ipython : 7.27.0
ipykernel : 6.4.1
jupyter client : 7.0.2
jupyter lab : 3.1.11
nbconvert : 6.1.0
ipywidgets : 7.6.5
nbformat : 5.1.3
traitlets : 5.1.0
Config option `kernel_spec_manager_class` not recognized by `ListNBExtensionsApp`.
Known nbextensions:
config dir: /home/test/PROGS/miniconda3/envs/puma-lab/etc/jupyter/nbconfig
notebook section
jupyter-matplotlib/extension enabled
- Validating: OK
nbdime/index enabled
- Validating: OK
jupyter-js-widgets/extension enabled
- Validating: OK
nbextensions_configurator/config_menu/main enabled
- Validating: problems found:
- require? X nbextensions_configurator/config_menu/main
contrib_nbextensions_help_item/main enabled
- Validating: OK
tree section
nbextensions_configurator/tree_tab/main enabled
- Validating: problems found:
- require? X nbextensions_configurator/tree_tab/main
Config option `kernel_spec_manager_class` not recognized by `ListLabExtensionsApp`.
[W 2021-10-07 12:20:00.836 LabApp] Config option `kernel_spec_manager_class` not recognized by `LabApp`.
JupyterLab v3.1.11
/home/test/PROGS/miniconda3/envs/puma-lab/share/jupyter/labextensions
jupyter-matplotlib v0.9.0 enabled OK
nbdime-jupyterlab v2.1.0 enabled OK
@jupyterlab/git v0.32.2 enabled OK (python, jupyterlab-git)
@pyviz/jupyterlab_pyviz v2.1.0 enabled OK (python, pyviz_comms)
@jupyter-widgets/jupyterlab-manager v3.0.1 enabled OK (python, jupyterlab_widgets)
Other labextensions (built into JupyterLab)
app dir: /home/test/PROGS/miniconda3/envs/puma-lab/share/jupyter/lab
- Lenguaje dominante
- Jupyter Notebook
- Estrellas
- 1.7k
- Forks
- 234
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de matplotlib/ipympl
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
matplotlib/ipympl#623 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
matplotlib/ipympl#622 · 13 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
matplotlib/ipympl#612 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
matplotlib/ipympl#611 · 4 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
matplotlib/ipympl#609 · 7 comentarios ·
Todos los issues de matplotlib/ipympl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mksglu/context-mode#1200 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
clawsweeper:needs-maintainer-review clawsweeper:needs-product-decision clawsweeper:no-new-fix-pr impact:auth-provider issue-rating: 🌊 off-meta tidepool P2
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100