ATLAS Offline Software
Classes | Functions | Variables
dso-stats Namespace Reference

Classes

class  Data
 

Functions

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

Variables

 PAGESIZE
 
 pat
 
 format
 

Function Documentation

◆ _cleanname()

def dso-stats._cleanname (   name)
private

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

55 def _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()

def dso-stats._form (   x)
private

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

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

◆ _frag()

def dso-stats._frag (   sz)
private

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

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

◆ _getpagesz()

def dso-stats._getpagesz ( )
private

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

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

◆ getoutput()

def dso-stats.getoutput (   cmd)

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

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

◆ getstatus()

def dso-stats.getstatus (   cmd)

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

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

◆ main()

def dso-stats.main ( )

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

188 def 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 

◆ parse_lib()

def dso-stats.parse_lib (   lib)

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

41 def 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

dso-stats.format

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

◆ PAGESIZE

dso-stats.PAGESIZE

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

◆ pat

dso-stats.pat

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

dso-stats.getoutput
def getoutput(cmd)
Definition: dso-stats.py:20
dso-stats._form
def _form(x)
Definition: dso-stats.py:65
dso-stats.parse_lib
def parse_lib(lib)
Definition: dso-stats.py:41
dso-stats._getpagesz
def _getpagesz()
Definition: dso-stats.py:28
dso-stats.getstatus
def getstatus(cmd)
Definition: dso-stats.py:14
dso-stats._cleanname
def _cleanname(name)
Definition: dso-stats.py:55
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
dso-stats._frag
def _frag(sz)
Definition: dso-stats.py:51
dso-stats.main
def main()
Definition: dso-stats.py:188