Memory leak with BLISS shell
Sounds like that is leaks with the BLISS shell.
That's maybe about the scrollbar again.
/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/site-packages/prompt_toolkit/filters/utils.py:24: size=40.8 MiB (+40.8 MiB), count=532209 (+532209), average=80 B
/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/site-packages/prompt_toolkit/key_binding/key_bindings.py:70: size=40.5 MiB (+40.5 MiB), count=531107 (+531107), average=80 B
/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/site-packages/prompt_toolkit/cache.py:24: size=29.8 MiB (+29.8 MiB), count=92878 (+92878), average=337 B
/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/site-packages/prompt_toolkit/styles/style.py:231: size=28.9 MiB (+28.9 MiB), count=210180 (+210180), average=144 B
/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/site-packages/prompt_toolkit/key_binding/key_bindings.py:182: size=24.1 MiB (+24.1 MiB), count=175263 (+175263), average=144 B
/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/site-packages/prompt_toolkit/key_binding/key_bindings.py:444: size=23.0 MiB (+23.0 MiB), count=336288 (+336288), average=72 B
<frozen importlib._bootstrap_external>:525: size=17.2 MiB (+17.2 MiB), count=138656 (+138656), average=130 B
/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/collections/__init__.py:405: size=13.9 MiB (+13.9 MiB), count=125690 (+125690), average=116 B
/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/site-packages/prompt_toolkit/key_binding/key_bindings.py:213: size=12.5 MiB (+12.5 MiB), count=184756 (+184756), average=71 B
/users/valls/Software/miniconda3/envs/blissenv/lib/python3.7/site-packages/prompt_toolkit/cache.py:23: size=12.1 MiB (+12.1 MiB), count=166280 (+166280), average=76 B
Here is my instrumentation code:
DEMO_SESSION [4]: import tracemalloc
...: tracemalloc.start()
...: first_snapshot = tracemalloc.take_snapshot()
...: def check_mem():
...: snapshot = tracemalloc.take_snapshot()
...: top_stats = snapshot.compare_to(first_snapshot, 'lineno')
...: print("-----------------------")
...: for stat in top_stats[:10]:
...: print(stat)
...: import gevent
...: def check_sometimes():
...: while True:
...: gevent.sleep(30)
...: check_mem()
...: gevent.spawn(check_sometimes)
Here is my test:
DEMO_SESSION [4]: while True: loopscan(2, 0.1, tomocam, save=False)
I dont really check it deep inside.