File: leaking_check.py

package info (click to toggle)
napari 0.6.6-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 12,036 kB
  • sloc: python: 112,264; xml: 72; makefile: 44; sh: 5
file content (48 lines) | stat: -rw-r--r-- 1,515 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import gc
import os
import weakref

import numpy as np
import objgraph
import psutil
import qtpy

import napari

process = psutil.Process(os.getpid())
viewer = napari.Viewer()

print('mem', process.memory_info().rss)

for _ in range(0):
    print(viewer.add_image(np.random.random((60, 1000, 1000))).name)
for _ in range(2):
    print(viewer.add_labels((np.random.random((2, 1000, 1000)) * 10).astype(np.uint8)).name)

print('mem', process.memory_info().rss)

# napari.run()

print('controls', viewer.window.qt_viewer.controls.widgets)
li = weakref.ref(viewer.layers[0])
data_li = weakref.ref(li()._data)
controls = weakref.ref(viewer.window.qt_viewer.controls.widgets[li()])
objgraph.show_backrefs(li(), filename='base.png')
del viewer.layers[0]
qtpy.QtGui.QGuiApplication.processEvents()
gc.collect()
gc.collect()
print(li())
objgraph.show_backrefs(li(), max_depth=10, filename='test.png', refcounts=True)
objgraph.show_backrefs(controls(), max_depth=10, filename='controls.png', refcounts=True)
objgraph.show_backrefs(data_li(), max_depth=10,  filename='test_data.png')
print('controls', viewer.window.qt_viewer.controls.widgets)
print('controls', gc.get_referrers(controls()))
print('controls', controls().parent())
#print("controls", controls().parent().indexOf(controls()))
print(gc.get_referrers(li()))
print(gc.get_referrers(li())[1])
print(gc.get_referrers(gc.get_referrers(gc.get_referrers(li())[0])))
res = gc.get_referrers(gc.get_referrers(gc.get_referrers(li())[0])[0])
print(res)
#print(type(res[0]))