mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-08-11 09:13:57 -04:00
Add function to test for mem leaks in the scanner
This commit is contained in:
parent
8f095aa63b
commit
ae34d417f6
@ -329,8 +329,30 @@ class DeviceScanner(object):
|
||||
return device.is_usb_connected(self.devices, debug=debug,
|
||||
only_presence=only_presence)
|
||||
|
||||
def test_for_mem_leak():
|
||||
from calibre.utils.mem import memory, gc_histogram, diff_hists
|
||||
import gc
|
||||
gc.disable()
|
||||
scanner = DeviceScanner()
|
||||
scanner.scan()
|
||||
for i in xrange(3): gc.collect()
|
||||
|
||||
for reps in (10, 100, 1000, 10000):
|
||||
for i in xrange(3): gc.collect()
|
||||
h1 = gc_histogram()
|
||||
startmem = memory()
|
||||
for i in xrange(reps):
|
||||
scanner.scan()
|
||||
for i in xrange(3): gc.collect()
|
||||
usedmem = memory(startmem)
|
||||
prints('Memory used in %d repetitions of scan(): %.6f KB'%(reps,
|
||||
1024*usedmem))
|
||||
prints('Differences in python object counts:')
|
||||
diff_hists(h1, gc_histogram())
|
||||
|
||||
|
||||
def main(args=sys.argv):
|
||||
test_for_mem_leak()
|
||||
return 0
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
Loading…
x
Reference in New Issue
Block a user