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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
import os,sys,re,time
def cmdline():
m=re.compile(r'\A\d+\Z')
args = []
repeat = 1
for a in sys.argv[1:]:
if m.match(a):
repeat = eval(a)
else:
args.append(a)
f2py_opts = ' '.join(args)
return repeat,f2py_opts
if sys.platform[:5]=='linux':
def jiffies(_proc_pid_stat = '/proc/%s/stat'%(os.getpid()),
_load_time=time.time()):
""" Return number of jiffies (1/100ths of a second) that this
process has been scheduled in user mode. See man 5 proc. """
try:
f=open(_proc_pid_stat,'r')
l = f.readline().split(' ')
f.close()
return int(l[13])
except:
return int(100*(time.time()-_load_time))
def memusage(_proc_pid_stat = '/proc/%s/stat'%(os.getpid())):
""" Return virtual memory size in bytes of the running python.
"""
try:
f=open(_proc_pid_stat,'r')
l = f.readline().split(' ')
f.close()
return int(l[22])
except:
return
else:
def jiffies(_load_time=time.time()):
""" Return number of jiffies (1/100ths of a second) that this
process has been scheduled in user mode. [Emulation with time.time]. """
return int(100*(time.time()-_load_time))
def memusage():
pass
def run(runtest,test_functions,repeat=1):
l = [(t,repr(t.__doc__.split('\n')[1].strip())) for t in test_functions]
#l = [(t,'') for t in test_functions]
start_memusage = memusage()
diff_memusage = None
start_jiffies = jiffies()
i = 0
while i<repeat:
i += 1
for t,fname in l:
runtest(t)
if start_memusage is None: continue
if diff_memusage is None:
diff_memusage = memusage() - start_memusage
else:
diff_memusage2 = memusage() - start_memusage
if diff_memusage2!=diff_memusage:
print 'memory usage change at step %i:' % i,\
diff_memusage2-diff_memusage,\
fname
diff_memusage = diff_memusage2
current_memusage = memusage()
print 'run',repeat*len(test_functions),'tests',\
'in %.2f seconds' % ((jiffies()-start_jiffies)/100.0)
if start_memusage:
print 'initial virtual memory size:',start_memusage,'bytes'
print 'current virtual memory size:',current_memusage,'bytes'
|