![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Iron Bug |
![]()
Сообщение
#1
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Собственно, сделаю тут небольшую заметку:
В boost версии 1.47.0 добавлена весьма занятная библиотека chrono: http://www.boost.org/doc/libs/1_47_0/doc/html/chrono.html Библиотека предлагает разнообразные функции для работы со временем. В том числе таймеры высокого разрешения (что было вечной проблемой при разработке под кроссплатформу). Реализованы таймеры, функции для работы с временными интервалами, таймеры для измерения времени CPU, таймеры для измерения времени, затраченного потоками. Можно создавать собственные клоки (таймеры с прерыванием типа стробов). Есть все виды конверсии к xtime. Есть функции для использования с boost::thread (sleep_for, sleep_until, try_lock_for, try_lock_until), пока они приведены в качестве примера, но уже идёт работа по включению их в состав boost::thread. В общем, полезная и долгожданная библиотека. Окажется полезной тем, кто был вынужден изобретать велосипеды для скоростных таймеров ![]() В ближайшее время буду тестировать эту библиотеку подробнее, о результатах напишу позже. |
|
|
![]() |
Iron Bug |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Но как? Если винда не система реального времени! ну, естессна, не фонтан! под линём задержки порядка единиц наносекунд. но всё-таки хоть что-то! все мои тесты обычно давали разницу от 5 до 10 раз по задержкам по сравнению с линём, даже на самых лучших компиляторах. просто до этого тупо было можно юзать из стандартных средств только кривой таймер, который тикал раз в 15600 микросекунд. а из нестандартных нужно было городить чёрти что (это чёрти что я где-то тут приводила в теме про скоростной таймер). теперь велосипед значительно упростился. я напишу классы с таймерами. у меня была идея, но мелкософт, как всегда, не до конца реализовал стандарт С++x0 и пока под MSVS это нельзя реализовать, хотя gcc поддерживает фичу аж с 2006 года и MinGW поддерживает. кроме тормозной системы они ещё и самый тупой и отсталый компилятор умудрились создать ![]() вот я как раз перекомпилила буст с нужным флагом и проверила под линём: машина слабее! core2duo 1.86GHz, debian unstable, 64, ядро 3.0.0-2, release: Раскрывающийся текст 8245120072742 68622 2997 369 187 336 175 161 160 351 161 160 160 165 160 161 160 448 160 161 160 161 160 165 160 175 161 160 161 164 160 161 160 605 160 161 160 161 164 161 160 160 161 160 165 160 161 160 161 160 164 161 160 161 160 161 164 160 161 160 161 160 164 161 160 1053 175 175 161 160 161 160 165 160 160 161 160 161 164 161 160 161 160 160 165 160 161 160 161 160 164 161 160 161 160 161 164 175 161 160 вот и сравни тайминги. проц в полтора раза слабее, плюс у меня тут дома запущена куча демонов, по сети идёт жирный обмен, открыто стопицот приложений, и прочее, и прочее. а на работе голая венда без нагрузки тестировалась. Сообщение отредактировал Iron Bug - 15.11.2011, 18:35 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 18.6.2025, 8:13 |