2016-07-19 13 views
0

私は現在、Leveldbで構築されたアプリケーションをベンチマークしています。キー値が常にメモリからではなくディスクから読み取られるように設定したいと思います。
そのためには、プログラムで消費されるメモリを制限する必要があります。
私はそれぞれ100バイトと100000のキーと値のペアを使用しています。そのペアのサイズは10 MBになります。 ulimitを使用して仮想メモリの制限を10 MB未満に設定すると、コマンドMakefileを実行することすらできません。Leveldb制限テスト - 制限プログラムによって使用されるメモリ

1)キー値のペアが常にディスクからフェッチされるようにアプリケーションを設定するにはどうすればよいですか?

2)ulimit -vとは何ですか?仮想メモリを制限することは、プログラムがRAM上で使用するメモリを制限することに変換されますか? hereを説明するように

答えて

1

は、おそらくそこに使用可能なメモリを減らすのに必要はありませんが、単に無効キャッシュ:

leveldb::ReadOptions options; 
    options.fill_cache = false; 
    leveldb::Iterator* it = db->NewIterator(options); 
    for (it->SeekToFirst(); it->Valid(); it->Next()) { 
    ... 
    } 
+0

ありがとうございました。私はそうだと思います。 –