timerEvent() vs. QTimer + сигналы и слоты |
Здравствуйте, гость ( Вход | Регистрация )
timerEvent() vs. QTimer + сигналы и слоты |
registr |
9.10.2011, 17:43
Сообщение
#1
|
Участник Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: 1 |
Доброго времени суток. Хочу поделиться с сообществом своими исследованиями о скорости выполнения 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 для меня не нужно Сообщение отредактировал registr - 10.10.2011, 14:11 |
|
|
Текстовая версия | Сейчас: 30.1.2025, 4:23 |