Здравствуйте, гость ( Вход | Регистрация )
wiz29 | Дата 11.10.2011, 11:57 |
данный пример не отражает реального ничего, советую прочитать эту тему а после делать какие то выводы относительно интервалов и времен. | |
Abesh | Дата 11.10.2011, 11:06 |
Не стоит ожидать, что таймер будет корректно работать на интервале 1-2 миллисекунды. Ни Linux ни Windows не являются ОС реального времени, в большей степени это касается виндов. Там задержки в 1-2 миллисекунды - норма. | |
registr | Дата 9.10.2011, 17:43 |
Доброго времени суток. Хочу поделиться с сообществом своими исследованиями о скорости выполнения timerEvent() и QTimer + сигналы и слоты. Итак понятно, что событие таймера должно выполняться быстрее, чем сигналы и слоты, так как при сигналах и слотах затрачивается время на отлавливание сигнала. Но кто может сказать, какова их численная характеристика? Вот это и должна продемонстировать моя программа. Суть программы. В ней два QLineEdit, в которые будет выводится время в миллисекундах, затраченное на выполнение некоторых процедур. В первую линию будет выводится время, затраченное на работу QTimer + сигналы и слоты, во вторую линию -- время на события таймера. Нажимая кнопку Start, мы запускаем сравнение и ждем результаты. Дополнительными параметрами в программе являются count - счетчик - он будет просто считать до определенного значения и, когда оно наступит, запишет время исполнения, остановит таймер и выдаст результат; другой параметр есть milliseconds - период таймера в миллисекндах. Сравнение производил по двум характеристикам (OS Windows XP, Intel Core2 6300 1.86GHz) 1) Выдерживают ли установленный период timerEvent() и QTimer 2) Насколько быстрее timerEvent(), чем QTimer Получены следующие результаты: +) Период таймера = 10 миллисекундам. timerEvent() ровно выдерживает установленный интервал, QTimer иногда чуть-чуть опаздывает. +) Период таймера = 5 миллисекундам. timerEvent() ровно выдерживает установленный интервал, QTimer всегда чуть опаздывает. +) Период таймера = 2 миллисекундам. timerEvent() чуть запаздывает и немного не выдерживает установленный интервал. QTimer заметно опаздывает. +) Период таймера = 1 миллисекунда. timerEvent() чуть (!) чаще опережает и немного не выдерживает установленный интервал. QTimer заметно опаздывает от 25% до 40%. Точные числа не привел специально. Предлагаю вам самим проверить progtime.h
progtime.cpp
main.cpp
PS Цитировать Qt Assistant для меня не нужно |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.4.2024, 3:26 |