![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Пользователь
Регистрация: 24.08.2007
Сообщений: 88
|
![]()
Здравствуйте
![]() 1)- измеряю время обработки (clock_t start = clock()... обработка...clock_t finish = clock() ). 2) - после обработки стоит Sleep(50+start-finish) в результате кадры отсылаются каждые 63 мс... Дебаг показал что старт равен финишу, добавил еще одну временную метку после Sleep, оказалось что слип(50) длится до 63 мс.. приложение многопоточное, ось -Windows. В качестве эксперимента была выкинута обработка и прочие ненужные вещи ![]() Код:
Цитата:
Последний раз редактировалось Teksa; 14.07.2010 в 09:36. |
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 31.08.2009
Сообщений: 161
|
![]()
попробуйте функцию GetTickCount(void), впринципе она должна точно работать
![]() пример использования: Код:
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
![]()
а если сделать посылку пакетов в таймере?
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 24.08.2007
Сообщений: 88
|
![]()
ГетТикКаунт сейчас попробую
![]() ![]() в таймере - придется городить очередь результатов на отсылку... и потом как то регулировать доступ к ней... можно попробовать в принципе ![]() Кстати есть мысль ориентироваться по прошлому кадру, то есть если в прошлой итерации кадр проспали на 13 мс , то в этом спать на те же 13 мс меньше.. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
![]()
GetTickCount() не так уж хорошо работает. По моим приблизительным оценкам ее погрешность, равно как и разрешающая способность составляют порядка 10мс. Вообще, думаю, большинство таких функций работают немногим лучше, хотя не поручусь.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 24.08.2007
Сообщений: 88
|
![]() Цитата:
Код:
![]() |
|
![]() |
![]() |
![]() |
#7 | |||
Разрабатываюсь....
Пользователь
Регистрация: 16.11.2008
Сообщений: 68
|
![]()
Попробуй использовать мультимедийный таймер:
Цитата:
Цитата:
Цитата:
|
|||
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 06.06.2010
Сообщений: 42
|
![]()
AFAIK, этого сделать нельзя, т.к. ОС семейства Windows не относятся к операционным системам реального времени, и по этому не могут гарантировать выполнение каких-то действий в строго указанное время; всегда возможно какое-то отклонение... Даже если попытаться в цикле ждать нужного времени, как это предлагает evgn, может случиться так, что в нужное время процесс (точнее - нужный поток этого процесса) работающий по вашей программе будет не активным, и стоять в очереди ожидая очередного кванта процессорного времени на свое выполнение... Потом, когда он все же дождется своего времени, ОС может потребоваться сбросить в своп часть содержимого RAM, а затем подгрузить из свопа в RAM код и данные вашей программы; тут нужно вспомнить что операции со своп файлом (как и любые другие операции с HDD) идут относительно медленно. Подобным образом и возникают непредсказуемые задержки...
Последний раз редактировалось Oleg_SK; 15.07.2010 в 23:21. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 24.08.2007
Сообщений: 88
|
![]()
на системе реального времени подобный вопрос бы и не возник, тут и была вся проблема в этом) в принципе вопрос мог звучать как "способы компенсации неточности измерения времени в операционной системе Okna ".
кстати если не отдавать sleep ом управление - все более менее стабильно ![]() Код:
![]() evgn спасибо ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
функция Sleep() | ^Angel^ | Общие вопросы C/C++ | 9 | 07.05.2011 13:27 |
Функция Sleep(); | VadEr | Общие вопросы Delphi | 6 | 10.09.2009 17:45 |
Проблема с Sleep! | k1r1ch | Общие вопросы Delphi | 11 | 20.06.2009 19:12 |
Аналог Sleep() | Ants | Общие вопросы Delphi | 2 | 18.11.2008 13:11 |
Альтернатива sleep | Zuzlan | Общие вопросы Delphi | 2 | 01.11.2007 01:44 |