Помогите мне выяснить точную разницу между магическими командами time и timeit в блокноте Jupyter.
%time
a = "stack overflow"
time.sleep(2)
print(a)
Он показывает всего несколько микросекунд, но я добавил время сна как 2 секунды.
Магия, начинающаяся с двойного знака процента (%%), считается клеточной магией . Это отличается от магических линий, которым предшествует один знак процента (%).
Следует, что,
time
используется для определения времени выполнения кода либо на уровне строки (%), либо на уровне ячейки (%%).timeit
аналогичен, но код выполняется несколько раз, чтобы предоставить более точную и статистически значимую информацию о времени.Ключевое отличие состоит в том, что %time
и %%time
(документы ) измеряют время выполнения кода один раз, а %timeit
и %%timeit
( документы) измеряют время выполнения кода несколько раз, чтобы получить среднее время и стандартное отклонение.
Следовательно,
%%time
a = "stack overflow"
time.sleep(2)
print(a)
Этот вывод показывает как время процессора, так и время стены. Время стены включает 2-секундное время ожидания, а время ЦП учитывает фактическое время обработки.
Замена %%time
на %time
покажет время процессора и время стены для следующей выполняемой отдельной строки.
Спасибо за объяснение. Не могли бы вы объяснить разницу между временем процессора и временем стены?
@DhamodharanR Как поясняется в этом посте , время ЦП означает фактическое время, которое ЦП тратит на обработку инструкций для конкретной задачи. Он включает только время, в течение которого ЦП активно работает над задачей/кодом пользователя. С другой стороны, время стены — это общее время, прошедшее от начала до завершения задачи. По сути, время ЦП измеряет время активной обработки, а время стены измеряет общее затраченное время.
Вы пробовали искать в документации? ipython.readthedocs.io/en/stable/interactive/… Знаки одного или двух процентов — это магия линий или магия ячеек.