Здравствуйте, гость ( Вход | Регистрация )
|
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 интервалы). я понимаю, что венда - не риал-тайм система, но неужели всё настолько плохо или это всё-таки реализация подводит? копалась в сети, вот чел на ту же самую проблему напоролся: Link видимо, всё-таки проблема в реализации... |
|
|
|
![]() |
|
Andrew Selivanov |
20.3.2009, 14:04
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6
|
Цитата(Iron Bug @ 20.3.2009, 13:12) Link наверное, я тут соберу все возможные глюки систем пока я пишу свой проект! какой-то очередной затык, на этот раз с таймерами... в результате экспериментов выползла весьма странная, на мой взгляд, проблема: написан тестовый бустовский поток, работающий с прерываниями (thread::interrupt()), c условными переменными (conditional_variable) в качестве синхронизации и с таймерами (timed_wait), работающими с этими переменными. в качестве временных интервалов для таймеров использовался позиксовский ptime, реализованный в бусте как часть date_time библиотеки. вообще, у меня была идея проверить совсем другие вещи, но в итоге получился такой интересный вывод про таймеры: запускаю тест дома под линюксом - минимальный интервал срабатывания timed_wait - примерно 50 микросекунд. при риал-тайм приоритете даже до 10 можно довести, а в худшем случае при загрузке системы - ну максимум 200 задержка может быть (это десктопный вариант дебиана с 26 ядром). а вот под вендой XP Pro на работе та же прога даёт минимальный интервал аж в 15625 микросекунд - и это вообще без нагрузки на систему! это что, такие тормоза системного таймера в венде или я чего-то недопонимаю в реализации??? может, ptime не самый быстрый таймер в бусте? (я использую microseconds интервалы). я понимаю, что венда - не риал-тайм система, но неужели всё настолько плохо или это всё-таки реализация подводит? копалась в сети, вот чел на ту же самую проблему напоролся: Link видимо, всё-таки проблема в реализации... Почитай еще здесь Link Link Link Иии если будешь думать про RDTSC имей ввиду, что там много своих подводных камней. Резюмируя - единого решения нет. Но лучше RDTSC навряд ли можно что-то накопать... нуууу почти навряд ли. 18.11 Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3B: System Programming Guide, Part 2 Link Сообщение отредактировал Andrew Selivanov - 20.3.2009, 14:10 |
|
|
|
Iron Bug boost::ptime - реальные интервалы на разных системах 20.3.2009, 13:12
Iron Bug м-дя... что-то совсем грустно, что нет единого реш... 20.3.2009, 14:44
Andrew Selivanov В Boost-e я так понимаю тупо используется GetSyste... 20.3.2009, 15:05
Iron Bug тут не про xtime речь. xtime - это маленькая ... 20.3.2009, 15:12
Andrew Selivanov Цитата(Iron Bug @ 20.3.2009, 15:12) тут н... 20.3.2009, 16:25
Tonal 2 Iron Bug Таки посмотри на Erlang - он даёт soft ... 21.3.2009, 10:09
Iron Bug Цитата(Tonal @ 21.3.2009, 12:09) 2 Iron B... 23.3.2009, 9:43
Iron Bug вот, пока копала буст и точные таймеры...
выяснило... 31.3.2009, 10:23
Andrew Selivanov Цитата(Iron Bug @ 31.3.2009, 11:23) вот, ... 2.4.2009, 17:49
Tonal Для винды есть мультимедийный таймер. (About Multi... 31.3.2009, 11:11
Iron Bug пасип. может, пригодится!
как раз вот копаю, ... 31.3.2009, 13:56![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 28.12.2025, 2:40 |