В нашем приложении мы используем std::map
для хранения данных (ключ, значение) и используем сериализацию для хранения этих данных на диске. При таком подходе мы обнаружили, что дисковый ввод-вывод является узким местом в производительности, а поиск значений по ключу не очень быстрый.
Я наткнулся на LevelDB и думаю использовать его. Но у меня есть несколько вопросов.
std::map
и LevelDB в том, что LevelDB постоянна, а std::map
работает в памяти. Значит ли это, что узкое место дискового ввода-вывода будет более проблематичным для LevelDB. Более конкретно, может ли кто-нибудь объяснить, может ли LevelDB быть лучшим выбором, чем std::map
?
PS: Я пробовал использовать hash_map
s, но он кажется медленнее, чем std::map