2010-06-13 3 views
1

Я ищу способ для выполнения действий в зависимости от того, как долго он выполняется. Например, моя функция будет циклически работать до тех пор, пока не истечет 5 секунд, и в этом случае она немедленно вернется. Какие-либо предложения?Python выполняет функцию в течение X секунд

ответ

4

Другой вариант заключается в использовании signal.alarm() с соответствующим обработчиком сигнала, документированной на http://docs.python.org/library/signal.html. Особым преимуществом такого подхода является необходимость не проверять время при каждом цикле, что может привести к значительным накладным расходам для небольших, плотных циклов.

5

Вы посмотрели time.clock()?

time.clock()

В Unix, возвращают текущее время процессора как число с плавающей точкой, выраженное в секундах. Точность и, по сути, само определение значения «процессорного времени» зависит от функции C с тем же именем, но в любом случае это функция, используемая для бенчмаркинга алгоритмов Python или временных алгоритмов.

В Windows эта функция возвращает часы настенные часы, прошедшие с момента первого вызова этой функции, в виде числа с плавающей запятой, на основе функции Win32 QueryPerformanceCounter(). Разрешение обычно лучше, чем одна микросекунда.

Использование 'time.clock() для измерения времени на Windows:

>>> import time 
>>> def measure(): 
...  t0 = time.clock() 
...  time.sleep(3) 
...  return time.clock() - t0 
... 
>>> measure() 
2.9976609581514113 
>>> 
Смежные вопросы