Типом приложения, которое нужно иметь в виду, является осциллограф или высокоскоростной регистратор данных. У меня есть функция, которая извлекает требуемую информацию, мне просто нужно решить, как ее повторять снова и снова, очень быстро и с высокой точностью.
Есть ограничения на time.sleep(), я не думаю, что это путь.
Я просмотрел встроенный планировщик событий, но я не думаю, что он достаточно точен и не совсем заполняет мои потребности.
Требования для этого:
- Высокоскоростная выборка. 10 мс - это самое большее, о чем будет просить об этом.
- Высокие интервалы точности. При 10 мс допустима ошибка 10% (± 1 мс).
- Достаточно низкое потребление ЦП, некоторая загрузка приемлема в 10 мс, но она должна быть меньше ~ 5% за интервалы 100 мс и выше. Я знаю, что это субъективно, я полагаю, что я говорю о том, что hogging CPU неприемлем.
- В идеале таймер будет инициализирован с интервалом времени, а затем запускается, когда это необходимо. Затем требуемую функцию следует вызывать с правильным интервалом снова и снова, пока таймер не остановится.
- Он будет (не обязательно) работать только на машине Windows.
Существуют ли существующие библиотеки, которые отвечают этим требованиям? Я не хочу заново изобретать колесо, но если мне нужно, я, вероятно, буду использовать мультимедийный таймер Windows (winmm.dll). Любые комментарии/предложения с этим?