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