Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
При инициализации окружения используем только нужные подсистемы? 05.08.08 08:53 Число просмотров: 2602
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 05.08.08 08:56 Количество правок: 1
|
> На одно-процессорном компьютере, тестировалась > производительность «map» контейнера на основе Oracle > Berkeley DB с доступом DB_BTREE/DB_HASH. Производительность > оказалась не очень высокой: для 1 writer и 4 readers > производительность в ~30-40 раз ниже чем для обычной > std::map с простейшей синхронизацией на критической секции. > Кстати, это не плохой результат (~50000 w/r в секунду) для > многих практических задач. Но вопрос в том, можно ли > повысить скорость DB_BTREE/DB_HASH? Ценность БДБ не только в скорости, но и в хранении данных (Durability), и в быстром поиске для большого кол-ва данных, и во вторичных индексах, и в транзакциях, и в журналировании ;-) Внутри код достаточно «ветвистый» для поддержки всего этого, хотя бы проверка тех же условий, как в данный момент произвести то или иное действие в зависимости от опций DB_ENV.
В тестах использовалась stand-alone DB или создавалась сперва DB_ENV, а потом уже открывалась DB? Я просто не помню, какие подсистемы юзает stand-alone DB, может она подключает что-то лишнее...
При открытии среды нужно указывать (в твоём случае) только DB_INIT_LOCK | DB_INIT_MPOOL | DB_THREAD флаги.
Если нужна какая-то ультраскорость :) попробуй убрать флаг DB_INIT_LOCK и сам занимайся синхронизацией.
С флагами памяти ещё можно поиграться... Только наврядли это что-то даст.
Больше мыслей нет.
|
|
|