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.

В общем, полезная и долгожданная библиотека. Окажется полезной тем, кто был вынужден изобретать велосипеды для скоростных таймеров :)

В ближайшее время буду тестировать эту библиотеку подробнее, о результатах напишу позже.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 15.11.2011, 20:02
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Хм, не знал. Спасибо за объяснение. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 16.11.2011, 13:35
Сообщение #3


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

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

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




Репутация:   12  


Цитата(ViGOur @ 15.11.2011, 23:02) *
Хм, не знал. Спасибо за объяснение. :)

ну, просто тут хоть какой-то прогресс наметился в области таймеров. конечно, это не системное решение, а чисто софтовое. но тем не менее.
таймеры высокого разрешения - это самая грустная тема в программировании, особенно кроссплатформенном. причём проблема-то высосана из пальца: на материнке стоит контроллер таймера, он элементарно программируется. почему бы не предоставить юзеру если не возможность управления, то хотя бы считывание счётчиков? вроде бы вполне себе логично.
однако, стандартные библиотечные таймеры системы под линём дают максимум микросекундную точность. а под вендой они и вовсе дают почему-то интервал в около 15.6 миллисекунд (это стандартный интервал для венды 7, он может меняться примерно в интервале 10 до 20мс, но это всё равно слишком дофига). поэтому приходилось извращаться со счётчиком тиков. теперь это извращение (а это реализовано именно так, я смотрела код) сделано в виде стандартной кроссплатформенной библиотеки, с довольно удобным интерфейсом.
собственно, если я одолею некоторые трудности с темплейтами, то я сделаю набор файлов для удобной работы потоков с этим таймером. это сейчас у меня главная задача для нового проекта: привести все тайминги в порядок, по возможности.

ну и кроме всего, когда юзеры начинают сравнивать системы... я точно знаю, почему конкретно я не люблю венду. вот просто абсолютно, в деталях, по пунктам. как программист, я вижу совершенно непроходимые тупики в её развитии и кучу багов, которые они совсем не торопятся исправлять. я не хочу её ругать, потому что я уже устала это делать :) поэтому я приспосабливаюсь к её кривостям, как могу, и делюсь своими открытиями с другими :)

Сообщение отредактировал Iron Bug - 20.11.2011, 1:09
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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


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