LinuxForum.Fans
Тема

соблюдение timeout

Автор: Peter 3 сообщений 879 просмотров
10.11.2014 20:22 #400373

Здравствуйте!

Я столкнулся с тем, что в 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?

Пётр.

11.11.2014 22:26 #400537

Запустил эту программу в Ubuntu-14.04 на ноутбуке с Intel Core i7,
там ещё хуже: вместо 4ms - 4150-4183 микросекунд,
вместо 40ms - 39688-40716 микросекунд. Наверное, в Ubuntu есть какой-то порок.

Пётр.

12.11.2014 11:02 #400598

Peter, где программа?

"Peter" написал:
Наверное, в Ubuntu есть какой-то порок.

а, вы пофлеймить пришли, да?

Войдите или зарегистрируйтесь, чтобы ответить.