10 def new_import(name
, globals={}, locals={}, fromlist
=[]):
13 return old_import(name
, globals, locals, fromlist
)
15 import_order
.append((name
, level
, parent
))
20 module
= old_import(name
, globals, locals, fromlist
)
24 elapsed_times
[name
] = t2
-t1
27 old_import
= __builtins__
.__import
__
29 __builtins__
.__import
__ = new_import
35 for name
, level
, parent
in import_order
:
36 parents
[name
] = parent
37 is_parent
[parent
] = True
40 for name
, level
, parent
in import_order
:
41 print "%s%s: %.3f (%s)" % (" "*level
, name
, elapsed_times
.get(name
,0),
45 print "== Slowest (including children) =="
46 slowest
= sorted((t
, name
) for (name
, t
) in elapsed_times
.items())[-50:]
47 for elapsed_time
, name
in slowest
[::-1]:
48 print "%.3f %s (%s)" % (elapsed_time
, name
, parents
[name
])