Как правильно сравнить 2 раза в Python, чтобы ускорить тестирование фрагмента кода? Я пробовал читать документы API. Я не уверен, что понимаю, что такое timedelta.
Пока у меня есть этот код:
from datetime import datetime
tstart = datetime.now()
print t1
# code to speed test
tend = datetime.now()
print t2
# what am I missing?
# I'd like to print the time diff here
python
datetime
time
time-measurement
BuddyJoe
источник
источник
Ответы:
datetime.timedelta
это просто разница между двумя датами ... так что это как период времени в днях / секундах / микросекундахИмейте
c.microseconds
в виду, что timedelta возвращает только микросекунды! Для расчета времени всегда используйтеc.total_seconds()
.С помощью datetime.timedelta вы можете выполнять всевозможные математические операции, например:
Возможно, было бы полезнее посмотреть на время процессора, а не на время настенных часов ... хотя это зависит от операционной системы ... в Unix-подобных системах проверьте команду 'time'.
источник
int(c.total_seconds() / 60)
в этом случаеНачиная с Python 2.7 существует метод timedelta.total_seconds (). Итак, чтобы получить прошедшие миллисекунды:
источник
Вместо этого вы можете использовать модуль timeit .
источник
Вы также можете использовать:
Или вы можете использовать профилировщики Python .
источник
start = time.clock()
печатаетDeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead
.Я знаю, что это поздно, но мне действительно нравится использовать:
time.time()
дает вам секунды с эпохи. Поскольку это стандартное время в секундах, вы можете просто вычесть время начала из времени окончания, чтобы получить время процесса (в секундах).time.clock()
это хорошо для тестирования, но я нашел его бесполезным, если вы хотите знать, сколько времени занял ваш процесс. Например, гораздо более интуитивно понятно, что «мой процесс занимает 10 секунд», чем сказать, что «мой процесс занимает 10 тактовых блоков процессора».В первом примере, приведенном выше, вам показано время 0,05 для time.clock () против 0,06377 для time.time ()
Во втором примере как-то время процессора показывает «0», хотя процесс спит секунду.
time.time()
правильно показывает чуть больше 1 секунды.источник
import time
заявлениеСледующий код должен отображать время детла ...
источник
Вы можете просто распечатать разницу:
источник
Я не программист на Python, но я знаю, как использовать Google, и вот что я обнаружил: вы используете оператор «-». Для завершения вашего кода:
Кроме того, похоже, что вы можете использовать функцию strftime () для форматирования расчета временного интервала, чтобы отобразить время, но это вас радует.
источник
time.time () / datetime хорош для быстрого использования, но не всегда на 100% точен. По этой причине мне нравится использовать один из профилировщиков std lib (особенно hotshot), чтобы узнать, что к чему.
источник
Вы можете изучить модули профиля . Вы лучше поймете, где у вас замедление, и большая часть вашей работы будет полностью автоматизирована.
источник
Вот пользовательская функция, которая имитирует Matlab / Octave
tic
toc
.Пример использования:
Функция:
источник
Вы можете использовать timeit вот так, чтобы протестировать скрипт с именем module.py
источник
Arrow: лучшие даты и время для Python
источник