Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Соблюдение timeout  (Прочитано 640 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3286
    • Просмотр профиля
Соблюдение timeout
« : 10 Ноября 2014, 14:53:38 »
Здравствуйте!

Я столкнулся с тем, что в Ubuntu-14.04 в программе на Qt неточно выдерживается timeout
для таймера типа QBasicTimer. Программа специально проверочная, ничего не делает,
только запускает таймер. Один с периодом 40ms вызывает один слот, другой с периодом 4ms
запускается по его срабатыванию и вызывает другой слот 8 раз. При этом время между вызовами
1-го слота колеблется в пределах 40600 - 40618 микросекунд, а время между вызовами 2-го слота -
4062/4063 микросекунды. При этом не бывает сбоев в вызове 1-го слота, т.е. на 10000 раз нет ни
одного случая, чтобы время было грубо неправильным.

В Astra-Linux, основанной на Debian Wheezy, оба timeout'а выдерживаются с точностью 1 микросекунда -
40000 и 4000, но на 10000 раз бывает несколько грубо неправильных вызова 1-го слота. Время получал
с помощью gettimeofday(). В обоих системах ядро скомпилированное, HZ=1000.
В чём может быть причина такой отработки интервалов в Ubuntu?
Пётр.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3286
    • Просмотр профиля
Re: Соблюдение timeout
« Ответ #1 : 11 Ноября 2014, 22:23:37 »
Запустил эту программу в Ubuntu-14.04 на ноутбуке с Intel Core i7,
там ещё хуже: вместо 4ms - 4150-4183 микросекунд,
вместо 40ms - 39688-40716 микросекунд. Наверное, в Ubuntu есть какой-то порок.
« Последнее редактирование: 11 Ноября 2014, 22:27:24 от Peter_I »
Пётр.

Оффлайн Pilot6

  • Старожил
  • *
  • Сообщений: 14037
  • Xubuntu 18.04
    • Просмотр профиля
Re: Соблюдение timeout
« Ответ #2 : 11 Ноября 2014, 22:41:02 »
Peter_I,
Сравните ядра. Может lowlatency в дебиан или что-то в этом роде.
Я в личке не консультирую. Вопросы задавайте на форуме.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3286
    • Просмотр профиля
Re: Соблюдение timeout
« Ответ #3 : 11 Ноября 2014, 23:26:53 »
Peter_I,
Сравните ядра. Может lowlatency в дебиан или что-то в этом роде.
Насколько я помню, на десктопном с Ubuntu тоже low-latency, посмотрю завтра,
на ноутбуке, наверное, тоже. НО это не может влиять так сильно, в обоих
случаях я ничего другого не запускал. Там же процессоры по 2.0 - 2.4 GHz.

Пользователь решил продолжить мысль 12 Ноября 2014, 09:18:29:
Peter_I,
Сравните ядра. Может lowlatency в дебиан или что-то в этом роде.
Посмотрел /boot/config, на обоих компьютерах одинаково установлено LATENCY.
Разница та, что в Debian Qt 4, точнее скомпилированная Qt 4.8.4, а в Ubuntu Qt 5.
« Последнее редактирование: 12 Ноября 2014, 09:18:29 от Peter_I »
Пётр.

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.