crossplatform.ru

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

Iron Bug
  опции профиля:
сообщение 10.11.2011, 12:52
Сообщение #1


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

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

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




Репутация:   12  


Собственно, сделаю тут небольшую заметку:
В 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
  опции профиля:
сообщение 15.11.2011, 16:04
Сообщение #2


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

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

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




Репутация:   12  


Цитата(ViGOur @ 15.11.2011, 16:36) *
Но как? Если винда не система реального времени!

ну, естессна, не фонтан! под линём задержки порядка единиц наносекунд. но всё-таки хоть что-то!
все мои тесты обычно давали разницу от 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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 18.6.2025, 8:13