Про тайминги и скорость работы потока
От: qweas  
Дата: 05.07.14 19:50
Оценка:
На данный момент разрабатываемая программа состоит из двух частей: 1) класс, работающий с физическим устройством(приемником) и выдающий цифровой поток 2) класс, выполняющий демодуляцию потока. Поток выдается со скоростью 16 МБайт/сек — скорость стабильная, неизменная(ну если не учитывать дрожания, так сзать). Таким образом, минимальная скорость демодуляции(при условии работы в 1 поток) — 17-18 МБ/сек.

Возникла задача измерить время выполнения процедуры демодуляции. Используют разное: clock, QueryPerformanceCounter, сторонние библиотеки. Подсчитывают время с учетом системного и без учета. Но что это дает? Ок, посчитали сколько "в чистую" выполняется нужный участок лишь нужного нам потока, улучшили по возможности. Но ведь в реальности поток не один.

Выполнив измерения, я получил 20-22 МБайта/сек в худшем случае. То есть демодулятор успевает. А что, если у потока будет меньший приоритет? Или больший? Или еще будет куча процессов запущено других. Как я могу обеспечить более или менее стабильную скорость работы потока на какой-бы то ни было системе? Т.е. взять, запустить на другой машине и сказать: Йо, чувак, демодулятор фигачит где-то 22 Мбайта/секунду.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.