|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.02.2018, 08:53 | #11 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Я лет 15 назад провёл детальное исследования и выяснил, что виндовые функции времени Sleep() и GetTickCount() на малых интервалах дают ацкую погрешность - до 1600% (тыщашестьсот!).
Решение было найдено и работает по сей день прекрасно. Использую во всех своих прогах. Могу поделиться со всеми желающими. ------------- Сейчас я раскопал в архиве тестовое приложение и с удивлением обнаружил, что в Windows 10x64 функция Sleep() таки стала работать почти исправно, мелкософт доработала напильником. Но если Sleep() оставлять в проге, то обратной совместимости настаёт кирдык. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
Последний раз редактировалось min@y™; 07.02.2018 в 10:08. |
07.02.2018, 11:15 | #12 |
Пользователь
Регистрация: 07.04.2016
Сообщений: 16
|
Спасибо всем кто принял участие в решении проблемы.
В моей миллисекундной временной шкале WinXP вполне соответствует системе реального времени. Но Win7 - никаким боком. Проблема решилась вызовом QueryPerformanceCounter и организацией собственного подсчета времени. |
09.02.2018, 11:39 | #13 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,834
|
в архиве у вас только EXE-шник, а исходника с решением проблемы нет, что вы там накопали и до какой сути дошли? сам бы код увидеть...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
09.02.2018, 11:49 | #14 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Исходники зашиты внутрь exe и извлекаются по Shift+F11. У меня это делается автоматически и уже довольно давно. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
09.02.2018, 12:14 | #15 |
Участник клуба
Регистрация: 17.05.2011
Сообщений: 1,660
|
Наверно все же не только винда, но и конкретное железо вносит свои "коррективы"
Сейчас проверил на программе min@y™, система WIN7 x64, у меня Sleep() работает миллисекунда в миллисекунду до самой 1 (кстати, отрицательные интервалы программе не полезны ), а вот GetTickCount() меньше 16 не показывает вообще, и общая точность дрянь. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задать временной интервал в php | grundik1 | PHP | 2 | 25.04.2015 16:58 |
Как правильно выдержать html и php. | Predator199 | PHP | 14 | 07.03.2012 21:11 |
Временной интервал | MaRKer.nsk | Общие вопросы C/C++ | 2 | 03.11.2010 10:04 |
Как получить точный таймер | WaxeP | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 5 | 25.07.2010 18:25 |
Как реализовать точный таймер (до мксек) | evgengold | Общие вопросы Delphi | 11 | 03.03.2009 11:41 |