ATLAS Offline Software
Loading...
Searching...
No Matches
dso-stats Namespace Reference

Classes

class  Data

Functions

 getstatus (cmd)
 getoutput (cmd)
 _getpagesz ()
 parse_lib (lib)
 _frag (sz)
 _cleanname (name)
 _form (x)
 main ()

Variables

 getstatus
 getoutput
 PAGESIZE = int(_getpagesz())
 pat = re.compile (' *[0-9]* ([^ ]+) *([0-9a-f]+)')
str format = "%(name)-30s %(dso)5s %(code)5s %(puredata)5s %(cpp)5s %(initdata)5s %(bss)5s %(tbss)5s %(frag)5s %(total)6s"

Function Documentation

◆ _cleanname()

dso-stats._cleanname ( name)
protected

Definition at line 55 of file dso-stats.py.

55def _cleanname (name):
56 if name == 'None':
57 return 'None'
58 name = os.path.basename (name)
59 name = os.path.splitext(name)[0]
60 if name.startswith ('lib'):
61 name = name[3:]
62 return name
63
64

◆ _form()

dso-stats._form ( x)
protected

Definition at line 65 of file dso-stats.py.

65def _form (x):
66 return int ((x+512) / 1024)
67

◆ _frag()

dso-stats._frag ( sz)
protected

Definition at line 51 of file dso-stats.py.

51def _frag (sz):
52 return ((sz + PAGESIZE-1) & (~(PAGESIZE-1))) - sz
53
54

◆ _getpagesz()

dso-stats._getpagesz ( )
protected

Definition at line 28 of file dso-stats.py.

28def _getpagesz():
29 import resource
30 sz = resource.getpagesize()
31 del resource
32 return sz

◆ getoutput()

dso-stats.getoutput ( cmd)

Definition at line 20 of file dso-stats.py.

20def getoutput(cmd):
21 _,out = subprocess.getstatusoutput(cmd)
22 return out

◆ getstatus()

dso-stats.getstatus ( cmd)

Definition at line 14 of file dso-stats.py.

14def getstatus(cmd):
15 sc,_ = subprocess.getstatusoutput(cmd)
16 return sc

◆ main()

dso-stats.main ( )

Definition at line 188 of file dso-stats.py.

188def main():
189
190 import optparse
191 parser = optparse.OptionParser(description="compile size statistics for shared libraries",
192 usage="%prog LIB [LIB...]")
193
194 (opt, args) = parser.parse_args()
195 if len(args)==0:
196 parser.error("Invalid number of arguments specified")
197
198 libs = []
199 total = Data(name = 'Total')
200 for lib in args:
201 secs = parse_lib(lib)
202 data = Data (secs, name = lib)
203 libs.append (data)
204 total += data
205 libs.sort (key = lambda x: x.total(), reverse=True)
206 kw = {'name' : 'Name',
207 'dso' : 'DSO',
208 'code' : 'Code',
209 'puredata': 'Pure',
210 'cpp' : 'C++',
211 'java' : 'Java',
212 'initdata': 'data',
213 'bss' : 'BSS',
214 'tbss' : 'TBSS',
215 'frag' : 'Frag',
216 'total': 'Total'}
217 print (format % kw, file=sys.stdout)
218 for l in libs:
219 l.dump (sys.stdout)
220 total.dump (sys.stdout)
221
222 return 0
223
224
@ Data
Definition BaseObject.h:11
int main()
Definition hello.cxx:18

◆ parse_lib()

dso-stats.parse_lib ( lib)

Definition at line 41 of file dso-stats.py.

41def parse_lib (lib):
42 out = subprocess.getoutput ("objdump -h " + lib)
43 secs = []
44 for l in out.split ('\n'):
45 m = pat.match (l)
46 if m:
47 secs.append ((m.group(1), int(m.group(2), 16)))
48 return secs
49
50

Variable Documentation

◆ format

str dso-stats.format = "%(name)-30s %(dso)5s %(code)5s %(puredata)5s %(cpp)5s %(initdata)5s %(bss)5s %(tbss)5s %(frag)5s %(total)6s"

Definition at line 39 of file dso-stats.py.

◆ getoutput

dso-stats.getoutput

Definition at line 23 of file dso-stats.py.

◆ getstatus

dso-stats.getstatus

Definition at line 17 of file dso-stats.py.

◆ PAGESIZE

dso-stats.PAGESIZE = int(_getpagesz())

Definition at line 33 of file dso-stats.py.

◆ pat

dso-stats.pat = re.compile (' *[0-9]* ([^ ]+) *([0-9a-f]+)')

Definition at line 37 of file dso-stats.py.