在我们的应用程序中,我们使用std::map
存储(键、值)数据并使用序列化将数据存储在磁盘上。通过这种方法,我们发现磁盘 I/O 是性能瓶颈,使用 key 查找值并不是很快。
我遇到了 LevelDB 并考虑使用它。但我有一些问题。
- LevelDB 的文档说它是为 (string, string) 键值对制作的。这是否意味着我不能用于自定义键值对?
- 似乎
std::map
和 LevelDB 之间的区别在于 LevelDB 是持久的并且std::map
在内存中工作。那么这是否意味着磁盘 I/O 瓶颈对于 levelDB 来说会更成问题。
更具体地说,有人可以解释一下 LevelDB 是否是更好的选择std::map
吗?
PS:我尝试使用hash_map
s 但它似乎比std::map