10000 Memory leak · Issue #370 · matplotlib/ipympl · GitHub
[go: up one dir, main page]

Skip to content

Memory leak #370

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
jmakov opened this issue Oct 7, 2021 · 0 comments
Open

Memory leak #370

jmakov opened this issue Oct 7, 2021 · 0 comments

Comments

@jmakov
Copy link
jmakov commented Oct 7, 2021

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 matplotlib/matplotlib#21259 (and Jupyter guys: jupyterlab/jupyterlab#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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant
0