Как я могу настроить свой IPython-ноутбук, чтобы он всегда показывал время выполнения как часть вывода?

Иногда я выполняю метод, который занимает много времени, чтобы вычислить

In [1]:
long_running_invocation()
Out[1]:

Часто мне интересно узнать, сколько времени потребовалось, поэтому я должен написать это:

In[2]:
 import time
 start = time.time()
 long_running_invocation()
 end = time.time()
 print end - start
Out[2]: 1024

Есть ли способ настроить мой IPython ноутбук, чтобы он автоматически печатал время выполнения каждого вызова, который я делаю, как в следующем примере?

In [1]:
long_running_invocation()
Out[1] (1.59s):
3 ответа

Это расширение ipython делает то, что вы хотите: https://github.com/cpcloud/ipython-autotime

загрузите его, поставив это в верхней части вашего ноутбука:

%install_ext https://raw.github.com/cpcloud/ipython-autotime/master/autotime.py %load_ext autotime

После загрузки каждое последующее выполнение ячейки будет включать время, затраченное на выполнение как часть его выхода.


Я не нашел способ, чтобы каждая ячейка выводила время, необходимое для выполнения кода, но вместо того, что у вас есть, вы можете использовать магию клеток:% time или% timeit

волшебная магия ipython


Теперь вы можете просто использовать магию %%time в начале ячейки следующим образом:

%%time
data = sc.textFile(sample_location)
doc_count = data.count()
doc_objs = data.map(lambda x: json.loads(x))

который при выполнении будет распечатывать вывод, например:

CPU times: user 372 ms, sys: 48 ms, total: 420 ms
Wall time: 37.7 s

licensed under cc by-sa 3.0 with attribution.