Как измерить время работы процессора и время работы часов на стене функции отдельно, как код Python (а не от терминала)?

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

Я просмотрел профилировщики python, но они, похоже, предназначены для сканирования программы, а не только в одиночку. Из http://docs.python.org/2/library/profile.html :

Примечание. Модули профилировщика предназначены для предоставления профиля выполнения для данной программы, а не для целей бенчмаркинга (для этого существует время для получения достаточно точных результатов). Это особенно относится к сравнению кода Python с кодом C: профилировщики вводят служебные данные для кода Python, но не для функций уровня C, поэтому код C будет казаться быстрее, чем любой Python.

Затем я попробовал модуль timeit: http://docs.python.org/2/library/timeit.html , но он, похоже, не поддерживает разделение времени процессора и настенных часов. Насколько я понимаю, он просто измеряет общее время работы.

Я ищу что-то вроде этого:

$ time python yourprogram.py real 0m1.028s user 0m0.001s sys 0m0.003s 

Но вместо вызова из командной строки мне нужно вызвать его из кода python.

Что-то вроде system.time () в R:

 print(system.time(replicate(repeats, factorialRecursive(150)))) user system elapsed 0.041 0.001 0.041 

Как я могу достичь этого в Python?

One Solution collect form web for “Как измерить время работы процессора и время работы часов на стене функции отдельно, как код Python (а не от терминала)?”

В модуле resource размещается getrusage , что позволит вам отдельно получить время пользователя, системы и настенного времени, как это делает команда time .

  • Преобразование строки в int слишком медленно
  • Более быстрый способ каталогов, идущий вместо os.listdir?
  • Производительность строки - Python 2.7 vs Python 3.4 под Windows 10 против Ubuntu
  • Параллельные запросы в Appengine Python
  • Комбинации Python из 2 списков
  • Python - «xor» каждый байт в «байтах» наиболее эффективным способом
  • Эффективность при введении в mongodb (pymongo)
  • Самый эффективный способ удаления нескольких подстрок из строки?
  • Эффективность памяти: один большой словарь или словарь меньших словарей?
  • Python - Самый эффективный способ реализовать два дополнения?
  • Быстрая настройка пикселей
  • Python - лучший язык программирования в мире.