Chris@87
|
1 from __future__ import division, absolute_import, print_function
|
Chris@87
|
2
|
Chris@87
|
3 import sys
|
Chris@87
|
4 import re
|
Chris@87
|
5
|
Chris@87
|
6 from numpy.testing.utils import jiffies, memusage
|
Chris@87
|
7
|
Chris@87
|
8 def cmdline():
|
Chris@87
|
9 m=re.compile(r'\A\d+\Z')
|
Chris@87
|
10 args = []
|
Chris@87
|
11 repeat = 1
|
Chris@87
|
12 for a in sys.argv[1:]:
|
Chris@87
|
13 if m.match(a):
|
Chris@87
|
14 repeat = eval(a)
|
Chris@87
|
15 else:
|
Chris@87
|
16 args.append(a)
|
Chris@87
|
17 f2py_opts = ' '.join(args)
|
Chris@87
|
18 return repeat, f2py_opts
|
Chris@87
|
19
|
Chris@87
|
20 def run(runtest,test_functions,repeat=1):
|
Chris@87
|
21 l = [(t, repr(t.__doc__.split('\n')[1].strip())) for t in test_functions]
|
Chris@87
|
22 #l = [(t,'') for t in test_functions]
|
Chris@87
|
23 start_memusage = memusage()
|
Chris@87
|
24 diff_memusage = None
|
Chris@87
|
25 start_jiffies = jiffies()
|
Chris@87
|
26 i = 0
|
Chris@87
|
27 while i<repeat:
|
Chris@87
|
28 i += 1
|
Chris@87
|
29 for t, fname in l:
|
Chris@87
|
30 runtest(t)
|
Chris@87
|
31 if start_memusage is None: continue
|
Chris@87
|
32 if diff_memusage is None:
|
Chris@87
|
33 diff_memusage = memusage() - start_memusage
|
Chris@87
|
34 else:
|
Chris@87
|
35 diff_memusage2 = memusage() - start_memusage
|
Chris@87
|
36 if diff_memusage2!=diff_memusage:
|
Chris@87
|
37 print('memory usage change at step %i:' % i,\
|
Chris@87
|
38 diff_memusage2-diff_memusage,\
|
Chris@87
|
39 fname)
|
Chris@87
|
40 diff_memusage = diff_memusage2
|
Chris@87
|
41 current_memusage = memusage()
|
Chris@87
|
42 print('run', repeat*len(test_functions), 'tests',\
|
Chris@87
|
43 'in %.2f seconds' % ((jiffies()-start_jiffies)/100.0))
|
Chris@87
|
44 if start_memusage:
|
Chris@87
|
45 print('initial virtual memory size:', start_memusage, 'bytes')
|
Chris@87
|
46 print('current virtual memory size:', current_memusage, 'bytes')
|