crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> boost::ptime - реальные интервалы на разных системах, странная проблема с таймером под вендой
Iron Bug
  опции профиля:
сообщение 20.3.2009, 13:12
Сообщение #1


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


наверное, я тут соберу все возможные глюки систем пока я пишу свой проект!
какой-то очередной затык, на этот раз с таймерами...
в результате экспериментов выползла весьма странная, на мой взгляд, проблема:
написан тестовый бустовский поток, работающий с прерываниями (thread::interrupt()), c условными переменными (conditional_variable) в качестве синхронизации и с таймерами (timed_wait), работающими с этими переменными. в качестве временных интервалов для таймеров использовался позиксовский ptime, реализованный в бусте как часть date_time библиотеки.
вообще, у меня была идея проверить совсем другие вещи, но в итоге получился такой интересный вывод про таймеры: запускаю тест дома под линюксом - минимальный интервал срабатывания timed_wait - примерно 50 микросекунд. при риал-тайм приоритете даже до 10 можно довести, а в худшем случае при загрузке системы - ну максимум 200 задержка может быть (это десктопный вариант дебиана с 26 ядром).
а вот под вендой XP Pro на работе та же прога даёт минимальный интервал аж в 15625 микросекунд - и это вообще без нагрузки на систему!
это что, такие тормоза системного таймера в венде или я чего-то недопонимаю в реализации??? может, ptime не самый быстрый таймер в бусте? (я использую microseconds интервалы).
я понимаю, что венда - не риал-тайм система, но неужели всё настолько плохо или это всё-таки реализация подводит?


копалась в сети, вот чел на ту же самую проблему напоролся:
http://www.nabble.com/-date_time--Timer-an...td21884194.html

видимо, всё-таки проблема в реализации...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 31.3.2009, 13:56
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


пасип. может, пригодится! :)
как раз вот копаю, ищу варианты, как лучше сделать таймеры... если ковырять буст, то надо же для всех систем чтобы работало... а мультимедия таймеры только с 2К и выше. ну даже если наплевать на 95 и иже с ним, то всё равно не так всё гладко выходит. от потоковой библиотеки растёт много чего и её изменение - дело весьма мерзопакостное.
а про венду... ну так это и ежу понятно, то не риал-тайм она ни разу! надеюсь, скоро это поймут не только наши программисты, но и начальство :) просто когда-то всё начиналось с распределённой архитектуры и все скоростные задачи выполняли платы контроллеров, а сейчас пытаются перейти на обработку всех данных на компе, что на венде нереализуемо, вообще говоря. на самом деле на рабочих машинах у нас не десктопная, а эмбеддед венда, это я тесты гоняю тут на ХаРэ... но не суть. разницы мало. у эмбеддед единственный плюс - попытка скопировать у линюкса идею о модулях ядра и на этом усё... по скорости та же фигня, просто можно убрать лишние модули при установке системы. ну, на сколько-то это ускоряет работу, уменьшает ядро, но принципиально это та же венда.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.2.2025, 12:13