![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Matematik |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 1 Всего: 50 |
Какая у функции GetTickCount погрешность?
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 9 Всего: 98 |
все те же 10мс
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
_hunter,
Обидно, я только что проверил
Шаг и вправду 10 мс -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Попробуй вот так:
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Rouse_, результат что в микросекундах?????!!!!
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Результат: кол-во тактов процессора прошедшее с момента старта системы
|
|||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 1 Всего: 124 |
Microsoft® Windows® Internals, Fourth Edition: Microsoft Windows Server™ 2003, Windows XP, and Windows 2000
By Mark E. Russinovich, David A. Solomon BOOT.INI /TIMERES= Sets the resolution of the system timer on the standard x86 multiprocessor HAL (Halmps.dll). The argument is a number interpreted in hundreds of nanoseconds, but the rate is set to the closest resolution the HAL supports that isn't larger than the one requested. The HAL supports the following resolutions: Hundreds of nanoseconds Milliseconds (ms) 97660.98 195322.00 390633.90 781257.80 The default resolution is 7.8 ms. The system timer resolution affects the resolution of waitable timers. Example: /TIMERES=21000 would set the timer to a resolution of 2.0 ms. |
|||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
SergeCpp, это все хорошо но как реализовать
Rouse_,
Количесво тактов процессора в единицу времени зависит от загружености процессора или опредляется тактовой частотой процессора -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 1 Всего: 124 |
Файл BOOT.INI (не копируйте весь! — только поставьте /timeres=21000)
Количество тактов процессора в единицу времени не зависит от загружености процессора, а определяется тактовой частотой процессора И это не всегда количество тактов процессора, прошедшее с момента старта системы! (какой-нибудь драйвер может выполнить WRMSR для этого регистра и изменить это значение) Это сообщение отредактировал(а) SergeCpp - 21.4.2006, 12:48 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
SergeCpp, Спасибо БОЛЬШОЕ, я понял это заставит работать все таймеры точнее, а не скажется ли это на работе других программ и работе системы в целом, как мне кажется это приведет к увеличению загрузки процессора или я не прав
Это сообщение отредактировал(а) alexeis1 - 21.4.2006, 12:45 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 1 Всего: 124 |
Так как планировщик будет вызываться более часто, то немного скажется... но совсем немного! Попробуйте!
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
SergeCpp, эта функция очень удобна для домашнего компьютера, но использовать ее в прикладных программах не получится, так как менять системные настройки в чужом компьютере не всегда можно, более того не корректно.
Подождем Rouse_ ... -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 1 Всего: 124 |
Тогда High-Resolution Timer
QueryPerformanceFrequency() & QueryPerformanceCounter() Также Multimedia Timers Это сообщение отредактировал(а) SergeCpp - 21.4.2006, 12:57 |
|||
|
||||
| Rouse_ |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Зависит от загруженности процессора. Windows к сожалению не является системой реального времени поэтому главный поток программы работает только во время выделенного ему кванта времени, в то время когда поток стоит, процессор выполняет другие задачи. Процессор обрабатывает инструкции переданные ему программами, причем для выполнения каждой инструкции требуется отределенное кол-во тактов процесора. К примеру для выполнения моей функции затраты будут равны примерно 120 тактам... QueryPerformanceFrequency() & QueryPerformanceCounter() основаны именно на инструкции rdtsc с соответствующим поправочным значением модифицирующим конечный результат... Добавлено @ 13:25
Хотя да, тут смотря как смотреть - кол-во тактов процессора естетсвенно неизменно ибо он работает в реальном времени, но если смореть на это значение из программы работающей на третьем кольце защиты, то значение между двумя вызовами варьируется именно исходя из загруженности... |
||||
|
|||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |