Чтобы узнать, сколько времени занимает импорт, возможно, самый простой способ - использовать модуль timeit ..
>>> import timeit
>>> t = timeit.Timer('import urllib')
>>> t.timeit(number = 1000000)
0.98621106147766113
То есть, чтобы импортировать urllib 1 миллион раз, это заняло чуть меньше секунды (на Macbook Pro) ..
У меня есть мастер-скрипт, который импортирует другие модули. Мне нужно рассчитать, сколько времени это займет
Если вы имеете в виду общее время выполнения сценария, в Linux / OS X / Cygwin вы можете запустить сценарий с помощью команды time
, например:
$ time python myscript.py
real 0m0.046s
user 0m0.024s
sys 0m0.020s
(помните, что включает в себя все время запуска интерпретатора Python, а также фактическое время выполнения кода, хотя это довольно тривиальная сумма)
Другой, возможно, более полезный способ - профилировать скрипт:
Вместо запуска кода с
$ python myscript.py
.. вы используете ..
$ python -m cProfile myscript.py
1059 function calls in 0.015 CPU seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 <string>:1(<module>)
1 0.002 0.002 0.015 0.015 myscript.py:1(<module>)
[...]
Я не нахожу вывод командной строки очень простым для чтения, поэтому я почти всегда использую gprof2dot , который превращает информацию о профилировании в симпатичный граф графика:
$ python -m cProfile -o myscript.prof myscript.py
$ python gprof2dot.py -o myscript.dot -f pstats myscript.prof
$ dot -Tpng -o profile.png prof_runtest.dot -Gbgcolor=black
Пример вывода (1429x1896px PNG)