我目前正在对Leveldb上构建的应用程序进行基准测试。我想以这样的方式配置它,即始终从磁盘而不是从内存中读取键值
为此,我需要限制程序消耗的内存
我使用每个100字节的键值对和100000个键值对,这使得它们的大小等于10 MB。如果我使用ulimit将虚拟内存限制设置为小于10 MB,我甚至无法运行命令Makefile
。
1)如何配置应用程序,以便始终从磁盘中获取键值对?
2)ulimit -v是什么意思?是否限制虚拟内存转换为限制程序在RAM上使用的内存?
答案 0 :(得分:1)
也许没有必要减少可用内存,只需按照here所述禁用缓存:
leveldb::ReadOptions options;
options.fill_cache = false;
leveldb::Iterator* it = db->NewIterator(options);
for (it->SeekToFirst(); it->Valid(); it->Next()) {
...
}