![]() |
|
|
![]()
|
|
| CompWorm |
|
||||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
в соседнем топике я писал, что обнаружил проблему с таймером.
решил сделать отдельный топик, ибо проблема с тем топиком не связана. итак, вот такой код:
под линуксом напрягает процессор до 100% провел эксперимент - если интервал startTimer(2) - то 50% . если более 2 миллисекунд, то все в порядке. если кто-то сталкивался или интересовался проблемой, пожалуйста поделитесь мыслями, с чего бы пустому таймеру так грузить проц? Это сообщение отредактировал(а) CompWorm - 15.5.2009, 21:36 |
||||
|
|||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 1 Всего: 459 |
1мс под виндой ток мультимедийный таймер, обычный дает 10мс, т.е. будет обманывать жестоко.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
про 10мс в винде я в курсе
то есть этот таймер получается неточным, но он очень "старается" выдать, что просят |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 1 Всего: 459 |
CompWorm, думаю это как раз случай насилия над кодом. У всего есть своя область применения. В винде не зря установлено 10мс тик системного таймера, можно вручную установить и 1мс, но будет хуже. Ведь программа не монопольно владеет процессором. Ее прерывают и все, точности больше нет. В винде для мультимедийного таймера организуется высоко приоритетный поток, который "насилует" счетчик тиков проца, разумеется он сильно грузит процессор. Возможно в линуксе та же схема + накладные расходы на оболочку.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
Alexeis, спасибо за ответ.
любопытно конечно как это выглядит хотя бы логически... не совсем прозрачно, почему так резко возрастает нагрузка на 2 и на 1 мс, а не нагружается равномерно, например, постепенно возрастая от 10мс (или хотя бы от 5мс) до 1мс.... в прочем соглашусь, что полезно себя морально ограничить 10 мс. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
CompWorm, ты лучше ограничь по смыслу. Например, нет смысла обрабатывать действия пользователя чаще раз в 100 мс... В то же время, при работе с 3D задержка менее 10 мс тоже смысла особо не имеет, так как пользователь все равно не увидит особой разницы между 60 fps, 100 fps и 200 fps...
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |