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
|
#!/usr/bin/python
import apt
import apt_pkg
import time
import gc
import sys
cache = apt.Cache()
# memleak
for i in range(100):
cache.open(None)
print cache["apt"].name
time.sleep(1)
gc.collect()
f = open("%s" % i, "w")
for obj in gc.get_objects():
f.write("%s\n" % str(obj))
f.close()
# memleak
#for i in range(100):
# cache = apt.Cache()
# time.sleep(1)
# cache = None
# gc.collect()
# no memleak, but more or less the apt.Cache.open() code
for i in range(100):
cache = apt_pkg.Cache()
depcache = apt_pkg.DepCache(cache)
records = apt_pkg.PackageRecords(cache)
list = apt_pkg.SourceList()
list.ReadMainList()
dict = {}
for pkg in cache.Packages:
if len(pkg.VersionList) > 0:
dict[pkg.Name] = apt.Package(cache, depcache,
records, list, None, pkg)
print cache["apt"]
time.sleep(1)
gc.collect()
|