Время процессора в наносекундах питона - использовать устаревшее или новое? - PullRequest
0 голосов
/ 07 июня 2018

После прочтения этой Python time.clock () против точности time.time ()? и time.process_time () , между прочим, я в замешательстве.

Мне нужно время процессора, затирая алгоритм.Я хочу, чтобы время было прямо перед вызовом и сразу после его возвращения.

start = time.time() or time.process_time()
sorted = algorithm(stuff)
end = time.time() or time.process_time()
elapsed = end - start * (1e9)

time.process_time() кажется хорошим кандидатом, но я понятия не имею, какие единицы он возвращает на Mac, похоже, не можетнайти прямой ответ, и мне нужно преобразовать в наносекунды.Я попробовал time.time () и ответ показался мне дико неправильным.Мысли о том, что я могу сделать здесь?

1 Ответ

0 голосов
/ 07 июня 2018

Для тестирования кода Python рассмотрите возможность использования пакета timeit (также в Python 3 ).У него есть несколько преимуществ по сравнению с выполнением его самостоятельно: многократное повторение теста, позволяющее находить вещи из ОС / системы вне вашего контроля, отключение сбора мусора для предотвращения искажения результатов и использование наиболее точного таймера, доступного для текущей системы (включая Python 3.3+ 's perf_counter).

Вы не упоминаете, какую версию Python вы используете, но если у вас версия 3.3+, perf_counterдаст вам самый точный таймер из доступных.

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