На данный момент разрабатываемая программа состоит из двух частей: 1) класс, работающий с физическим устройством(приемником) и выдающий цифровой поток 2) класс, выполняющий демодуляцию потока. Поток выдается со скоростью 16 МБайт/сек — скорость стабильная, неизменная(ну если не учитывать дрожания, так сзать). Таким образом, минимальная скорость демодуляции(при условии работы в 1 поток) — 17-18 МБ/сек.
Возникла задача измерить время выполнения процедуры демодуляции. Используют разное: clock, QueryPerformanceCounter, сторонние библиотеки. Подсчитывают время с учетом системного и без учета. Но что это дает? Ок, посчитали сколько "в чистую" выполняется нужный участок лишь нужного нам потока, улучшили по возможности. Но ведь в реальности поток не один.
Выполнив измерения, я получил 20-22 МБайта/сек в худшем случае. То есть демодулятор успевает. А что, если у потока будет меньший приоритет? Или больший? Или еще будет куча процессов запущено других. Как я могу обеспечить более или менее стабильную скорость работы потока на какой-бы то ни было системе? Т.е. взять, запустить на другой машине и сказать: Йо, чувак, демодулятор фигачит где-то 22 Мбайта/секунду.