89def analyze_libraries (libnames, detailed=False):
90 display = []
91 _print = display.append
92 lib_stats = {}
93 for libname in libnames:
94 _print(":"*80)
95 bname = os.path.basename(libname)
96 _print(":: inspecting library: %s" % bname)
97 stats = analyze (libname)
98 _print(":: nbr linked: %s" % stats[2])
99 _print(":: dVmem-self: %8.3f Mb" % stats[0])
100 _print(":: dVmem-all : %8.3f Mb" % stats[1])
101
102 lib_stats[bname] = dict(
103 vmem_self= stats[0],
104 vmem_all= stats[1],
105 nbr_linked= stats[2],
106 )
107 if detailed:
108 import operator as _op
109 deps = dep_libs(libname)
110 dep_stats = dict((d, analyze(d)[:2]) for d in deps)
111 dep_vmem = dep_stats.items()
112 dep_vmem.sort(key=_op.itemgetter(1), reverse=True)
113 _print(":: deps: lib-self | lib-all:")
114 for k,v in dep_vmem:
115 _print(":: --> [%8.3f |%8.3f Mb] (%s)" % (v[0], v[1], k))
116
117 return display,lib_stats
118