Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
На счет std::queue 16.06.08 12:31 Число просмотров: 3700
Автор: PS <PS> Статус: Elderman
|
std::queue проигрывает std::vector (в реализации microsoft, 2003) чуть ли не в полтора раза. Во всяком случае у меня получился именно такой результат.
Поэтому выигрыш 7% Bdb, по сравнению с std::queue скорей всего будет нивелирован заменой queue на vector.
> Поразительно! Класс! > > Результаты тестирования 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), но это > мелочи.
|
|
|