Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Поразительно! Класс! 16.06.08 04:56 Число просмотров: 2793
Автор: void <Grebnev Valery> Статус: Elderman
|
Поразительно! Класс!
Результаты тестирования BerkeleyDB DB_QUEUE оказываются лучше на ~7% (по скорости) по сравнению с обычной FIFO с использованием std::queue на однопроцессорной машине. И это при том!, что данные на диске! Видимо там "вылизано" всё...
Немного хуже оказываются другие параметры:
- число переключений потоков producer/comsumer ~180/180 против 75/105 для FIFO<std::queue>
- загрузка kernel mode CPU ~15% против %5 для FIFO<std::queue>
Для многопроцессорной машины не тестировал. Надеюсь, что в BerkeleyDB нет яных багов относительно синхронизации потоков для нескольких CPU. Так что должно работать отлично.
В целом, впечатление приятное. Producer может легко обрабатывать ~5 запрсов в 1 ms. И это классно для большого круга задач! На большей скорости не пробовал. Думаю, что поведение будет аналогичным queue - не будет работать для 30-60 запросов в 1 ms.
Также есть небольшие баги (например, deadlock-и в случае, если get выполнить из того же потока producer), но это мелочи.
|
|
|