Здравствуйте!
Я столкнулся с тем, что в Ubuntu-14.04 в программе на Qt неточно выдерживается timeout
для таймера типа QBasicTimer. Программа специально проверочная, ничего не делает,
только запускает таймер. Один с периодом 40ms вызывает один слот, другой с периодом 4ms
запускается по его срабатыванию и вызывает другой слот 8 раз. При этом время между вызовами
1-го слота колеблется в пределах 40600 - 40618 микросекунд, а время между вызовами 2-го слота -
4062/4063 микросекунды. При этом не бывает сбоев в вызове 1-го слота, т.е. на 10000 раз нет ни
одного случая, чтобы время было грубо неправильным.
В 10 раз больше интервал - в 10 раз больше добавка.
В Astra-Linux, основанной на Debian Wheezy, оба timeout'а выдерживаются с точностью 1 микросекунда -
40000 и 4000, но на 10000 раз бывает несколько грубо неправильных вызова 1-го слота. Время получал
с помощью gettimeofday(). В обоих системах ядро скомпилированное, HZ=1000.
В чём может быть причина такой отработки интервалов в Ubuntu?
Пётр.
LinuxForum.Fans
соблюдение timeout
Автор: Peter
3 сообщений
879 просмотров
Запустил эту программу в Ubuntu-14.04 на ноутбуке с Intel Core i7,
там ещё хуже: вместо 4ms - 4150-4183 микросекунд,
вместо 40ms - 39688-40716 микросекунд. Наверное, в Ubuntu есть какой-то порок.
Пётр.
Peter, где программа?
Наверное, в Ubuntu есть какой-то порок.
а, вы пофлеймить пришли, да?
Войдите или зарегистрируйтесь, чтобы ответить.