|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.10.2011, 21:45 | #1 |
Форумчанин
Регистрация: 08.06.2011
Сообщений: 693
|
Отстает секундомер
Вот сделал секундомер. Запустил и думаю: что-то медленно секунды идут. Взял телефон и одновременно запустил. Когда на компьютере было ~10 секунд, на телефоне ~20. Процессор сильно не грузится (меньше 0%).
Где ошибка или недочет? Код:
|
01.10.2011, 21:50 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Запоминай перед стартом таймера текущее время, по тику таймера определяй разницу между текущим и тем, что запомнил - наиболее точный способ определения интервала времени
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
01.10.2011, 22:12 | #3 |
Форумчанин
Регистрация: 08.06.2011
Сообщений: 693
|
|
01.10.2011, 22:21 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
02.10.2011, 14:11 | #5 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
hon попробуй этот вариант
Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
02.10.2011, 14:36 | #6 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
Дельфийский таймер будет отставать в любом случае.
Для точного отсчета времени используйте мультимедийный таймер. Тема уже рассматривалась: http://www.programmersforum.ru/showthread.php?t=12132 И даже был пример сравнения таймеров: http://www.programmersforum.ru/showp...6&postcount=29 |
02.10.2011, 14:40 | #7 | |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Цитата:
Наши с Аватаром коды не считают "тики процессора", которые зависят от производительности ОС в определённый момент времени, а считаем системное время. Если даже произойдёт заторможенность в определённый момент, то в следующем тике будет отработана разница между Now и значением Start которое запоминается при старте )
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
|
03.10.2011, 09:59 | #8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
учитывая что Дельфийский не более чем обертка над АПИшным. первое что бросилось в глаза, у вас код громоздок, подумайте сами, успевает ли он выполнится за ваш интервал?(+учитывая что после выполнения кода таймера у вас будет перерисовка лейблов с новыми значениями(а то и всей формы, я не знаю как это у VCL реализовано)) рано или поздно будет отставание. да и кстати, пожалуй GetTickCount тут достаточно будет. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Секундомер на С++!!! | JOHNY26RUS | Помощь студентам | 4 | 26.05.2011 11:13 |
Секундомер | aesoem | Общие вопросы Delphi | 10 | 28.01.2008 19:25 |
секундомер | itisiam | Общие вопросы Delphi | 6 | 31.05.2007 16:55 |